[cig-commits] commit: Switched to JGR document class. More work on text for Numerical Model of Fault Slip section.

Mercurial hg at geodynamics.org
Mon Mar 26 17:34:21 PDT 2012


changeset:   81:020cfc86ea0a
tag:         tip
user:        Brad Aagaard <baagaard at usgs.gov>
date:        Mon Mar 26 17:34:10 2012 -0700
files:       AGU_author_guide.pdf agu08.bst agufull08.bst agutex.cls agutmpl.tex bssa.cls chicagoAA.bst chicagoComma.sty elsarticle-harv.bst elsarticle-template-harv.tex elsarticle.cls elsdoc.pdf faultRup.tex figs/domaindecomp.pdf figs/domaindecomp.svg figs/packages.eps kinrup.tex makefile
description:
Switched to JGR document class. More work on text for Numerical Model of Fault Slip section.


diff -r 6da349163758 -r 020cfc86ea0a AGU_author_guide.pdf
Binary file AGU_author_guide.pdf has changed
diff -r 6da349163758 -r 020cfc86ea0a agu08.bst
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/agu08.bst	Mon Mar 26 17:34:10 2012 -0700
@@ -0,0 +1,1853 @@
+%%
+%% This is file `agu08.bst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% merlin.mbs  (with options: `head,ay,nat,seq-labc,nm-rev1,jnrlst,lab,lab-it,keyxyr,blkyear,dt-beg,yr-par,xmth,note-yr,thtit-a,trnum-it,vol-it,volp-com,pgsep-c,num-xser,ser-vol,ser-ed,pg-bk,pg-pre,pre-edn,agu-doi,doi,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,nfss,{},nmlm,x9,m1')
+%% physjour.mbs  (with options: `ay,nat,seq-labc,nm-rev1,jnrlst,lab,lab-it,keyxyr,blkyear,dt-beg,yr-par,xmth,note-yr,thtit-a,trnum-it,vol-it,volp-com,pgsep-c,num-xser,ser-vol,ser-ed,pg-bk,pg-pre,pre-edn,agu-doi,doi,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,nfss,{},nmlm,x9,m1')
+%% geojour.mbs  (with options: `ay,nat,seq-labc,nm-rev1,jnrlst,lab,lab-it,keyxyr,blkyear,dt-beg,yr-par,xmth,note-yr,thtit-a,trnum-it,vol-it,volp-com,pgsep-c,num-xser,ser-vol,ser-ed,pg-bk,pg-pre,pre-edn,agu-doi,doi,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,nfss,{},nmlm,x9,m1')
+%% photjour.mbs  (with options: `ay,nat,seq-labc,nm-rev1,jnrlst,lab,lab-it,keyxyr,blkyear,dt-beg,yr-par,xmth,note-yr,thtit-a,trnum-it,vol-it,volp-com,pgsep-c,num-xser,ser-vol,ser-ed,pg-bk,pg-pre,pre-edn,agu-doi,doi,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,nfss,{},nmlm,x9,m1')
+%% merlin.mbs  (with options: `tail,ay,nat,seq-labc,nm-rev1,jnrlst,lab,lab-it,keyxyr,blkyear,dt-beg,yr-par,xmth,note-yr,thtit-a,trnum-it,vol-it,volp-com,pgsep-c,num-xser,ser-vol,ser-ed,pg-bk,pg-pre,pre-edn,agu-doi,doi,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,nfss,{},nmlm,x9,m1')
+%% ----------------------------------------
+%% *** For journals of the American Geophysical Union ***
+%% *** NOTE: this version limits number of authors in ref list to
+%% ***   maximum of 9; if more there, only First et al are listed
+%% ***   Use agufull08.bst instead for complete list
+%% ***
+%% ----------------------------------------
+%% *** Version 3.1 from 2008/08/27
+%% *** Multiple authors of same first author and year now in order of citation
+%% ***   and other minor fixes
+%% ***   Renamed to agu08.bst and agufull08.bst
+%% ***
+%% *** Version 3.0 from 2004/02/06
+%% *** Changed date format for AGU journals
+%% *** The date now appears in parentheses after authors
+%% ***
+%% *** Version 2.2 from 2003/06/26
+%% *** (with bug fix from 2003/08/19)
+%% *** Includes new fields eid and doi
+%% *** The eid is what the AGU calls "citation number"
+%% *** and doi is the DOI number; both of these are
+%% *** used as substitution for page number
+%% *** The issue number is now also included as
+%% *** 84(3) for vol. 84, nr. 3
+%% ***
+%% *** Version 2.1d from 1999/05/20
+%% *** Book editors done right as P. James (Ed.),
+%% *** Missing italics with some authors fixed
+%% ***
+%% *** Version 2.1c from 1999/02/11
+%% *** This version does not crash older BibTeX installations with
+%% *** more than 3000 wiz-functions
+%% ***
+%% *** Version 2.1b from 1997/11/18
+%% *** (page numbers over 9999 are broken with commas, as 12,345)
+%% ***
+%% *** Version 2.1a from 1997/05/26
+%% *** (contains improvements from copy editor comments,
+%% ***  notes added with first word lowercase (bug in 2.1 fixed)
+%% ***  and journal `number' never output
+%% ***  abbreviation for grl corrected)
+%% *** 
+%% 
+%% Copyright 1994-2008 Patrick W Daly
+ % ===============================================================
+ % IMPORTANT NOTICE:
+ % This bibliographic style (bst) file has been generated from one or
+ % more master bibliographic style (mbs) files, listed above.
+ %
+ % This generated file can be redistributed and/or modified under the terms
+ % of the LaTeX Project Public License Distributed from CTAN
+ % archives in directory macros/latex/base/lppl.txt; either
+ % version 1 of the License, or any later version.
+ % ===============================================================
+ % Name and version information of the main mbs file:
+ % \ProvidesFile{merlin.mbs}[2008/08/27 4.30 (PWD, AO, DPC)]
+ %   For use with BibTeX version 0.99a or later
+ %-------------------------------------------------------------------
+ % This bibliography style file is intended for texts in ENGLISH
+ % This is an author-year citation style bibliography. As such, it is
+ % non-standard LaTeX, and requires a special package file to function properly.
+ % Such a package is    natbib.sty   by Patrick W. Daly
+ % The form of the \bibitem entries is
+ %   \bibitem[Jones et al.(1990)]{key}...
+ %   \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
+ % The essential feature is that the label (the part in brackets) consists
+ % of the author names, as they should appear in the citation, with the year
+ % in parentheses following. There must be no space before the opening
+ % parenthesis!
+ % With natbib v5.3, a full list of authors may also follow the year.
+ % In natbib.sty, it is possible to define the type of enclosures that is
+ % really wanted (brackets or parentheses), but in either case, there must
+ % be parentheses in the label.
+ % The \cite command functions as follows:
+ %   \citet{key} ==>>                Jones et al. (1990)
+ %   \citet*{key} ==>>               Jones, Baker, and Smith (1990)
+ %   \citep{key} ==>>                (Jones et al., 1990)
+ %   \citep*{key} ==>>               (Jones, Baker, and Smith, 1990)
+ %   \citep[chap. 2]{key} ==>>       (Jones et al., 1990, chap. 2)
+ %   \citep[e.g.][]{key} ==>>        (e.g. Jones et al., 1990)
+ %   \citep[e.g.][p. 32]{key} ==>>   (e.g. Jones et al., 1990, p. 32)
+ %   \citeauthor{key} ==>>           Jones et al.
+ %   \citeauthor*{key} ==>>          Jones, Baker, and Smith
+ %   \citeyear{key} ==>>             1990
+ %---------------------------------------------------------------------
+
+ENTRY
+  { address
+    author
+    booktitle
+    chapter
+    doi
+    edition
+    editor
+    eid
+    howpublished
+    institution
+    journal
+    key
+    month
+    note
+    number
+    organization
+    pages
+    publisher
+    school
+    series
+    title
+    type
+    volume
+    year
+  }
+  {}
+  { label extra.label sort.label short.list }
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+  #1 'mid.sentence :=
+  #2 'after.sentence :=
+  #3 'after.block :=
+}
+STRINGS { s t}
+FUNCTION {output.nonnull}
+{ 's :=
+  output.state mid.sentence =
+    { ", " * write$ }
+    { output.state after.block =
+        { add.period$ write$
+          newline$
+          "\newblock " write$
+        }
+        { output.state before.all =
+            'write$
+            { add.period$ " " * write$ }
+          if$
+        }
+      if$
+      mid.sentence 'output.state :=
+    }
+  if$
+  s
+}
+FUNCTION {output}
+{ duplicate$ empty$
+    'pop$
+    'output.nonnull
+  if$
+}
+FUNCTION {output.check}
+{ 't :=
+  duplicate$ empty$
+    { pop$ "empty " t * " in " * cite$ * warning$ }
+    'output.nonnull
+  if$
+}
+FUNCTION {fin.entry}
+{ add.period$
+  write$
+  newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+    'skip$
+    { after.block 'output.state := }
+  if$
+}
+FUNCTION {new.sentence}
+{ output.state after.block =
+    'skip$
+    { output.state before.all =
+        'skip$
+        { after.sentence 'output.state := }
+      if$
+    }
+  if$
+}
+FUNCTION {add.blank}
+{  " " * before.all 'output.state :=
+}
+
+FUNCTION {date.block}
+{
+  skip$
+}
+
+FUNCTION {not}
+{   { #0 }
+    { #1 }
+  if$
+}
+FUNCTION {and}
+{   'skip$
+    { pop$ #0 }
+  if$
+}
+FUNCTION {or}
+{   { pop$ #1 }
+    'skip$
+  if$
+}
+FUNCTION {new.block.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.block
+  if$
+}
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+    { pop$ "" }
+    'skip$
+  if$
+}
+FUNCTION {emphasize}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "\textit{" swap$ * "}" * }
+  if$
+}
+FUNCTION {cite.name.font}
+{ emphasize }
+FUNCTION {tie.or.space.prefix}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { " " }
+  if$
+  swap$
+}
+
+FUNCTION {capitalize}
+{ "u" change.case$ "t" change.case$ }
+
+FUNCTION {space.word}
+{ " " swap$ * " " * }
+ % Here are the language-specific definitions for explicit words.
+ % Each function has a name bbl.xxx where xxx is the English word.
+ % The language selected here is ENGLISH
+FUNCTION {bbl.and}
+{ "and"}
+
+FUNCTION {bbl.etal}
+{ "et~al." }
+
+FUNCTION {bbl.editors}
+{ "eds." }
+
+FUNCTION {bbl.editor}
+{ "ed." }
+
+FUNCTION {bbl.edby}
+{ "edited by" }
+
+FUNCTION {bbl.edition}
+{ "ed." }
+
+FUNCTION {bbl.volume}
+{ "vol." }
+
+FUNCTION {bbl.of}
+{ "of" }
+
+FUNCTION {bbl.number}
+{ "no." }
+
+FUNCTION {bbl.nr}
+{ "no." }
+
+FUNCTION {bbl.in}
+{ "in" }
+
+FUNCTION {bbl.pages}
+{ "pp." }
+
+FUNCTION {bbl.page}
+{ "p." }
+
+FUNCTION {bbl.chapter}
+{ "chap." }
+
+FUNCTION {bbl.techrep}
+{ "Tech. Rep." }
+
+FUNCTION {bbl.mthesis}
+{ "Master's thesis" }
+
+FUNCTION {bbl.phdthesis}
+{ "Ph.D. thesis" }
+
+MACRO {jan} {"Jan."}
+
+MACRO {feb} {"Feb."}
+
+MACRO {mar} {"Mar."}
+
+MACRO {apr} {"Apr."}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"Jun."}
+
+MACRO {jul} {"Jul."}
+
+MACRO {aug} {"Aug."}
+
+MACRO {sep} {"Sep."}
+
+MACRO {oct} {"Oct."}
+
+MACRO {nov} {"Nov."}
+
+MACRO {dec} {"Dec."}
+
+ %-------------------------------------------------------------------
+ % Begin module:
+ % \ProvidesFile{physjour.mbs}[2002/01/14 2.2 (PWD)]
+MACRO {aa}{"Astron. \& Astrophys."}
+MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."}
+MACRO {aj} {"Astron. J."}
+MACRO {aph} {"Acta Phys."}
+MACRO {advp} {"Adv. Phys."}
+MACRO {ajp} {"Amer. J. Phys."}
+MACRO {ajm} {"Amer. J. Math."}
+MACRO {amsci} {"Amer. Sci."}
+MACRO {anofd} {"Ann. Fluid Dyn."}
+MACRO {am} {"Ann. Math."}
+MACRO {ap} {"Ann. Phys. (NY)"}
+MACRO {adp} {"Ann. Phys. (Leipzig)"}
+MACRO {ao} {"Appl. Opt."}
+MACRO {apl} {"Appl. Phys. Lett."}
+MACRO {app} {"Astroparticle Phys."}
+MACRO {apj} {"Astrophys. J."}
+MACRO {apjsup} {"Astrophys. J. Suppl."}
+MACRO {apss} {"Astrophys. Space Sci."}
+MACRO {araa} {"Ann. Rev. Astron. Astrophys."}
+MACRO {baas} {"Bull. Amer. Astron. Soc."}
+MACRO {baps} {"Bull. Amer. Phys. Soc."}
+MACRO {cmp} {"Comm. Math. Phys."}
+MACRO {cpam} {"Commun. Pure Appl. Math."}
+MACRO {cppcf} {"Comm. Plasma Phys. \& Controlled Fusion"}
+MACRO {cpc} {"Comp. Phys. Comm."}
+MACRO {cqg} {"Class. Quant. Grav."}
+MACRO {cra} {"C. R. Acad. Sci. A"}
+MACRO {fed} {"Fusion Eng. \& Design"}
+MACRO {ft} {"Fusion Tech."}
+MACRO {grg} {"Gen. Relativ. Gravit."}
+MACRO {ieeens} {"IEEE Trans. Nucl. Sci."}
+MACRO {ieeeps} {"IEEE Trans. Plasma Sci."}
+MACRO {ijimw} {"Interntl. J. Infrared \& Millimeter Waves"}
+MACRO {ip} {"Infrared Phys."}
+MACRO {irp} {"Infrared Phys."}
+MACRO {jap} {"J. Appl. Phys."}
+MACRO {jasa} {"J. Acoust. Soc. America"}
+MACRO {jcp} {"J. Comp. Phys."}
+MACRO {jetp} {"Sov. Phys.--JETP"}
+MACRO {jfe} {"J. Fusion Energy"}
+MACRO {jfm} {"J. Fluid Mech."}
+MACRO {jmp} {"J. Math. Phys."}
+MACRO {jne} {"J. Nucl. Energy"}
+MACRO {jnec} {"J. Nucl. Energy, C: Plasma Phys., Accelerators, Thermonucl. Res."}
+MACRO {jnm} {"J. Nucl. Mat."}
+MACRO {jpc} {"J. Phys. Chem."}
+MACRO {jpp} {"J. Plasma Phys."}
+MACRO {jpsj} {"J. Phys. Soc. Japan"}
+MACRO {jsi} {"J. Sci. Instrum."}
+MACRO {jvst} {"J. Vac. Sci. \& Tech."}
+MACRO {nat} {"Nature"}
+MACRO {nature} {"Nature"}
+MACRO {nedf} {"Nucl. Eng. \& Design/Fusion"}
+MACRO {nf} {"Nucl. Fusion"}
+MACRO {nim} {"Nucl. Inst. \& Meth."}
+MACRO {nimpr} {"Nucl. Inst. \& Meth. in Phys. Res."}
+MACRO {np} {"Nucl. Phys."}
+MACRO {npb} {"Nucl. Phys. B"}
+MACRO {nt/f} {"Nucl. Tech./Fusion"}
+MACRO {npbpc} {"Nucl. Phys. B (Proc. Suppl.)"}
+MACRO {inc} {"Nuovo Cimento"}
+MACRO {nc} {"Nuovo Cimento"}
+MACRO {pf} {"Phys. Fluids"}
+MACRO {pfa} {"Phys. Fluids A: Fluid Dyn."}
+MACRO {pfb} {"Phys. Fluids B: Plasma Phys."}
+MACRO {pl} {"Phys. Lett."}
+MACRO {pla} {"Phys. Lett. A"}
+MACRO {plb} {"Phys. Lett. B"}
+MACRO {prep} {"Phys. Rep."}
+MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"}
+MACRO {pp} {"Phys. Plasmas"}
+MACRO {ppcf} {"Plasma Phys. \& Controlled Fusion"}
+MACRO {phitrsl} {"Philos. Trans. Roy. Soc. London"}
+MACRO {prl} {"Phys. Rev. Lett."}
+MACRO {pr} {"Phys. Rev."}
+MACRO {physrev} {"Phys. Rev."}
+MACRO {pra} {"Phys. Rev. A"}
+MACRO {prb} {"Phys. Rev. B"}
+MACRO {prc} {"Phys. Rev. C"}
+MACRO {prd} {"Phys. Rev. D"}
+MACRO {pre} {"Phys. Rev. E"}
+MACRO {ps} {"Phys. Scripta"}
+MACRO {procrsl} {"Proc. Roy. Soc. London"}
+MACRO {rmp} {"Rev. Mod. Phys."}
+MACRO {rsi} {"Rev. Sci. Inst."}
+MACRO {science} {"Science"}
+MACRO {sciam} {"Sci. Am."}
+MACRO {sam} {"Stud. Appl. Math."}
+MACRO {sjpp} {"Sov. J. Plasma Phys."}
+MACRO {spd} {"Sov. Phys.--Doklady"}
+MACRO {sptp} {"Sov. Phys.--Tech. Phys."}
+MACRO {spu} {"Sov. Phys.--Uspeki"}
+MACRO {st} {"Sky and Telesc."}
+ % End module: physjour.mbs
+ %-------------------------------------------------------------------
+ % Begin module:
+ % \ProvidesFile{geojour.mbs}[2002/07/10 2.0h (PWD)]
+MACRO {aisr} {"Adv. Space Res."}
+MACRO {ag} {"Ann. Geophys."}
+MACRO {anigeo} {"Ann. Geofis."}
+MACRO {angl} {"Ann. Glaciol."}
+MACRO {andmet} {"Ann. d. Meteor."}
+MACRO {andgeo} {"Ann. d. Geophys."}
+MACRO {andphy} {"Ann. Phys.-Paris"}
+MACRO {afmgb} {"Arch. Meteor. Geophys. Bioklimatol."}
+MACRO {atph} {"Atm\'osphera"}
+MACRO {aao} {"Atmos. Ocean"}
+MACRO {ass}{"Astrophys. Space Sci."}
+MACRO {atenv} {"Atmos. Environ."}
+MACRO {aujag} {"Aust. J. Agr. Res."}
+MACRO {aumet} {"Aust. Meteorol. Mag."}
+MACRO {blmet} {"Bound.-Lay. Meteorol."}
+MACRO {bams} {"Bull. Amer. Meteorol. Soc."}
+MACRO {cch} {"Clim. Change"}
+MACRO {cdyn} {"Clim. Dynam."}
+MACRO {cbul} {"Climatol. Bull."}
+MACRO {cap} {"Contrib. Atmos. Phys."}
+MACRO {dsr} {"Deep-Sea Res."}
+MACRO {dhz} {"Dtsch. Hydrogr. Z."}
+MACRO {dao} {"Dynam. Atmos. Oceans"}
+MACRO {eco} {"Ecology"}
+MACRO {empl}{"Earth, Moon and Planets"}
+MACRO {envres} {"Environ. Res."}
+MACRO {envst} {"Environ. Sci. Technol."}
+MACRO {ecms} {"Estuarine Coastal Mar. Sci."}
+MACRO {expa}{"Exper. Astron."}
+MACRO {geoint} {"Geofis. Int."}
+MACRO {geopub} {"Geofys. Publ."}
+MACRO {geogeo} {"Geol. Geofiz."}
+MACRO {gafd} {"Geophys. Astrophys. Fluid Dyn."}
+MACRO {gfd} {"Geophys. Fluid Dyn."}
+MACRO {geomag} {"Geophys. Mag."}
+MACRO {georl} {"Geophys. Res. Lett."}
+MACRO {grl} {"Geophys. Res. Lett."}
+MACRO {ga} {"Geophysica"}
+MACRO {gs} {"Geophysics"}
+MACRO {ieeetap} {"IEEE Trans. Antenn. Propag."}
+MACRO {ijawp} {"Int. J. Air Water Pollut."}
+MACRO {ijc} {"Int. J. Climatol."}
+MACRO {ijrs} {"Int. J. Remote Sens."}
+MACRO {jam} {"J. Appl. Meteorol."}
+MACRO {jaot} {"J. Atmos. Ocean. Technol."}
+MACRO {jatp} {"J. Atmos. Terr. Phys."}
+MACRO {jastp} {"J. Atmos. Solar-Terr. Phys."}
+MACRO {jce} {"J. Climate"}
+MACRO {jcam} {"J. Climate Appl. Meteor."}
+MACRO {jcm} {"J. Climate Meteor."}
+MACRO {jcy} {"J. Climatol."}
+MACRO {jgr} {"J. Geophys. Res."}
+MACRO {jga} {"J. Glaciol."}
+MACRO {jh} {"J. Hydrol."}
+MACRO {jmr} {"J. Mar. Res."}
+MACRO {jmrj} {"J. Meteor. Res. Japan"}
+MACRO {jm} {"J. Meteor."}
+MACRO {jpo} {"J. Phys. Oceanogr."}
+MACRO {jra} {"J. Rech. Atmos."}
+MACRO {jaes} {"J. Aeronaut. Sci."}
+MACRO {japca} {"J. Air Pollut. Control Assoc."}
+MACRO {jas} {"J. Atmos. Sci."}
+MACRO {jmts} {"J. Mar. Technol. Soc."}
+MACRO {jmsj} {"J. Meteorol. Soc. Japan"}
+MACRO {josj} {"J. Oceanogr. Soc. Japan"}
+MACRO {jwm} {"J. Wea. Mod."}
+MACRO {lao} {"Limnol. Oceanogr."}
+MACRO {mwl} {"Mar. Wea. Log"}
+MACRO {mau} {"Mausam"}
+MACRO {meteor} {"``Meteor'' Forschungsergeb."}
+MACRO {map} {"Meteorol. Atmos. Phys."}
+MACRO {metmag} {"Meteor. Mag."}
+MACRO {metmon} {"Meteor. Monogr."}
+MACRO {metrun} {"Meteor. Rundsch."}
+MACRO {metzeit} {"Meteor. Z."}
+MACRO {metgid} {"Meteor. Gidrol."}
+MACRO {mwr} {"Mon. Weather Rev."}
+MACRO {nwd} {"Natl. Weather Dig."}
+MACRO {nzjmfr} {"New Zeal. J. Mar. Freshwater Res."}
+MACRO {npg} {"Nonlin. Proc. Geophys."}
+MACRO {om} {"Oceanogr. Meteorol."}
+MACRO {ocac} {"Oceanol. Acta"}
+MACRO {oceanus} {"Oceanus"}
+MACRO {paleoc} {"Paleoceanography"}
+MACRO {pce} {"Phys. Chem. Earth"}
+MACRO {pmg} {"Pap. Meteor. Geophys."}
+MACRO {ppom} {"Pap. Phys. Oceanogr. Meteor."}
+MACRO {physzeit} {"Phys. Z."}
+MACRO {pps} {"Planet. Space Sci."}
+MACRO {pss} {"Planet. Space Sci."}
+MACRO {pag} {"Pure Appl. Geophys."}
+MACRO {qjrms} {"Quart. J. Roy. Meteorol. Soc."}
+MACRO {quatres} {"Quat. Res."}
+MACRO {rsci} {"Radio Sci."}
+MACRO {rse} {"Remote Sens. Environ."}
+MACRO {rgeo} {"Rev. Geophys."}
+MACRO {rgsp} {"Rev. Geophys. Space Phys."}
+MACRO {rdgeo} {"Rev. Geofis."}
+MACRO {revmeta} {"Rev. Meteorol."}
+MACRO {sgp}{"Surveys in Geophys."}
+MACRO {sp} {"Solar Phys."}
+MACRO {ssr} {"Space Sci. Rev."}
+MACRO {tellus} {"Tellus"}
+MACRO {tac} {"Theor. Appl. Climatol."}
+MACRO {tagu} {"Trans. Am. Geophys. Union (EOS)"}
+MACRO {wrr} {"Water Resour. Res."}
+MACRO {weather} {"Weather"}
+MACRO {wafc} {"Weather Forecast."}
+MACRO {ww} {"Weatherwise"}
+MACRO {wmob} {"WMO Bull."}
+MACRO {zeitmet} {"Z. Meteorol."}
+ % End module: geojour.mbs
+ %-------------------------------------------------------------------
+ % Begin module:
+ % \ProvidesFile{photjour.mbs}[1999/02/24 2.0b (PWD)]
+
+MACRO {appopt} {"Appl. Opt."}
+MACRO {bell} {"Bell Syst. Tech. J."}
+MACRO {ell} {"Electron. Lett."}
+MACRO {jasp} {"J. Appl. Spectr."}
+MACRO {jqe} {"IEEE J. Quantum Electron."}
+MACRO {jlwt} {"J. Lightwave Technol."}
+MACRO {jmo} {"J. Mod. Opt."}
+MACRO {josa} {"J. Opt. Soc. America"}
+MACRO {josaa} {"J. Opt. Soc. Amer.~A"}
+MACRO {josab} {"J. Opt. Soc. Amer.~B"}
+MACRO {jdp} {"J. Phys. (Paris)"}
+MACRO {oc} {"Opt. Commun."}
+MACRO {ol} {"Opt. Lett."}
+MACRO {phtl} {"IEEE Photon. Technol. Lett."}
+MACRO {pspie} {"Proc. Soc. Photo-Opt. Instrum. Eng."}
+MACRO {sse} {"Solid-State Electron."}
+MACRO {sjot} {"Sov. J. Opt. Technol."}
+MACRO {sjqe} {"Sov. J. Quantum Electron."}
+MACRO {sleb} {"Sov. Phys.--Leb. Inst. Rep."}
+MACRO {stph} {"Sov. Phys.--Techn. Phys."}
+MACRO {stphl} {"Sov. Techn. Phys. Lett."}
+MACRO {vr} {"Vision Res."}
+MACRO {zph} {"Z. f. Physik"}
+MACRO {zphb} {"Z. f. Physik~B"}
+MACRO {zphd} {"Z. f. Physik~D"}
+
+MACRO {CLEO} {"CLEO"}
+MACRO {ASSL} {"Adv. Sol.-State Lasers"}
+MACRO {OSA}  {"OSA"}
+ % End module: photjour.mbs
+%% Copyright 1994-2008 Patrick W Daly
+MACRO {acmcs} {"ACM Comput. Surv."}
+
+MACRO {acta} {"Acta Inf."}
+
+MACRO {cacm} {"Commun. ACM"}
+
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+
+MACRO {ibmsj} {"IBM Syst.~J."}
+
+MACRO {ieeese} {"IEEE Trans. Software Eng."}
+
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput. Aid. Des."}
+
+MACRO {ipl} {"Inf. Process. Lett."}
+
+MACRO {jacm} {"J.~ACM"}
+
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+
+MACRO {scp} {"Sci. Comput. Program."}
+
+MACRO {sicomp} {"SIAM J. Comput."}
+
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+
+MACRO {tods} {"ACM Trans. Database Syst."}
+
+MACRO {tog} {"ACM Trans. Graphic."}
+
+MACRO {toms} {"ACM Trans. Math. Software"}
+
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+
+MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
+
+MACRO {tcs} {"Theor. Comput. Sci."}
+
+FUNCTION {bibinfo.check}
+{ swap$
+  duplicate$ missing$
+    {
+      pop$ pop$
+      ""
+    }
+    { duplicate$ empty$
+        {
+          swap$ pop$
+        }
+        { swap$
+          pop$
+        }
+      if$
+    }
+  if$
+}
+FUNCTION {bibinfo.warn}
+{ swap$
+  duplicate$ missing$
+    {
+      swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
+      ""
+    }
+    { duplicate$ empty$
+        {
+          swap$ "empty " swap$ * " in " * cite$ * warning$
+        }
+        { swap$
+          pop$
+        }
+      if$
+    }
+  if$
+}
+INTEGERS { nameptr namesleft numnames }
+
+
+STRINGS  { bibinfo}
+
+FUNCTION {format.names}
+{ 'bibinfo :=
+  duplicate$ empty$ 'skip$ {
+  's :=
+  "" 't :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+      duplicate$ #1 >
+        { "{f.~}{vv~}{ll}{, jj}" }
+        { "{vv~}{ll}{, f.}{, jj}" }
+      if$
+      format.name$
+      bibinfo bibinfo.check
+      't :=
+      nameptr #1 >
+        {
+          nameptr #1
+          #1 + =
+          numnames #9
+          > and
+            { "others" 't :=
+              #1 'namesleft := }
+            'skip$
+          if$
+          namesleft #1 >
+            { ", " * t * }
+            {
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
+                { 't := }
+                { pop$ }
+              if$
+              "," *
+              t "others" =
+                {
+                  " " * bbl.etal *
+                }
+                {
+                  bbl.and
+                  space.word * t *
+                }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+  } if$
+}
+FUNCTION {format.names.ed}
+{
+  'bibinfo :=
+  duplicate$ empty$ 'skip$ {
+  's :=
+  "" 't :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+      "{f.~}{vv~}{ll}{, jj}"
+      format.name$
+      bibinfo bibinfo.check
+      't :=
+      nameptr #1 >
+        {
+          namesleft #1 >
+            { ", " * t * }
+            {
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
+                { 't := }
+                { pop$ }
+              if$
+              numnames #2 >
+                { "," * }
+                'skip$
+              if$
+              t "others" =
+                {
+
+                  " " * bbl.etal *
+                }
+                {
+                  bbl.and
+                  space.word * t *
+                }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+  } if$
+}
+FUNCTION {format.key}
+{ empty$
+    { key field.or.null }
+    { "" }
+  if$
+}
+
+FUNCTION {format.authors}
+{ author "author" format.names
+}
+FUNCTION {get.bbl.editor}
+{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
+
+FUNCTION {format.editors}
+{ editor "editor" format.names duplicate$ empty$ 'skip$
+    {
+      " " *
+      get.bbl.editor
+      capitalize
+   "(" swap$ * ")" *
+      *
+    }
+  if$
+}
+FUNCTION {format.book.pages}
+{ pages "pages" bibinfo.check
+  duplicate$ empty$ 'skip$
+    { " " * bbl.pages * }
+  if$
+}
+FUNCTION {format.doi}
+{ doi empty$
+    { "" }
+    {
+      "\doi{" doi * "}" *
+    }
+  if$
+}
+FUNCTION {format.note}
+{
+ note empty$
+    { "" }
+    { note #1 #1 substring$
+      duplicate$ "{" =
+        'skip$
+        { output.state mid.sentence =
+          { "l" }
+          { "u" }
+        if$
+        change.case$
+        }
+      if$
+      note #2 global.max$ substring$ * "note" bibinfo.check
+    }
+  if$
+}
+
+FUNCTION {format.title}
+{ title
+  duplicate$ empty$ 'skip$
+    { "t" change.case$ }
+  if$
+  "title" bibinfo.check
+}
+FUNCTION {format.full.names}
+{'s :=
+ "" 't :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+      "{vv~}{ll}" format.name$
+      't :=
+      nameptr #1 >
+        {
+          nameptr #1
+          #1 + =
+          numnames #9
+          > and
+            { "others" 't :=
+              #1 'namesleft := }
+            'skip$
+          if$
+          namesleft #1 >
+            { ", " * t * }
+            {
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
+                { 't := }
+                { pop$ }
+              if$
+              t "others" =
+                {
+                  " " * bbl.etal *
+                  cite.name.font
+                }
+                {
+                  numnames #2 >
+                    { "," * }
+                    'skip$
+                  if$
+                  bbl.and
+                  space.word * t *
+                }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+  t "others" =
+    'skip$
+    { cite.name.font }
+  if$
+}
+
+FUNCTION {author.editor.key.full}
+{ author empty$
+    { editor empty$
+        { key empty$
+            { cite$ #1 #3 substring$ }
+            'key
+          if$
+        }
+        { editor format.full.names }
+      if$
+    }
+    { author format.full.names }
+  if$
+}
+
+FUNCTION {author.key.full}
+{ author empty$
+    { key empty$
+         { cite$ #1 #3 substring$ }
+          'key
+      if$
+    }
+    { author format.full.names }
+  if$
+}
+
+FUNCTION {editor.key.full}
+{ editor empty$
+    { key empty$
+         { cite$ #1 #3 substring$ }
+          'key
+      if$
+    }
+    { editor format.full.names }
+  if$
+}
+
+FUNCTION {make.full.names}
+{ type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.key.full
+    { type$ "proceedings" =
+        'editor.key.full
+        'author.key.full
+      if$
+    }
+  if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+  "\bibitem[{" write$
+  label write$
+  ")" make.full.names duplicate$ short.list =
+     { pop$ }
+     { * }
+   if$
+  "}]{" * write$
+  cite$ write$
+  "}" write$
+  newline$
+  ""
+  before.all 'output.state :=
+}
+
+FUNCTION {if.digit}
+{ duplicate$ "0" =
+  swap$ duplicate$ "1" =
+  swap$ duplicate$ "2" =
+  swap$ duplicate$ "3" =
+  swap$ duplicate$ "4" =
+  swap$ duplicate$ "5" =
+  swap$ duplicate$ "6" =
+  swap$ duplicate$ "7" =
+  swap$ duplicate$ "8" =
+  swap$ "9" = or or or or or or or or or
+}
+FUNCTION {n.separate}
+{ 't :=
+  ""
+  #0 'numnames :=
+  { t empty$ not }
+  { t #-1 #1 substring$ if.digit
+      { numnames #1 + 'numnames := }
+      { #0 'numnames := }
+    if$
+    t #-1 #1 substring$ swap$ *
+    t #-2 global.max$ substring$ 't :=
+    numnames #5 =
+      { duplicate$ #1 #2 substring$ swap$
+        #3 global.max$ substring$
+        "," swap$ * *
+      }
+      'skip$
+    if$
+  }
+  while$
+}
+FUNCTION {n.dashify}
+{
+  n.separate
+  't :=
+  ""
+    { t empty$ not }
+    { t #1 #1 substring$ "-" =
+        { t #1 #2 substring$ "--" = not
+            { "--" *
+              t #2 global.max$ substring$ 't :=
+            }
+            {   { t #1 #1 substring$ "-" = }
+                { "-" *
+                  t #2 global.max$ substring$ 't :=
+                }
+              while$
+            }
+          if$
+        }
+        { t #1 #1 substring$ *
+          t #2 global.max$ substring$ 't :=
+        }
+      if$
+    }
+  while$
+}
+
+FUNCTION {word.in}
+{ bbl.in
+  " " * }
+
+FUNCTION {format.date}
+{ year "year" bibinfo.check duplicate$ empty$
+    {
+    }
+    'skip$
+  if$
+  extra.label *
+  before.all 'output.state :=
+  " (" swap$ * ")" *
+}
+FUNCTION {format.btitle}
+{ title "title" bibinfo.check
+  duplicate$ empty$ 'skip$
+    {
+      emphasize
+    }
+  if$
+}
+FUNCTION {either.or.check}
+{ empty$
+    'pop$
+    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+  if$
+}
+FUNCTION {format.bvolume}
+{ volume empty$
+    { "" }
+    { bbl.volume volume tie.or.space.prefix
+      "volume" bibinfo.check * *
+      series "series" bibinfo.check
+      duplicate$ empty$ 'pop$
+        { emphasize ", " * swap$ * }
+      if$
+      "volume and number" number either.or.check
+    }
+  if$
+}
+FUNCTION {format.number.series}
+{ volume empty$
+    { number empty$
+        { series field.or.null }
+        { series empty$
+            { number "number" bibinfo.check }
+            { output.state mid.sentence =
+                { bbl.number }
+                { bbl.number capitalize }
+              if$
+              number tie.or.space.prefix "number" bibinfo.check * *
+              bbl.in space.word *
+              series "series" bibinfo.check *
+            }
+          if$
+        }
+      if$
+    }
+    { "" }
+  if$
+}
+
+FUNCTION {format.edition}
+{ edition duplicate$ empty$ 'skip$
+    {
+      output.state mid.sentence =
+        { "l" }
+        { "t" }
+      if$ change.case$
+      "edition" bibinfo.check
+      " " * bbl.edition *
+    }
+  if$
+}
+INTEGERS { multiresult }
+FUNCTION {multi.page.check}
+{ 't :=
+  #0 'multiresult :=
+    { multiresult not
+      t empty$ not
+      and
+    }
+    { t #1 #1 substring$
+      duplicate$ "-" =
+      swap$ duplicate$ "," =
+      swap$ "+" =
+      or or
+        { #1 'multiresult := }
+        { t #2 global.max$ substring$ 't := }
+      if$
+    }
+  while$
+  multiresult
+}
+FUNCTION {format.pages}
+{ pages duplicate$ empty$ 'skip$
+    { duplicate$ multi.page.check
+        {
+          bbl.pages swap$
+          n.dashify
+        }
+        {
+          bbl.page swap$
+        }
+      if$
+      tie.or.space.prefix
+      "pages" bibinfo.check
+      * *
+    }
+  if$
+}
+FUNCTION {format.journal.pages}
+{ pages duplicate$ empty$ 'pop$
+    { swap$ duplicate$ empty$
+        { pop$ pop$ format.pages }
+        {
+          ", " *
+          swap$
+          n.dashify
+          "pages" bibinfo.check
+          *
+        }
+      if$
+    }
+  if$
+}
+FUNCTION {format.journal.eid}
+{ eid "eid" bibinfo.check
+  duplicate$ empty$ 'pop$
+    { swap$ duplicate$ empty$ 'skip$
+      {
+          ", " *
+      }
+      if$
+      swap$ *
+    }
+  if$
+}
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null
+  duplicate$ empty$ 'skip$
+    {
+      "volume" bibinfo.check
+    }
+  if$
+  emphasize
+  number "number" bibinfo.check duplicate$ empty$ 'skip$
+    {
+      swap$ duplicate$ empty$
+        { "there's a number but no volume in " cite$ * warning$ }
+        'skip$
+      if$
+      swap$
+      "(" swap$ * ")" *
+    }
+  if$ *
+  eid empty$
+    { format.journal.pages }
+    { format.journal.eid }
+  if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+    'format.pages
+    { type empty$
+        { bbl.chapter }
+        { type "l" change.case$
+          "type" bibinfo.check
+        }
+      if$
+      chapter tie.or.space.prefix
+      "chapter" bibinfo.check
+      * *
+      pages empty$
+        'skip$
+        { ", " * format.pages * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.booktitle}
+{
+  booktitle "booktitle" bibinfo.check
+  emphasize
+}
+FUNCTION {format.in.ed.booktitle}
+{ format.booktitle duplicate$ empty$ 'skip$
+    {
+      format.bvolume duplicate$ empty$ 'pop$
+        { ", " swap$ * * }
+      if$
+      editor "editor" format.names.ed duplicate$ empty$ 'pop$
+        {
+          bbl.edby
+          " " * swap$ *
+          swap$
+          "," *
+          " " * swap$
+          * }
+      if$
+      word.in swap$ *
+    }
+  if$
+}
+FUNCTION {format.thesis.type}
+{ type duplicate$ empty$
+    'pop$
+    { swap$ pop$
+      "t" change.case$ "type" bibinfo.check
+    }
+  if$
+}
+FUNCTION {format.tr.number}
+{ number "number" bibinfo.check
+  type duplicate$ empty$
+    { pop$ bbl.techrep }
+    'skip$
+  if$
+  "type" bibinfo.check
+  swap$ duplicate$ empty$
+    { pop$ "t" change.case$ }
+    { tie.or.space.prefix * * }
+  if$
+}
+FUNCTION {format.article.crossref}
+{
+  word.in
+  " \cite{" * crossref * "}" *
+}
+FUNCTION {format.book.crossref}
+{ volume duplicate$ empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+      pop$ word.in
+    }
+    { bbl.volume
+      swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
+    }
+  if$
+  " \cite{" * crossref * "}" *
+}
+FUNCTION {format.incoll.inproc.crossref}
+{
+  word.in
+  " \cite{" * crossref * "}" *
+}
+FUNCTION {format.org.or.pub}
+{ 't :=
+  ""
+  address empty$ t empty$ and
+    'skip$
+    {
+      t empty$
+        { address "address" bibinfo.check *
+        }
+        { t *
+          address empty$
+            'skip$
+            { ", " * address "address" bibinfo.check * }
+          if$
+        }
+      if$
+    }
+  if$
+}
+FUNCTION {format.publisher.address}
+{ publisher "publisher" bibinfo.warn format.org.or.pub
+}
+
+FUNCTION {format.organization.address}
+{ organization "organization" bibinfo.check format.org.or.pub
+}
+
+FUNCTION {article}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  crossref missing$
+    {
+      journal
+      "journal" bibinfo.check
+      emphasize
+      "journal" output.check
+      format.vol.num.pages output
+  format.doi output
+    }
+    { format.article.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  format.note output
+  fin.entry
+}
+FUNCTION {book}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check
+      editor format.key output
+    }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  format.date "year" output.check
+  date.block
+  format.btitle "title" output.check
+  crossref missing$
+    { format.bvolume output
+      format.number.series output
+      format.edition output
+      format.book.pages output
+      format.publisher.address output
+    }
+    {
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.doi output
+  format.note output
+  fin.entry
+}
+FUNCTION {booklet}
+{ output.bibitem
+  format.authors output
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  howpublished "howpublished" bibinfo.check output
+  address "address" bibinfo.check output
+  format.book.pages output
+  format.doi output
+  format.note output
+  fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check
+      editor format.key output
+    }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  format.date "year" output.check
+  date.block
+  format.btitle "title" output.check
+  crossref missing$
+    {
+      format.bvolume output
+      format.chapter.pages "chapter and pages" output.check
+      format.number.series output
+      format.edition output
+      format.publisher.address output
+    }
+    {
+      format.chapter.pages "chapter and pages" output.check
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.doi output
+  format.note output
+  fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.number.series output
+      format.edition output
+      format.chapter.pages output
+      format.publisher.address output
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+  format.doi output
+  format.note output
+  fin.entry
+}
+FUNCTION {inproceedings}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.number.series output
+      format.pages output
+      publisher empty$
+        { format.organization.address output }
+        { organization "organization" bibinfo.check output
+          format.publisher.address output
+        }
+      if$
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  format.doi output
+  format.note output
+  fin.entry
+}
+FUNCTION {conference} { inproceedings }
+FUNCTION {manual}
+{ output.bibitem
+  format.authors output
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.btitle "title" output.check
+  organization "organization" bibinfo.check output
+  address "address" bibinfo.check output
+  format.edition output
+  format.doi output
+  format.note output
+  fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title
+  "title" output.check
+  bbl.mthesis format.thesis.type output.nonnull
+  school "school" bibinfo.warn output
+  address "address" bibinfo.check output
+  format.doi output
+  format.note output
+  fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+  format.authors output
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title output
+  howpublished "howpublished" bibinfo.check output
+  format.doi output
+  format.note output
+  fin.entry
+}
+FUNCTION {phdthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title
+  "title" output.check
+  bbl.phdthesis format.thesis.type output.nonnull
+  school "school" bibinfo.warn output
+  address "address" bibinfo.check output
+  format.doi output
+  format.note output
+  fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+  format.editors output
+  editor format.key output
+  format.date "year" output.check
+  date.block
+  format.btitle "title" output.check
+  format.bvolume output
+  format.number.series output
+  publisher empty$
+    { format.organization.address output }
+    { organization "organization" bibinfo.check output
+      format.publisher.address output
+    }
+  if$
+  format.doi output
+  format.note output
+  fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title
+  "title" output.check
+  format.tr.number emphasize output.nonnull
+  institution "institution" bibinfo.warn output
+  address "address" bibinfo.check output
+  format.doi output
+  format.note output
+  fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  format.doi output
+  format.note "note" output.check
+  fin.entry
+}
+
+FUNCTION {default.type} { misc }
+READ
+FUNCTION {sortify}
+{ purify$
+  "l" change.case$
+}
+INTEGERS { len }
+FUNCTION {chop.word}
+{ 's :=
+  'len :=
+  s #1 len substring$ =
+    { s len #1 + global.max$ substring$ }
+    's
+  if$
+}
+FUNCTION {format.lab.names}
+{ 's :=
+  "" 't :=
+  s #1 "{vv~}{ll}" format.name$
+  s num.names$ duplicate$
+  #2 >
+    { pop$
+      " " * bbl.etal *
+      cite.name.font
+      "others" 't :=
+    }
+    { #2 <
+        'skip$
+        { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+            {
+              " " * bbl.etal *
+              cite.name.font
+              "others" 't :=
+            }
+            { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
+              * }
+          if$
+        }
+      if$
+    }
+  if$
+  t "others" =
+    'skip$
+    { cite.name.font }
+  if$
+}
+
+FUNCTION {author.key.label}
+{ author empty$
+    { key empty$
+        { cite$ #1 #3 substring$ }
+        'key
+      if$
+    }
+    { author format.lab.names }
+  if$
+}
+
+FUNCTION {author.editor.key.label}
+{ author empty$
+    { editor empty$
+        { key empty$
+            { cite$ #1 #3 substring$ }
+            'key
+          if$
+        }
+        { editor format.lab.names }
+      if$
+    }
+    { author format.lab.names }
+  if$
+}
+
+FUNCTION {editor.key.label}
+{ editor empty$
+    { key empty$
+        { cite$ #1 #3 substring$ }
+        'key
+      if$
+    }
+    { editor format.lab.names }
+  if$
+}
+
+FUNCTION {calc.short.authors}
+{ type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.key.label
+    { type$ "proceedings" =
+        'editor.key.label
+        'author.key.label
+      if$
+    }
+  if$
+  'short.list :=
+}
+
+FUNCTION {calc.label}
+{ calc.short.authors
+  short.list
+  "("
+  *
+  year duplicate$ empty$
+  short.list key field.or.null = or
+     { pop$ "" }
+     'skip$
+  if$
+  *
+  'label :=
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+  #1 'nameptr :=
+  ""
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+      "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}"
+      format.name$ 't :=
+      nameptr #1 >
+        {
+          nameptr #1
+          #1 + =
+          numnames #9
+          > and
+            { "others" 't :=
+              #1 'namesleft := }
+            'skip$
+          if$
+          "   "  *
+          namesleft #1 = t "others" = and
+            { "zzzzz" 't := }
+            'skip$
+          if$
+          numnames #2 > nameptr #2 = and
+            { "zz" * year field.or.null * "   " *
+              #1 'namesleft :=
+            }
+            { t sortify * }
+          if$
+        }
+        { t sortify * }
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+  "A " #2
+    "An " #3
+      "The " #4 t chop.word
+    chop.word
+  chop.word
+  sortify
+  #1 global.max$ substring$
+}
+FUNCTION {author.sort}
+{ author empty$
+    { key empty$
+        { "to sort, need author or key in " cite$ * warning$
+          ""
+        }
+        { key sortify }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+FUNCTION {author.editor.sort}
+{ author empty$
+    { editor empty$
+        { key empty$
+            { "to sort, need author, editor, or key in " cite$ * warning$
+              ""
+            }
+            { key sortify }
+          if$
+        }
+        { editor sort.format.names }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+FUNCTION {editor.sort}
+{ editor empty$
+    { key empty$
+        { "to sort, need editor or key in " cite$ * warning$
+          ""
+        }
+        { key sortify }
+      if$
+    }
+    { editor sort.format.names }
+  if$
+}
+FUNCTION {presort}
+{ calc.label
+  label sortify
+  "    "
+  *
+  type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.sort
+    { type$ "proceedings" =
+        'editor.sort
+        'author.sort
+      if$
+    }
+  if$
+  #1 entry.max$ substring$
+  'sort.label :=
+  sort.label
+  *
+  #1 entry.max$ substring$
+  'sort.key$ :=
+}
+
+ITERATE {presort}
+SORT
+STRINGS { last.label next.extra }
+INTEGERS { last.extra.num last.extra.num.extended last.extra.num.blank number.label }
+FUNCTION {initialize.extra.label.stuff}
+{ #0 int.to.chr$ 'last.label :=
+  "" 'next.extra :=
+  #0 'last.extra.num :=
+  "a" chr.to.int$ #1 - 'last.extra.num.blank :=
+  last.extra.num.blank 'last.extra.num.extended :=
+  #0 'number.label :=
+}
+FUNCTION {forward.pass}
+{ last.label label =
+    { last.extra.num #1 + 'last.extra.num :=
+      last.extra.num "z" chr.to.int$ >
+       { "a" chr.to.int$ 'last.extra.num :=
+         last.extra.num.extended #1 + 'last.extra.num.extended :=
+       }
+       'skip$
+      if$
+      last.extra.num.extended last.extra.num.blank >
+        { last.extra.num.extended int.to.chr$
+          last.extra.num int.to.chr$
+          * 'extra.label := }
+        { last.extra.num int.to.chr$ 'extra.label := }
+      if$
+    }
+    { "a" chr.to.int$ 'last.extra.num :=
+      "" 'extra.label :=
+      label 'last.label :=
+    }
+  if$
+  number.label #1 + 'number.label :=
+}
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+    { "a" 'extra.label := }
+    'skip$
+  if$
+  extra.label 'next.extra :=
+  extra.label
+  duplicate$ empty$
+    'skip$
+    { "{\natexlab{" swap$ * "}}" * }
+  if$
+  'extra.label :=
+  label extra.label * 'label :=
+}
+EXECUTE {initialize.extra.label.stuff}
+ITERATE {forward.pass}
+REVERSE {reverse.pass}
+FUNCTION {bib.sort.order}
+{ sort.label
+  "    "
+  *
+  year field.or.null sortify
+  *
+  #1 entry.max$ substring$
+  'sort.key$ :=
+}
+ITERATE {bib.sort.order}
+SORT
+FUNCTION {begin.bib}
+{ preamble$ empty$
+    'skip$
+    { preamble$ write$ newline$ }
+  if$
+  "\begin{thebibliography}{" number.label int.to.str$ * "}" *
+  write$ newline$
+  "\providecommand{\natexlab}[1]{#1}"
+  write$ newline$
+  "\expandafter\ifx\csname urlstyle\endcsname\relax"
+  write$ newline$
+  "  \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else"
+  write$ newline$
+  "  \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi"
+  write$ newline$
+}
+EXECUTE {begin.bib}
+EXECUTE {init.state.consts}
+ITERATE {call.type$}
+FUNCTION {end.bib}
+{ newline$
+  "\end{thebibliography}" write$ newline$
+}
+EXECUTE {end.bib}
+%% End of customized bst file
+%%
+%% End of file `agu08.bst'.
diff -r 6da349163758 -r 020cfc86ea0a agufull08.bst
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/agufull08.bst	Mon Mar 26 17:34:10 2012 -0700
@@ -0,0 +1,1828 @@
+%%
+%% This is file `agufull08.bst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% merlin.mbs  (with options: `head,ay,nat,seq-labc,nm-rev1,jnrlst,lab,lab-it,keyxyr,blkyear,dt-beg,yr-par,xmth,note-yr,thtit-a,trnum-it,vol-it,volp-com,pgsep-c,num-xser,ser-vol,ser-ed,pg-bk,pg-pre,pre-edn,agu-doi,doi,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,nfss,{}')
+%% physjour.mbs  (with options: `ay,nat,seq-labc,nm-rev1,jnrlst,lab,lab-it,keyxyr,blkyear,dt-beg,yr-par,xmth,note-yr,thtit-a,trnum-it,vol-it,volp-com,pgsep-c,num-xser,ser-vol,ser-ed,pg-bk,pg-pre,pre-edn,agu-doi,doi,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,nfss,{}')
+%% geojour.mbs  (with options: `ay,nat,seq-labc,nm-rev1,jnrlst,lab,lab-it,keyxyr,blkyear,dt-beg,yr-par,xmth,note-yr,thtit-a,trnum-it,vol-it,volp-com,pgsep-c,num-xser,ser-vol,ser-ed,pg-bk,pg-pre,pre-edn,agu-doi,doi,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,nfss,{}')
+%% photjour.mbs  (with options: `ay,nat,seq-labc,nm-rev1,jnrlst,lab,lab-it,keyxyr,blkyear,dt-beg,yr-par,xmth,note-yr,thtit-a,trnum-it,vol-it,volp-com,pgsep-c,num-xser,ser-vol,ser-ed,pg-bk,pg-pre,pre-edn,agu-doi,doi,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,nfss,{}')
+%% merlin.mbs  (with options: `tail,ay,nat,seq-labc,nm-rev1,jnrlst,lab,lab-it,keyxyr,blkyear,dt-beg,yr-par,xmth,note-yr,thtit-a,trnum-it,vol-it,volp-com,pgsep-c,num-xser,ser-vol,ser-ed,pg-bk,pg-pre,pre-edn,agu-doi,doi,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,nfss,{}')
+%% ----------------------------------------
+%% *** For journals of the American Geophysical Union ***
+%% *** NOTE: this version does not limit the number of authors in ref list.
+%% ***   Use agu08.bst to limit authors to maximum 9.
+%% ***
+%% ----------------------------------------
+%% *** Version 3.1 from 2008/08/27
+%% *** Multiple authors of same first author and year now in order of citation
+%% ***   and other minor fixes
+%% ***   Renamed to agu08.bst and agufull08.bst
+%% ***
+%% *** Version 3.0 from 2004/02/06
+%% *** Changed date format for AGU journals
+%% *** The date now appears in parentheses after authors
+%% ***
+%% *** Version 2.2 from 2003/06/26
+%% *** (with bug fix from 2003/08/19)
+%% *** Includes new fields eid and doi
+%% *** The eid is what the AGU calls "citation number"
+%% *** and doi is the DOI number; both of these are
+%% *** used as substitution for page number
+%% *** The issue number is now also included as
+%% *** 84(3) for vol. 84, nr. 3
+%% ***
+%% *** Version 2.1d from 1999/05/20
+%% *** Book editors done right as P. James (Ed.),
+%% *** Missing italics with some authors fixed
+%% ***
+%% *** Version 2.1c from 1999/02/11
+%% *** This version does not crash older BibTeX installations with
+%% *** more than 3000 wiz-functions
+%% ***
+%% *** Version 2.1b from 1997/11/18
+%% *** (page numbers over 9999 are broken with commas, as 12,345)
+%% ***
+%% *** Version 2.1a from 1997/05/26
+%% *** (contains improvements from copy editor comments,
+%% ***  notes added with first word lowercase (bug in 2.1 fixed)
+%% ***  and journal `number' never output
+%% ***  abbreviation for grl corrected)
+%% *** 
+%% 
+%% Copyright 1994-2008 Patrick W Daly
+ % ===============================================================
+ % IMPORTANT NOTICE:
+ % This bibliographic style (bst) file has been generated from one or
+ % more master bibliographic style (mbs) files, listed above.
+ %
+ % This generated file can be redistributed and/or modified under the terms
+ % of the LaTeX Project Public License Distributed from CTAN
+ % archives in directory macros/latex/base/lppl.txt; either
+ % version 1 of the License, or any later version.
+ % ===============================================================
+ % Name and version information of the main mbs file:
+ % \ProvidesFile{merlin.mbs}[2008/08/27 4.30 (PWD, AO, DPC)]
+ %   For use with BibTeX version 0.99a or later
+ %-------------------------------------------------------------------
+ % This bibliography style file is intended for texts in ENGLISH
+ % This is an author-year citation style bibliography. As such, it is
+ % non-standard LaTeX, and requires a special package file to function properly.
+ % Such a package is    natbib.sty   by Patrick W. Daly
+ % The form of the \bibitem entries is
+ %   \bibitem[Jones et al.(1990)]{key}...
+ %   \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
+ % The essential feature is that the label (the part in brackets) consists
+ % of the author names, as they should appear in the citation, with the year
+ % in parentheses following. There must be no space before the opening
+ % parenthesis!
+ % With natbib v5.3, a full list of authors may also follow the year.
+ % In natbib.sty, it is possible to define the type of enclosures that is
+ % really wanted (brackets or parentheses), but in either case, there must
+ % be parentheses in the label.
+ % The \cite command functions as follows:
+ %   \citet{key} ==>>                Jones et al. (1990)
+ %   \citet*{key} ==>>               Jones, Baker, and Smith (1990)
+ %   \citep{key} ==>>                (Jones et al., 1990)
+ %   \citep*{key} ==>>               (Jones, Baker, and Smith, 1990)
+ %   \citep[chap. 2]{key} ==>>       (Jones et al., 1990, chap. 2)
+ %   \citep[e.g.][]{key} ==>>        (e.g. Jones et al., 1990)
+ %   \citep[e.g.][p. 32]{key} ==>>   (e.g. Jones et al., 1990, p. 32)
+ %   \citeauthor{key} ==>>           Jones et al.
+ %   \citeauthor*{key} ==>>          Jones, Baker, and Smith
+ %   \citeyear{key} ==>>             1990
+ %---------------------------------------------------------------------
+
+ENTRY
+  { address
+    author
+    booktitle
+    chapter
+    doi
+    edition
+    editor
+    eid
+    howpublished
+    institution
+    journal
+    key
+    month
+    note
+    number
+    organization
+    pages
+    publisher
+    school
+    series
+    title
+    type
+    volume
+    year
+  }
+  {}
+  { label extra.label sort.label short.list }
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+  #1 'mid.sentence :=
+  #2 'after.sentence :=
+  #3 'after.block :=
+}
+STRINGS { s t}
+FUNCTION {output.nonnull}
+{ 's :=
+  output.state mid.sentence =
+    { ", " * write$ }
+    { output.state after.block =
+        { add.period$ write$
+          newline$
+          "\newblock " write$
+        }
+        { output.state before.all =
+            'write$
+            { add.period$ " " * write$ }
+          if$
+        }
+      if$
+      mid.sentence 'output.state :=
+    }
+  if$
+  s
+}
+FUNCTION {output}
+{ duplicate$ empty$
+    'pop$
+    'output.nonnull
+  if$
+}
+FUNCTION {output.check}
+{ 't :=
+  duplicate$ empty$
+    { pop$ "empty " t * " in " * cite$ * warning$ }
+    'output.nonnull
+  if$
+}
+FUNCTION {fin.entry}
+{ add.period$
+  write$
+  newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+    'skip$
+    { after.block 'output.state := }
+  if$
+}
+FUNCTION {new.sentence}
+{ output.state after.block =
+    'skip$
+    { output.state before.all =
+        'skip$
+        { after.sentence 'output.state := }
+      if$
+    }
+  if$
+}
+FUNCTION {add.blank}
+{  " " * before.all 'output.state :=
+}
+
+FUNCTION {date.block}
+{
+  skip$
+}
+
+FUNCTION {not}
+{   { #0 }
+    { #1 }
+  if$
+}
+FUNCTION {and}
+{   'skip$
+    { pop$ #0 }
+  if$
+}
+FUNCTION {or}
+{   { pop$ #1 }
+    'skip$
+  if$
+}
+FUNCTION {new.block.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.block
+  if$
+}
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+    { pop$ "" }
+    'skip$
+  if$
+}
+FUNCTION {emphasize}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "\textit{" swap$ * "}" * }
+  if$
+}
+FUNCTION {cite.name.font}
+{ emphasize }
+FUNCTION {tie.or.space.prefix}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { " " }
+  if$
+  swap$
+}
+
+FUNCTION {capitalize}
+{ "u" change.case$ "t" change.case$ }
+
+FUNCTION {space.word}
+{ " " swap$ * " " * }
+ % Here are the language-specific definitions for explicit words.
+ % Each function has a name bbl.xxx where xxx is the English word.
+ % The language selected here is ENGLISH
+FUNCTION {bbl.and}
+{ "and"}
+
+FUNCTION {bbl.etal}
+{ "et~al." }
+
+FUNCTION {bbl.editors}
+{ "eds." }
+
+FUNCTION {bbl.editor}
+{ "ed." }
+
+FUNCTION {bbl.edby}
+{ "edited by" }
+
+FUNCTION {bbl.edition}
+{ "ed." }
+
+FUNCTION {bbl.volume}
+{ "vol." }
+
+FUNCTION {bbl.of}
+{ "of" }
+
+FUNCTION {bbl.number}
+{ "no." }
+
+FUNCTION {bbl.nr}
+{ "no." }
+
+FUNCTION {bbl.in}
+{ "in" }
+
+FUNCTION {bbl.pages}
+{ "pp." }
+
+FUNCTION {bbl.page}
+{ "p." }
+
+FUNCTION {bbl.chapter}
+{ "chap." }
+
+FUNCTION {bbl.techrep}
+{ "Tech. Rep." }
+
+FUNCTION {bbl.mthesis}
+{ "Master's thesis" }
+
+FUNCTION {bbl.phdthesis}
+{ "Ph.D. thesis" }
+
+MACRO {jan} {"Jan."}
+
+MACRO {feb} {"Feb."}
+
+MACRO {mar} {"Mar."}
+
+MACRO {apr} {"Apr."}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"Jun."}
+
+MACRO {jul} {"Jul."}
+
+MACRO {aug} {"Aug."}
+
+MACRO {sep} {"Sep."}
+
+MACRO {oct} {"Oct."}
+
+MACRO {nov} {"Nov."}
+
+MACRO {dec} {"Dec."}
+
+ %-------------------------------------------------------------------
+ % Begin module:
+ % \ProvidesFile{physjour.mbs}[2002/01/14 2.2 (PWD)]
+MACRO {aa}{"Astron. \& Astrophys."}
+MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."}
+MACRO {aj} {"Astron. J."}
+MACRO {aph} {"Acta Phys."}
+MACRO {advp} {"Adv. Phys."}
+MACRO {ajp} {"Amer. J. Phys."}
+MACRO {ajm} {"Amer. J. Math."}
+MACRO {amsci} {"Amer. Sci."}
+MACRO {anofd} {"Ann. Fluid Dyn."}
+MACRO {am} {"Ann. Math."}
+MACRO {ap} {"Ann. Phys. (NY)"}
+MACRO {adp} {"Ann. Phys. (Leipzig)"}
+MACRO {ao} {"Appl. Opt."}
+MACRO {apl} {"Appl. Phys. Lett."}
+MACRO {app} {"Astroparticle Phys."}
+MACRO {apj} {"Astrophys. J."}
+MACRO {apjsup} {"Astrophys. J. Suppl."}
+MACRO {apss} {"Astrophys. Space Sci."}
+MACRO {araa} {"Ann. Rev. Astron. Astrophys."}
+MACRO {baas} {"Bull. Amer. Astron. Soc."}
+MACRO {baps} {"Bull. Amer. Phys. Soc."}
+MACRO {cmp} {"Comm. Math. Phys."}
+MACRO {cpam} {"Commun. Pure Appl. Math."}
+MACRO {cppcf} {"Comm. Plasma Phys. \& Controlled Fusion"}
+MACRO {cpc} {"Comp. Phys. Comm."}
+MACRO {cqg} {"Class. Quant. Grav."}
+MACRO {cra} {"C. R. Acad. Sci. A"}
+MACRO {fed} {"Fusion Eng. \& Design"}
+MACRO {ft} {"Fusion Tech."}
+MACRO {grg} {"Gen. Relativ. Gravit."}
+MACRO {ieeens} {"IEEE Trans. Nucl. Sci."}
+MACRO {ieeeps} {"IEEE Trans. Plasma Sci."}
+MACRO {ijimw} {"Interntl. J. Infrared \& Millimeter Waves"}
+MACRO {ip} {"Infrared Phys."}
+MACRO {irp} {"Infrared Phys."}
+MACRO {jap} {"J. Appl. Phys."}
+MACRO {jasa} {"J. Acoust. Soc. America"}
+MACRO {jcp} {"J. Comp. Phys."}
+MACRO {jetp} {"Sov. Phys.--JETP"}
+MACRO {jfe} {"J. Fusion Energy"}
+MACRO {jfm} {"J. Fluid Mech."}
+MACRO {jmp} {"J. Math. Phys."}
+MACRO {jne} {"J. Nucl. Energy"}
+MACRO {jnec} {"J. Nucl. Energy, C: Plasma Phys., Accelerators, Thermonucl. Res."}
+MACRO {jnm} {"J. Nucl. Mat."}
+MACRO {jpc} {"J. Phys. Chem."}
+MACRO {jpp} {"J. Plasma Phys."}
+MACRO {jpsj} {"J. Phys. Soc. Japan"}
+MACRO {jsi} {"J. Sci. Instrum."}
+MACRO {jvst} {"J. Vac. Sci. \& Tech."}
+MACRO {nat} {"Nature"}
+MACRO {nature} {"Nature"}
+MACRO {nedf} {"Nucl. Eng. \& Design/Fusion"}
+MACRO {nf} {"Nucl. Fusion"}
+MACRO {nim} {"Nucl. Inst. \& Meth."}
+MACRO {nimpr} {"Nucl. Inst. \& Meth. in Phys. Res."}
+MACRO {np} {"Nucl. Phys."}
+MACRO {npb} {"Nucl. Phys. B"}
+MACRO {nt/f} {"Nucl. Tech./Fusion"}
+MACRO {npbpc} {"Nucl. Phys. B (Proc. Suppl.)"}
+MACRO {inc} {"Nuovo Cimento"}
+MACRO {nc} {"Nuovo Cimento"}
+MACRO {pf} {"Phys. Fluids"}
+MACRO {pfa} {"Phys. Fluids A: Fluid Dyn."}
+MACRO {pfb} {"Phys. Fluids B: Plasma Phys."}
+MACRO {pl} {"Phys. Lett."}
+MACRO {pla} {"Phys. Lett. A"}
+MACRO {plb} {"Phys. Lett. B"}
+MACRO {prep} {"Phys. Rep."}
+MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"}
+MACRO {pp} {"Phys. Plasmas"}
+MACRO {ppcf} {"Plasma Phys. \& Controlled Fusion"}
+MACRO {phitrsl} {"Philos. Trans. Roy. Soc. London"}
+MACRO {prl} {"Phys. Rev. Lett."}
+MACRO {pr} {"Phys. Rev."}
+MACRO {physrev} {"Phys. Rev."}
+MACRO {pra} {"Phys. Rev. A"}
+MACRO {prb} {"Phys. Rev. B"}
+MACRO {prc} {"Phys. Rev. C"}
+MACRO {prd} {"Phys. Rev. D"}
+MACRO {pre} {"Phys. Rev. E"}
+MACRO {ps} {"Phys. Scripta"}
+MACRO {procrsl} {"Proc. Roy. Soc. London"}
+MACRO {rmp} {"Rev. Mod. Phys."}
+MACRO {rsi} {"Rev. Sci. Inst."}
+MACRO {science} {"Science"}
+MACRO {sciam} {"Sci. Am."}
+MACRO {sam} {"Stud. Appl. Math."}
+MACRO {sjpp} {"Sov. J. Plasma Phys."}
+MACRO {spd} {"Sov. Phys.--Doklady"}
+MACRO {sptp} {"Sov. Phys.--Tech. Phys."}
+MACRO {spu} {"Sov. Phys.--Uspeki"}
+MACRO {st} {"Sky and Telesc."}
+ % End module: physjour.mbs
+ %-------------------------------------------------------------------
+ % Begin module:
+ % \ProvidesFile{geojour.mbs}[2002/07/10 2.0h (PWD)]
+MACRO {aisr} {"Adv. Space Res."}
+MACRO {ag} {"Ann. Geophys."}
+MACRO {anigeo} {"Ann. Geofis."}
+MACRO {angl} {"Ann. Glaciol."}
+MACRO {andmet} {"Ann. d. Meteor."}
+MACRO {andgeo} {"Ann. d. Geophys."}
+MACRO {andphy} {"Ann. Phys.-Paris"}
+MACRO {afmgb} {"Arch. Meteor. Geophys. Bioklimatol."}
+MACRO {atph} {"Atm\'osphera"}
+MACRO {aao} {"Atmos. Ocean"}
+MACRO {ass}{"Astrophys. Space Sci."}
+MACRO {atenv} {"Atmos. Environ."}
+MACRO {aujag} {"Aust. J. Agr. Res."}
+MACRO {aumet} {"Aust. Meteorol. Mag."}
+MACRO {blmet} {"Bound.-Lay. Meteorol."}
+MACRO {bams} {"Bull. Amer. Meteorol. Soc."}
+MACRO {cch} {"Clim. Change"}
+MACRO {cdyn} {"Clim. Dynam."}
+MACRO {cbul} {"Climatol. Bull."}
+MACRO {cap} {"Contrib. Atmos. Phys."}
+MACRO {dsr} {"Deep-Sea Res."}
+MACRO {dhz} {"Dtsch. Hydrogr. Z."}
+MACRO {dao} {"Dynam. Atmos. Oceans"}
+MACRO {eco} {"Ecology"}
+MACRO {empl}{"Earth, Moon and Planets"}
+MACRO {envres} {"Environ. Res."}
+MACRO {envst} {"Environ. Sci. Technol."}
+MACRO {ecms} {"Estuarine Coastal Mar. Sci."}
+MACRO {expa}{"Exper. Astron."}
+MACRO {geoint} {"Geofis. Int."}
+MACRO {geopub} {"Geofys. Publ."}
+MACRO {geogeo} {"Geol. Geofiz."}
+MACRO {gafd} {"Geophys. Astrophys. Fluid Dyn."}
+MACRO {gfd} {"Geophys. Fluid Dyn."}
+MACRO {geomag} {"Geophys. Mag."}
+MACRO {georl} {"Geophys. Res. Lett."}
+MACRO {grl} {"Geophys. Res. Lett."}
+MACRO {ga} {"Geophysica"}
+MACRO {gs} {"Geophysics"}
+MACRO {ieeetap} {"IEEE Trans. Antenn. Propag."}
+MACRO {ijawp} {"Int. J. Air Water Pollut."}
+MACRO {ijc} {"Int. J. Climatol."}
+MACRO {ijrs} {"Int. J. Remote Sens."}
+MACRO {jam} {"J. Appl. Meteorol."}
+MACRO {jaot} {"J. Atmos. Ocean. Technol."}
+MACRO {jatp} {"J. Atmos. Terr. Phys."}
+MACRO {jastp} {"J. Atmos. Solar-Terr. Phys."}
+MACRO {jce} {"J. Climate"}
+MACRO {jcam} {"J. Climate Appl. Meteor."}
+MACRO {jcm} {"J. Climate Meteor."}
+MACRO {jcy} {"J. Climatol."}
+MACRO {jgr} {"J. Geophys. Res."}
+MACRO {jga} {"J. Glaciol."}
+MACRO {jh} {"J. Hydrol."}
+MACRO {jmr} {"J. Mar. Res."}
+MACRO {jmrj} {"J. Meteor. Res. Japan"}
+MACRO {jm} {"J. Meteor."}
+MACRO {jpo} {"J. Phys. Oceanogr."}
+MACRO {jra} {"J. Rech. Atmos."}
+MACRO {jaes} {"J. Aeronaut. Sci."}
+MACRO {japca} {"J. Air Pollut. Control Assoc."}
+MACRO {jas} {"J. Atmos. Sci."}
+MACRO {jmts} {"J. Mar. Technol. Soc."}
+MACRO {jmsj} {"J. Meteorol. Soc. Japan"}
+MACRO {josj} {"J. Oceanogr. Soc. Japan"}
+MACRO {jwm} {"J. Wea. Mod."}
+MACRO {lao} {"Limnol. Oceanogr."}
+MACRO {mwl} {"Mar. Wea. Log"}
+MACRO {mau} {"Mausam"}
+MACRO {meteor} {"``Meteor'' Forschungsergeb."}
+MACRO {map} {"Meteorol. Atmos. Phys."}
+MACRO {metmag} {"Meteor. Mag."}
+MACRO {metmon} {"Meteor. Monogr."}
+MACRO {metrun} {"Meteor. Rundsch."}
+MACRO {metzeit} {"Meteor. Z."}
+MACRO {metgid} {"Meteor. Gidrol."}
+MACRO {mwr} {"Mon. Weather Rev."}
+MACRO {nwd} {"Natl. Weather Dig."}
+MACRO {nzjmfr} {"New Zeal. J. Mar. Freshwater Res."}
+MACRO {npg} {"Nonlin. Proc. Geophys."}
+MACRO {om} {"Oceanogr. Meteorol."}
+MACRO {ocac} {"Oceanol. Acta"}
+MACRO {oceanus} {"Oceanus"}
+MACRO {paleoc} {"Paleoceanography"}
+MACRO {pce} {"Phys. Chem. Earth"}
+MACRO {pmg} {"Pap. Meteor. Geophys."}
+MACRO {ppom} {"Pap. Phys. Oceanogr. Meteor."}
+MACRO {physzeit} {"Phys. Z."}
+MACRO {pps} {"Planet. Space Sci."}
+MACRO {pss} {"Planet. Space Sci."}
+MACRO {pag} {"Pure Appl. Geophys."}
+MACRO {qjrms} {"Quart. J. Roy. Meteorol. Soc."}
+MACRO {quatres} {"Quat. Res."}
+MACRO {rsci} {"Radio Sci."}
+MACRO {rse} {"Remote Sens. Environ."}
+MACRO {rgeo} {"Rev. Geophys."}
+MACRO {rgsp} {"Rev. Geophys. Space Phys."}
+MACRO {rdgeo} {"Rev. Geofis."}
+MACRO {revmeta} {"Rev. Meteorol."}
+MACRO {sgp}{"Surveys in Geophys."}
+MACRO {sp} {"Solar Phys."}
+MACRO {ssr} {"Space Sci. Rev."}
+MACRO {tellus} {"Tellus"}
+MACRO {tac} {"Theor. Appl. Climatol."}
+MACRO {tagu} {"Trans. Am. Geophys. Union (EOS)"}
+MACRO {wrr} {"Water Resour. Res."}
+MACRO {weather} {"Weather"}
+MACRO {wafc} {"Weather Forecast."}
+MACRO {ww} {"Weatherwise"}
+MACRO {wmob} {"WMO Bull."}
+MACRO {zeitmet} {"Z. Meteorol."}
+ % End module: geojour.mbs
+ %-------------------------------------------------------------------
+ % Begin module:
+ % \ProvidesFile{photjour.mbs}[1999/02/24 2.0b (PWD)]
+
+MACRO {appopt} {"Appl. Opt."}
+MACRO {bell} {"Bell Syst. Tech. J."}
+MACRO {ell} {"Electron. Lett."}
+MACRO {jasp} {"J. Appl. Spectr."}
+MACRO {jqe} {"IEEE J. Quantum Electron."}
+MACRO {jlwt} {"J. Lightwave Technol."}
+MACRO {jmo} {"J. Mod. Opt."}
+MACRO {josa} {"J. Opt. Soc. America"}
+MACRO {josaa} {"J. Opt. Soc. Amer.~A"}
+MACRO {josab} {"J. Opt. Soc. Amer.~B"}
+MACRO {jdp} {"J. Phys. (Paris)"}
+MACRO {oc} {"Opt. Commun."}
+MACRO {ol} {"Opt. Lett."}
+MACRO {phtl} {"IEEE Photon. Technol. Lett."}
+MACRO {pspie} {"Proc. Soc. Photo-Opt. Instrum. Eng."}
+MACRO {sse} {"Solid-State Electron."}
+MACRO {sjot} {"Sov. J. Opt. Technol."}
+MACRO {sjqe} {"Sov. J. Quantum Electron."}
+MACRO {sleb} {"Sov. Phys.--Leb. Inst. Rep."}
+MACRO {stph} {"Sov. Phys.--Techn. Phys."}
+MACRO {stphl} {"Sov. Techn. Phys. Lett."}
+MACRO {vr} {"Vision Res."}
+MACRO {zph} {"Z. f. Physik"}
+MACRO {zphb} {"Z. f. Physik~B"}
+MACRO {zphd} {"Z. f. Physik~D"}
+
+MACRO {CLEO} {"CLEO"}
+MACRO {ASSL} {"Adv. Sol.-State Lasers"}
+MACRO {OSA}  {"OSA"}
+ % End module: photjour.mbs
+%% Copyright 1994-2008 Patrick W Daly
+MACRO {acmcs} {"ACM Comput. Surv."}
+
+MACRO {acta} {"Acta Inf."}
+
+MACRO {cacm} {"Commun. ACM"}
+
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+
+MACRO {ibmsj} {"IBM Syst.~J."}
+
+MACRO {ieeese} {"IEEE Trans. Software Eng."}
+
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput. Aid. Des."}
+
+MACRO {ipl} {"Inf. Process. Lett."}
+
+MACRO {jacm} {"J.~ACM"}
+
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+
+MACRO {scp} {"Sci. Comput. Program."}
+
+MACRO {sicomp} {"SIAM J. Comput."}
+
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+
+MACRO {tods} {"ACM Trans. Database Syst."}
+
+MACRO {tog} {"ACM Trans. Graphic."}
+
+MACRO {toms} {"ACM Trans. Math. Software"}
+
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+
+MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
+
+MACRO {tcs} {"Theor. Comput. Sci."}
+
+FUNCTION {bibinfo.check}
+{ swap$
+  duplicate$ missing$
+    {
+      pop$ pop$
+      ""
+    }
+    { duplicate$ empty$
+        {
+          swap$ pop$
+        }
+        { swap$
+          pop$
+        }
+      if$
+    }
+  if$
+}
+FUNCTION {bibinfo.warn}
+{ swap$
+  duplicate$ missing$
+    {
+      swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
+      ""
+    }
+    { duplicate$ empty$
+        {
+          swap$ "empty " swap$ * " in " * cite$ * warning$
+        }
+        { swap$
+          pop$
+        }
+      if$
+    }
+  if$
+}
+INTEGERS { nameptr namesleft numnames }
+
+
+STRINGS  { bibinfo}
+
+FUNCTION {format.names}
+{ 'bibinfo :=
+  duplicate$ empty$ 'skip$ {
+  's :=
+  "" 't :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+      duplicate$ #1 >
+        { "{f.~}{vv~}{ll}{, jj}" }
+        { "{vv~}{ll}{, f.}{, jj}" }
+      if$
+      format.name$
+      bibinfo bibinfo.check
+      't :=
+      nameptr #1 >
+        {
+          namesleft #1 >
+            { ", " * t * }
+            {
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
+                { 't := }
+                { pop$ }
+              if$
+              "," *
+              t "others" =
+                {
+                  " " * bbl.etal *
+                }
+                {
+                  bbl.and
+                  space.word * t *
+                }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+  } if$
+}
+FUNCTION {format.names.ed}
+{
+  'bibinfo :=
+  duplicate$ empty$ 'skip$ {
+  's :=
+  "" 't :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+      "{f.~}{vv~}{ll}{, jj}"
+      format.name$
+      bibinfo bibinfo.check
+      't :=
+      nameptr #1 >
+        {
+          namesleft #1 >
+            { ", " * t * }
+            {
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
+                { 't := }
+                { pop$ }
+              if$
+              numnames #2 >
+                { "," * }
+                'skip$
+              if$
+              t "others" =
+                {
+
+                  " " * bbl.etal *
+                }
+                {
+                  bbl.and
+                  space.word * t *
+                }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+  } if$
+}
+FUNCTION {format.key}
+{ empty$
+    { key field.or.null }
+    { "" }
+  if$
+}
+
+FUNCTION {format.authors}
+{ author "author" format.names
+}
+FUNCTION {get.bbl.editor}
+{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
+
+FUNCTION {format.editors}
+{ editor "editor" format.names duplicate$ empty$ 'skip$
+    {
+      " " *
+      get.bbl.editor
+      capitalize
+   "(" swap$ * ")" *
+      *
+    }
+  if$
+}
+FUNCTION {format.book.pages}
+{ pages "pages" bibinfo.check
+  duplicate$ empty$ 'skip$
+    { " " * bbl.pages * }
+  if$
+}
+FUNCTION {format.doi}
+{ doi empty$
+    { "" }
+    {
+      "\doi{" doi * "}" *
+    }
+  if$
+}
+FUNCTION {format.note}
+{
+ note empty$
+    { "" }
+    { note #1 #1 substring$
+      duplicate$ "{" =
+        'skip$
+        { output.state mid.sentence =
+          { "l" }
+          { "u" }
+        if$
+        change.case$
+        }
+      if$
+      note #2 global.max$ substring$ * "note" bibinfo.check
+    }
+  if$
+}
+
+FUNCTION {format.title}
+{ title
+  duplicate$ empty$ 'skip$
+    { "t" change.case$ }
+  if$
+  "title" bibinfo.check
+}
+FUNCTION {format.full.names}
+{'s :=
+ "" 't :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+      "{vv~}{ll}" format.name$
+      't :=
+      nameptr #1 >
+        {
+          namesleft #1 >
+            { ", " * t * }
+            {
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
+                { 't := }
+                { pop$ }
+              if$
+              t "others" =
+                {
+                  " " * bbl.etal *
+                  cite.name.font
+                }
+                {
+                  numnames #2 >
+                    { "," * }
+                    'skip$
+                  if$
+                  bbl.and
+                  space.word * t *
+                }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+  t "others" =
+    'skip$
+    { cite.name.font }
+  if$
+}
+
+FUNCTION {author.editor.key.full}
+{ author empty$
+    { editor empty$
+        { key empty$
+            { cite$ #1 #3 substring$ }
+            'key
+          if$
+        }
+        { editor format.full.names }
+      if$
+    }
+    { author format.full.names }
+  if$
+}
+
+FUNCTION {author.key.full}
+{ author empty$
+    { key empty$
+         { cite$ #1 #3 substring$ }
+          'key
+      if$
+    }
+    { author format.full.names }
+  if$
+}
+
+FUNCTION {editor.key.full}
+{ editor empty$
+    { key empty$
+         { cite$ #1 #3 substring$ }
+          'key
+      if$
+    }
+    { editor format.full.names }
+  if$
+}
+
+FUNCTION {make.full.names}
+{ type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.key.full
+    { type$ "proceedings" =
+        'editor.key.full
+        'author.key.full
+      if$
+    }
+  if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+  "\bibitem[{" write$
+  label write$
+  ")" make.full.names duplicate$ short.list =
+     { pop$ }
+     { * }
+   if$
+  "}]{" * write$
+  cite$ write$
+  "}" write$
+  newline$
+  ""
+  before.all 'output.state :=
+}
+
+FUNCTION {if.digit}
+{ duplicate$ "0" =
+  swap$ duplicate$ "1" =
+  swap$ duplicate$ "2" =
+  swap$ duplicate$ "3" =
+  swap$ duplicate$ "4" =
+  swap$ duplicate$ "5" =
+  swap$ duplicate$ "6" =
+  swap$ duplicate$ "7" =
+  swap$ duplicate$ "8" =
+  swap$ "9" = or or or or or or or or or
+}
+FUNCTION {n.separate}
+{ 't :=
+  ""
+  #0 'numnames :=
+  { t empty$ not }
+  { t #-1 #1 substring$ if.digit
+      { numnames #1 + 'numnames := }
+      { #0 'numnames := }
+    if$
+    t #-1 #1 substring$ swap$ *
+    t #-2 global.max$ substring$ 't :=
+    numnames #5 =
+      { duplicate$ #1 #2 substring$ swap$
+        #3 global.max$ substring$
+        "," swap$ * *
+      }
+      'skip$
+    if$
+  }
+  while$
+}
+FUNCTION {n.dashify}
+{
+  n.separate
+  't :=
+  ""
+    { t empty$ not }
+    { t #1 #1 substring$ "-" =
+        { t #1 #2 substring$ "--" = not
+            { "--" *
+              t #2 global.max$ substring$ 't :=
+            }
+            {   { t #1 #1 substring$ "-" = }
+                { "-" *
+                  t #2 global.max$ substring$ 't :=
+                }
+              while$
+            }
+          if$
+        }
+        { t #1 #1 substring$ *
+          t #2 global.max$ substring$ 't :=
+        }
+      if$
+    }
+  while$
+}
+
+FUNCTION {word.in}
+{ bbl.in
+  " " * }
+
+FUNCTION {format.date}
+{ year "year" bibinfo.check duplicate$ empty$
+    {
+    }
+    'skip$
+  if$
+  extra.label *
+  before.all 'output.state :=
+  " (" swap$ * ")" *
+}
+FUNCTION {format.btitle}
+{ title "title" bibinfo.check
+  duplicate$ empty$ 'skip$
+    {
+      emphasize
+    }
+  if$
+}
+FUNCTION {either.or.check}
+{ empty$
+    'pop$
+    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+  if$
+}
+FUNCTION {format.bvolume}
+{ volume empty$
+    { "" }
+    { bbl.volume volume tie.or.space.prefix
+      "volume" bibinfo.check * *
+      series "series" bibinfo.check
+      duplicate$ empty$ 'pop$
+        { emphasize ", " * swap$ * }
+      if$
+      "volume and number" number either.or.check
+    }
+  if$
+}
+FUNCTION {format.number.series}
+{ volume empty$
+    { number empty$
+        { series field.or.null }
+        { series empty$
+            { number "number" bibinfo.check }
+            { output.state mid.sentence =
+                { bbl.number }
+                { bbl.number capitalize }
+              if$
+              number tie.or.space.prefix "number" bibinfo.check * *
+              bbl.in space.word *
+              series "series" bibinfo.check *
+            }
+          if$
+        }
+      if$
+    }
+    { "" }
+  if$
+}
+
+FUNCTION {format.edition}
+{ edition duplicate$ empty$ 'skip$
+    {
+      output.state mid.sentence =
+        { "l" }
+        { "t" }
+      if$ change.case$
+      "edition" bibinfo.check
+      " " * bbl.edition *
+    }
+  if$
+}
+INTEGERS { multiresult }
+FUNCTION {multi.page.check}
+{ 't :=
+  #0 'multiresult :=
+    { multiresult not
+      t empty$ not
+      and
+    }
+    { t #1 #1 substring$
+      duplicate$ "-" =
+      swap$ duplicate$ "," =
+      swap$ "+" =
+      or or
+        { #1 'multiresult := }
+        { t #2 global.max$ substring$ 't := }
+      if$
+    }
+  while$
+  multiresult
+}
+FUNCTION {format.pages}
+{ pages duplicate$ empty$ 'skip$
+    { duplicate$ multi.page.check
+        {
+          bbl.pages swap$
+          n.dashify
+        }
+        {
+          bbl.page swap$
+        }
+      if$
+      tie.or.space.prefix
+      "pages" bibinfo.check
+      * *
+    }
+  if$
+}
+FUNCTION {format.journal.pages}
+{ pages duplicate$ empty$ 'pop$
+    { swap$ duplicate$ empty$
+        { pop$ pop$ format.pages }
+        {
+          ", " *
+          swap$
+          n.dashify
+          "pages" bibinfo.check
+          *
+        }
+      if$
+    }
+  if$
+}
+FUNCTION {format.journal.eid}
+{ eid "eid" bibinfo.check
+  duplicate$ empty$ 'pop$
+    { swap$ duplicate$ empty$ 'skip$
+      {
+          ", " *
+      }
+      if$
+      swap$ *
+    }
+  if$
+}
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null
+  duplicate$ empty$ 'skip$
+    {
+      "volume" bibinfo.check
+    }
+  if$
+  emphasize
+  number "number" bibinfo.check duplicate$ empty$ 'skip$
+    {
+      swap$ duplicate$ empty$
+        { "there's a number but no volume in " cite$ * warning$ }
+        'skip$
+      if$
+      swap$
+      "(" swap$ * ")" *
+    }
+  if$ *
+  eid empty$
+    { format.journal.pages }
+    { format.journal.eid }
+  if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+    'format.pages
+    { type empty$
+        { bbl.chapter }
+        { type "l" change.case$
+          "type" bibinfo.check
+        }
+      if$
+      chapter tie.or.space.prefix
+      "chapter" bibinfo.check
+      * *
+      pages empty$
+        'skip$
+        { ", " * format.pages * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.booktitle}
+{
+  booktitle "booktitle" bibinfo.check
+  emphasize
+}
+FUNCTION {format.in.ed.booktitle}
+{ format.booktitle duplicate$ empty$ 'skip$
+    {
+      format.bvolume duplicate$ empty$ 'pop$
+        { ", " swap$ * * }
+      if$
+      editor "editor" format.names.ed duplicate$ empty$ 'pop$
+        {
+          bbl.edby
+          " " * swap$ *
+          swap$
+          "," *
+          " " * swap$
+          * }
+      if$
+      word.in swap$ *
+    }
+  if$
+}
+FUNCTION {format.thesis.type}
+{ type duplicate$ empty$
+    'pop$
+    { swap$ pop$
+      "t" change.case$ "type" bibinfo.check
+    }
+  if$
+}
+FUNCTION {format.tr.number}
+{ number "number" bibinfo.check
+  type duplicate$ empty$
+    { pop$ bbl.techrep }
+    'skip$
+  if$
+  "type" bibinfo.check
+  swap$ duplicate$ empty$
+    { pop$ "t" change.case$ }
+    { tie.or.space.prefix * * }
+  if$
+}
+FUNCTION {format.article.crossref}
+{
+  word.in
+  " \cite{" * crossref * "}" *
+}
+FUNCTION {format.book.crossref}
+{ volume duplicate$ empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+      pop$ word.in
+    }
+    { bbl.volume
+      swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
+    }
+  if$
+  " \cite{" * crossref * "}" *
+}
+FUNCTION {format.incoll.inproc.crossref}
+{
+  word.in
+  " \cite{" * crossref * "}" *
+}
+FUNCTION {format.org.or.pub}
+{ 't :=
+  ""
+  address empty$ t empty$ and
+    'skip$
+    {
+      t empty$
+        { address "address" bibinfo.check *
+        }
+        { t *
+          address empty$
+            'skip$
+            { ", " * address "address" bibinfo.check * }
+          if$
+        }
+      if$
+    }
+  if$
+}
+FUNCTION {format.publisher.address}
+{ publisher "publisher" bibinfo.warn format.org.or.pub
+}
+
+FUNCTION {format.organization.address}
+{ organization "organization" bibinfo.check format.org.or.pub
+}
+
+FUNCTION {article}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  crossref missing$
+    {
+      journal
+      "journal" bibinfo.check
+      emphasize
+      "journal" output.check
+      format.vol.num.pages output
+  format.doi output
+    }
+    { format.article.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  format.note output
+  fin.entry
+}
+FUNCTION {book}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check
+      editor format.key output
+    }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  format.date "year" output.check
+  date.block
+  format.btitle "title" output.check
+  crossref missing$
+    { format.bvolume output
+      format.number.series output
+      format.edition output
+      format.book.pages output
+      format.publisher.address output
+    }
+    {
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.doi output
+  format.note output
+  fin.entry
+}
+FUNCTION {booklet}
+{ output.bibitem
+  format.authors output
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  howpublished "howpublished" bibinfo.check output
+  address "address" bibinfo.check output
+  format.book.pages output
+  format.doi output
+  format.note output
+  fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check
+      editor format.key output
+    }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  format.date "year" output.check
+  date.block
+  format.btitle "title" output.check
+  crossref missing$
+    {
+      format.bvolume output
+      format.chapter.pages "chapter and pages" output.check
+      format.number.series output
+      format.edition output
+      format.publisher.address output
+    }
+    {
+      format.chapter.pages "chapter and pages" output.check
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.doi output
+  format.note output
+  fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.number.series output
+      format.edition output
+      format.chapter.pages output
+      format.publisher.address output
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+  format.doi output
+  format.note output
+  fin.entry
+}
+FUNCTION {inproceedings}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.number.series output
+      format.pages output
+      publisher empty$
+        { format.organization.address output }
+        { organization "organization" bibinfo.check output
+          format.publisher.address output
+        }
+      if$
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  format.doi output
+  format.note output
+  fin.entry
+}
+FUNCTION {conference} { inproceedings }
+FUNCTION {manual}
+{ output.bibitem
+  format.authors output
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.btitle "title" output.check
+  organization "organization" bibinfo.check output
+  address "address" bibinfo.check output
+  format.edition output
+  format.doi output
+  format.note output
+  fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title
+  "title" output.check
+  bbl.mthesis format.thesis.type output.nonnull
+  school "school" bibinfo.warn output
+  address "address" bibinfo.check output
+  format.doi output
+  format.note output
+  fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+  format.authors output
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title output
+  howpublished "howpublished" bibinfo.check output
+  format.doi output
+  format.note output
+  fin.entry
+}
+FUNCTION {phdthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title
+  "title" output.check
+  bbl.phdthesis format.thesis.type output.nonnull
+  school "school" bibinfo.warn output
+  address "address" bibinfo.check output
+  format.doi output
+  format.note output
+  fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+  format.editors output
+  editor format.key output
+  format.date "year" output.check
+  date.block
+  format.btitle "title" output.check
+  format.bvolume output
+  format.number.series output
+  publisher empty$
+    { format.organization.address output }
+    { organization "organization" bibinfo.check output
+      format.publisher.address output
+    }
+  if$
+  format.doi output
+  format.note output
+  fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title
+  "title" output.check
+  format.tr.number emphasize output.nonnull
+  institution "institution" bibinfo.warn output
+  address "address" bibinfo.check output
+  format.doi output
+  format.note output
+  fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  format.doi output
+  format.note "note" output.check
+  fin.entry
+}
+
+FUNCTION {default.type} { misc }
+READ
+FUNCTION {sortify}
+{ purify$
+  "l" change.case$
+}
+INTEGERS { len }
+FUNCTION {chop.word}
+{ 's :=
+  'len :=
+  s #1 len substring$ =
+    { s len #1 + global.max$ substring$ }
+    's
+  if$
+}
+FUNCTION {format.lab.names}
+{ 's :=
+  "" 't :=
+  s #1 "{vv~}{ll}" format.name$
+  s num.names$ duplicate$
+  #2 >
+    { pop$
+      " " * bbl.etal *
+      cite.name.font
+      "others" 't :=
+    }
+    { #2 <
+        'skip$
+        { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+            {
+              " " * bbl.etal *
+              cite.name.font
+              "others" 't :=
+            }
+            { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
+              * }
+          if$
+        }
+      if$
+    }
+  if$
+  t "others" =
+    'skip$
+    { cite.name.font }
+  if$
+}
+
+FUNCTION {author.key.label}
+{ author empty$
+    { key empty$
+        { cite$ #1 #3 substring$ }
+        'key
+      if$
+    }
+    { author format.lab.names }
+  if$
+}
+
+FUNCTION {author.editor.key.label}
+{ author empty$
+    { editor empty$
+        { key empty$
+            { cite$ #1 #3 substring$ }
+            'key
+          if$
+        }
+        { editor format.lab.names }
+      if$
+    }
+    { author format.lab.names }
+  if$
+}
+
+FUNCTION {editor.key.label}
+{ editor empty$
+    { key empty$
+        { cite$ #1 #3 substring$ }
+        'key
+      if$
+    }
+    { editor format.lab.names }
+  if$
+}
+
+FUNCTION {calc.short.authors}
+{ type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.key.label
+    { type$ "proceedings" =
+        'editor.key.label
+        'author.key.label
+      if$
+    }
+  if$
+  'short.list :=
+}
+
+FUNCTION {calc.label}
+{ calc.short.authors
+  short.list
+  "("
+  *
+  year duplicate$ empty$
+  short.list key field.or.null = or
+     { pop$ "" }
+     'skip$
+  if$
+  *
+  'label :=
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+  #1 'nameptr :=
+  ""
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+      "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}"
+      format.name$ 't :=
+      nameptr #1 >
+        {
+          "   "  *
+          namesleft #1 = t "others" = and
+            { "zzzzz" 't := }
+            'skip$
+          if$
+          numnames #2 > nameptr #2 = and
+            { "zz" * year field.or.null * "   " *
+              #1 'namesleft :=
+            }
+            { t sortify * }
+          if$
+        }
+        { t sortify * }
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+  "A " #2
+    "An " #3
+      "The " #4 t chop.word
+    chop.word
+  chop.word
+  sortify
+  #1 global.max$ substring$
+}
+FUNCTION {author.sort}
+{ author empty$
+    { key empty$
+        { "to sort, need author or key in " cite$ * warning$
+          ""
+        }
+        { key sortify }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+FUNCTION {author.editor.sort}
+{ author empty$
+    { editor empty$
+        { key empty$
+            { "to sort, need author, editor, or key in " cite$ * warning$
+              ""
+            }
+            { key sortify }
+          if$
+        }
+        { editor sort.format.names }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+FUNCTION {editor.sort}
+{ editor empty$
+    { key empty$
+        { "to sort, need editor or key in " cite$ * warning$
+          ""
+        }
+        { key sortify }
+      if$
+    }
+    { editor sort.format.names }
+  if$
+}
+FUNCTION {presort}
+{ calc.label
+  label sortify
+  "    "
+  *
+  type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.sort
+    { type$ "proceedings" =
+        'editor.sort
+        'author.sort
+      if$
+    }
+  if$
+  #1 entry.max$ substring$
+  'sort.label :=
+  sort.label
+  *
+  #1 entry.max$ substring$
+  'sort.key$ :=
+}
+
+ITERATE {presort}
+SORT
+STRINGS { last.label next.extra }
+INTEGERS { last.extra.num last.extra.num.extended last.extra.num.blank number.label }
+FUNCTION {initialize.extra.label.stuff}
+{ #0 int.to.chr$ 'last.label :=
+  "" 'next.extra :=
+  #0 'last.extra.num :=
+  "a" chr.to.int$ #1 - 'last.extra.num.blank :=
+  last.extra.num.blank 'last.extra.num.extended :=
+  #0 'number.label :=
+}
+FUNCTION {forward.pass}
+{ last.label label =
+    { last.extra.num #1 + 'last.extra.num :=
+      last.extra.num "z" chr.to.int$ >
+       { "a" chr.to.int$ 'last.extra.num :=
+         last.extra.num.extended #1 + 'last.extra.num.extended :=
+       }
+       'skip$
+      if$
+      last.extra.num.extended last.extra.num.blank >
+        { last.extra.num.extended int.to.chr$
+          last.extra.num int.to.chr$
+          * 'extra.label := }
+        { last.extra.num int.to.chr$ 'extra.label := }
+      if$
+    }
+    { "a" chr.to.int$ 'last.extra.num :=
+      "" 'extra.label :=
+      label 'last.label :=
+    }
+  if$
+  number.label #1 + 'number.label :=
+}
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+    { "a" 'extra.label := }
+    'skip$
+  if$
+  extra.label 'next.extra :=
+  extra.label
+  duplicate$ empty$
+    'skip$
+    { "{\natexlab{" swap$ * "}}" * }
+  if$
+  'extra.label :=
+  label extra.label * 'label :=
+}
+EXECUTE {initialize.extra.label.stuff}
+ITERATE {forward.pass}
+REVERSE {reverse.pass}
+FUNCTION {bib.sort.order}
+{ sort.label
+  "    "
+  *
+  year field.or.null sortify
+  *
+  #1 entry.max$ substring$
+  'sort.key$ :=
+}
+ITERATE {bib.sort.order}
+SORT
+FUNCTION {begin.bib}
+{ preamble$ empty$
+    'skip$
+    { preamble$ write$ newline$ }
+  if$
+  "\begin{thebibliography}{" number.label int.to.str$ * "}" *
+  write$ newline$
+  "\providecommand{\natexlab}[1]{#1}"
+  write$ newline$
+  "\expandafter\ifx\csname urlstyle\endcsname\relax"
+  write$ newline$
+  "  \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else"
+  write$ newline$
+  "  \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi"
+  write$ newline$
+}
+EXECUTE {begin.bib}
+EXECUTE {init.state.consts}
+ITERATE {call.type$}
+FUNCTION {end.bib}
+{ newline$
+  "\end{thebibliography}" write$ newline$
+}
+EXECUTE {end.bib}
+%% End of customized bst file
+%%
+%% End of file `agufull08.bst'.
diff -r 6da349163758 -r 020cfc86ea0a agutex.cls
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/agutex.cls	Mon Mar 26 17:34:10 2012 -0700
@@ -0,0 +1,7785 @@
+\def\currversion{Feb 9, 2008}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% This file is AGUTeX.cls/sty 
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% AGUTeX: LaTeX Class file for 
+%% Journals Published by the
+%%
+%% American Geophysical Union
+%%
+%% Prepared by Amy Hendrickson, 
+%% TeXnology Inc.
+%% www.texnology.com                                                           
+%% amyh at TeXnology.com
+%%                                                           
+%% Original version: June 24, 2001 
+%%
+%% Two column macros copyright 1999, 2000, 2001
+%% Amy Hendrickson, TeXnology Inc.                
+%%
+%% Natbib Module: Copyright 1993-1999 Patrick W Daly
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\typeout{^^J^^J
+AGUTeX Journal Style, American Geophysical Union
+^^J
+This version is dated \currversion^^J^^J}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% 2e switch:
+
+\newif\ifll
+\expandafter\ifx\csname LaTeXe\endcsname\relax % LaTeX2.09 is used
+\else% LaTeX2e is being used, so set ll true
+\global\lltrue\fi
+
+\ifll
+\else
+\long\def\DeclareOption#1#2{\toks@ {#2}%
+\expandafter \edef \csname ds@#1\endcsname {\the \toks@ }}
+%
+\gdef\usepackage#1#{%
+  \@latex at error
+    {\noexpand \usepackage before \string\documentclass}%
+    {\noexpand \usepackage may only appear in the document
+      preamble, i.e.,\MessageBreak
+      between \noexpand\documentclass and
+      \string\begin{document}.}%
+  \@gobble}
+\def\mathrm#1{{\rm #1}}
+
+%% Fonts to make bold in super- and sub-scripts be the right size.
+  \font\sevbf =cmbx7
+  \font\fivbf =cmbx5
+\gdef\baselinestretch{1}
+\gdef\@plus{plus}
+\gdef\@minus{minus}
+\global\@maxsep 20pt
+\global\@dblmaxsep 20pt
+\fi
+
+
+%  \c at topnumber            : Number of floats allowed at the top of a column.
+%  \topfraction            : Fraction of column that can be devoted to floats.
+%  \c at dbltopnumber, \dbltopfraction : Same as above, but for double-column
+%                          floats.
+%  \c at bottomnumber, \bottomfraction : Same as above for bottom of page.
+%  \c at totalnumber          : Number of floats allowed in a single column, 
+%                          including in-text floats.
+%  \textfraction         : Minimum fraction of column that must contain text.
+%  \floatpagefraction    : Minimum fraction of page that must be taken
+%                          up by float page.
+
+%% These aren't relevant, but LaTeX looks for them anyway:
+\setcounter{topnumber}{10}
+\def\topfraction{.99}
+\setcounter{bottomnumber}{10}
+\def\bottomfraction{.99}
+\setcounter{totalnumber}{20}  
+\def\textfraction{.01}
+\def\floatpagefraction{.5}
+\setcounter{dbltopnumber}{2}
+\def\dbltopfraction{.7}
+\def\dblfloatpagefraction{.5}
+
+%% Need for galley style
+\newif\ifgalley
+
+%% Need for font family baselineskip changes:
+\newif\ifjdraft % keep draft for graphicx, or other graphic inclusion
+                % packages
+
+%% to get rid of a command with an argument \let\command=\eatone
+\def\eatone#1{}
+
+\ifll
+\ProvidesClass{agutex}
+              [02/09/2008]
+
+\renewcommand{\normalsize}{%
+\ifjdraft
+   \@setfontsize\normalsize\@xiipt{28pt}
+% C&G 11/5/01  \@setfontsize\normalsize\@xpt\@xviipt
+\else
+   \@setfontsize\normalsize\@xpt\@xiipt
+\fi
+   \abovedisplayskip 10\p@ %\@plus2\p@ 
+\@minus5\p@
+   \abovedisplayshortskip \z@ \@plus3\p@
+   \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+   \belowdisplayskip \abovedisplayskip
+   \let\@listi\@listI}
+
+\newcommand{\bignormalsize}{%
+\ifjdraft
+\@setfontsize\bignormalsize\@xiipt{28pt}
+% C&G 11/5/01   \@setfontsize\bignormalsize\@xipt\@xviipt
+\else
+   \@setfontsize\bignormalsize\@xipt{13pt}
+\fi
+   \abovedisplayskip 10\p@ %\@plus2\p@ 
+\@minus5\p@
+   \abovedisplayshortskip \z@ \@plus3\p@
+   \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+   \belowdisplayskip \abovedisplayskip
+   \def\@listi{\leftmargin\leftmargini
+               \topsep 0\p@ %\@plus .001pt 
+               \parsep 0\p@ %\@plus .001pt 
+               \itemsep \parsep}%
+}
+%
+%C&G 
+% We need to reduce the negative elasticity on the baselineskip
+% \baselineskip=11pt plus .001pt minus 0.25pt
+% this change moved to production.sty
+%
+\newcommand{\small}{%
+\ifjdraft
+   \@setfontsize\small\@ixpt{22pt}%
+%  C&G 11/5/01  \@setfontsize\small\@ixpt{17}%
+\else
+   \@setfontsize\small\@ixpt{11}%
+\fi
+\ifgalley
+\baselineskip=10pt
+\else
+\baselineskip=10pt plus .001pt minus 1pt
+\parskip=0pt % plus .001pt %% amyh
+\fi
+   \abovedisplayskip 10\p@ %\@plus.001\p@ 
+   \abovedisplayshortskip \z@ \@plus2\p@
+   \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
+   \def\@listi{\leftmargin\leftmargini
+               \topsep 1\p@ %\@plus .001pt 
+               \parsep 1\p@ %\@plus .001pt 
+               \itemsep \parsep}%
+   \belowdisplayskip \abovedisplayskip
+}
+
+%C&G 6/26/01 Change footnotesize to 8/9
+\newcommand{\footnotesize}{%
+\ifjdraft
+% C&G 11/5/01  \@setfontsize\footnotesize\@viiipt{17}%
+   \@setfontsize\footnotesize\@viiipt{20pt}%
+\else
+   \@setfontsize\footnotesize\@viiipt{9}%
+\ifgalley\else
+\baselineskip=9 pt plus .001pt minus .5pt
+\fi\fi
+   \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
+   \abovedisplayshortskip \z@ \@plus\p@
+   \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
+   \def\@listi{\leftmargin\leftmargini
+               \topsep 3\p@ \@plus\p@ \@minus\p@
+               \parsep 2\p@ \@plus\p@ \@minus\p@
+               \itemsep \parsep}%
+   \belowdisplayskip \abovedisplayskip
+}
+
+\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viipt\@viiipt}
+\newcommand{\tiny}{\@setfontsize\tiny\@vpt\@vipt}
+\newcommand{\large}{\@setfontsize\large\@xiipt{14}
+\ifjdraft\baselineskip=28pt\else\ifgalley\else
+\baselineskip 14pt plus .01pt minus 2pt\fi\fi
+   \def\@listi{\leftmargin\leftmargini
+               \topsep 1\p@ \@plus .001pt 
+               \parsep 1\p@ \@plus .001pt 
+               \itemsep \parsep}%
+}
+\newcommand{\Large}{\@setfontsize\Large\@xivpt{18}}
+\newcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{22}}
+\newcommand{\huge}{\@setfontsize\huge\@xxpt{25}}
+\newcommand{\Huge}{\@setfontsize\Huge\@xxvpt{30}}
+
+\@maxdepth\maxdepth
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
+\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
+\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
+
+\else %% LaTeX2.09
+%% To get bold super and sub-scripts in the right size:
+\gdef\xpt{\textfont\z@\tenrm
+  \scriptfont\z@\sevrm \scriptscriptfont\z@\fivrm
+\textfont\@ne\tenmi \scriptfont\@ne\sevmi \scriptscriptfont\@ne\fivmi
+\textfont\tw@\tensy \scriptfont\tw@\sevsy \scriptscriptfont\tw@\fivsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\relax}
+\def\boldmath{\relax}
+\def\prm{\fam\z@\tenrm}%
+\def\pit{\fam\itfam\tenit}\textfont\itfam\tenit \scriptfont\itfam\sevit
+    \scriptscriptfont\itfam\sevit
+\def\psl{\fam\slfam\tensl}\textfont\slfam\tensl
+     \scriptfont\slfam\tensl \scriptscriptfont\slfam\tensl
+\def\pbf{\fam\bffam\tenbf}\textfont\bffam\tenbf
+    \scriptfont\bffam\sevbf \scriptscriptfont\bffam\fivbf
+\def\ptt{\fam\ttfam\tentt}\textfont\ttfam\tentt
+    \scriptfont\ttfam\tentt \scriptscriptfont\ttfam\tentt
+\def\psf{\fam\sffam\tensf}\textfont\sffam\tensf
+    \scriptfont\sffam\tensf \scriptscriptfont\sffam\tensf
+\def\psc{\@getfont\psc\scfam\@xpt{\@mcsc}}%
+\def\ly{\fam\lyfam\tenly}\textfont\lyfam\tenly
+   \scriptfont\lyfam\sevly \scriptscriptfont\lyfam\fivly
+\@setstrut \rm}
+% 11/5/01 C&G baselineskip increased to 28pt
+\gdef\@normalsize{\ifjdraft
+\@setsize\normalsize{12pt}\xpt\@xpt
+\baselineskip=28pt
+\else
+\@setsize\normalsize{12pt}\xpt\@xpt
+\fi
+\abovedisplayskip 10\p@ plus2\p@ minus5\p@
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip  \z@ plus3\p@
+\belowdisplayshortskip  6\p@ plus3\p@ minus3\p@
+\let\@listi\@listI}
+% 11/5/01 C&G baselineskip increased to 28pt
+\newcommand{\bignormalsize}{%
+\ifjdraft%
+   \@setsize\bignormalsize{22pt}\@xipt\@xviipt%
+\baselineskip=28pt%
+\else%
+   \@setsize\bignormalsize{13pt}\@xipt\@xipt%
+\fi%
+\abovedisplayskip 10\p@ plus2\p@ minus5\p@%
+\belowdisplayskip \abovedisplayskip%
+\abovedisplayshortskip  \z@ plus3\p@%
+\belowdisplayshortskip  6\p@ plus3\p@ minus3\p@%
+\let\@listi\@listI}
+% 11/5/01 C&G bselineskip increased to 28pt
+\gdef\small{\ifjdraft
+\@setsize\small{22pt}\ixpt\@ixpt
+\baselineskip=28pt
+\else
+\@setsize\small{11pt}\ixpt\@ixpt
+\fi
+\abovedisplayskip 4\p@ %plus3\p@ minus4\p@
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus2\p@
+\belowdisplayshortskip 4\p@ plus2\p@ minus2\p@
+\def\@listi{\leftmargin\leftmargini
+\topsep 4\p@ plus2\p@ minus2\p@\parsep 0\p@ plus\p@ minus\p@
+\itemsep \parsep}}
+\gdef\footnotesize{\ifjdraft
+\@setsize\footnotesize{22pt}\viiipt\@viiipt
+\baselineskip=24pt
+\else
+\@setsize\footnotesize{9.5pt}\viiipt\@viiipt
+\fi
+\abovedisplayskip 6\p@ plus2\p@ minus4\p@
+\belowdisplayskip \abovedisplayskip
+\abovedisplayshortskip \z@ plus\p@
+\belowdisplayshortskip 3\p@ plus\p@ minus2\p@
+\def\@listi{\leftmargin\leftmargini
+\topsep 3\p@ plus\p@ minus\p@\parsep 2\p@ plus\p@ minus\p@
+\itemsep \parsep}}
+%
+\gdef\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt
+\ifjdraft\baselineskip=16pt\fi}
+\gdef\tiny{\@setsize\tiny{6pt}\vpt\@vpt
+\ifjdraft\baselineskip=16pt\fi}
+\gdef\large{\@setsize\large{14pt}\xiipt\@xiipt
+\ifjdraft\baselineskip=28pt\fi}
+\gdef\Large{\@setsize\Large{18pt}\xivpt\@xivpt
+\ifjdraft\baselineskip=28pt\fi}
+\gdef\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt
+\ifjdraft\baselineskip=28pt\fi}
+\gdef\huge{\@setsize\huge{25pt}\xxpt\@xxpt}
+\gdef\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}
+%
+\gdef\bfseries{\bf}
+\fi
+
+\normalsize
+\let\savenormalsize\normalsize
+
+\ifll\else
+% this causes too many errors, let's get rid of it in 2.09 version:
+\global\let\boldmath\relax \global\let\unboldmath\relax
+\fi
+
+%%
+\newif\if at openbib
+%\@openbibtrue
+\@openbibfalse
+
+%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <===== end 2e switches
+%%%%%
+
+\def\@ptsize{0}
+
+\@twosidetrue     %  Defines twoside option.
+\@mparswitchtrue  %  Marginpars go on outside of page.
+
+%% Special text placement: quotation, quote
+
+\def\quotation{\footnotesize\list{}{\listparindent 1.5em
+    \itemindent\listparindent
+    \rightmargin\leftmargin
+\parsep=0pt plus .001pt \topsep=6.5pt plus.001pt}\item[]}
+\let\endquotation=\endlist
+
+\def\quote{\list{}{\rightmargin\leftmargin}\item[]\ignorespaces}
+\let\endquote=\endlist
+
+%%%%%
+%% Default Dimension Settings
+
+\arraycolsep 3pt % was 5pt 
+% Half the space between columns in an array environment.
+
+\tabcolsep 4pt 
+% Half the space between columns in a tabular environment.
+
+\arrayrulewidth .4pt 
+% Width of rules in array and tabular environment.
+
+\doublerulesep 2pt 
+% Space between adjacent rules in array or tabular env.
+
+\tabbingsep \labelsep 
+% Space used by the \' command.  (See LaTeX manual.)
+
+\skip\@mpfootins = \skip\footins
+
+\fboxsep = 3pt    
+% Space left between box and text by \fbox and \framebox.
+
+\fboxrule = .4pt  
+% Width of rules in box made by \fbox and \framebox.
+
+%% Setting up counters
+\newcounter {chapter} %% used to reset other counters in article.
+\newcounter {section}[chapter]
+\newcounter {subsection}[section]
+\newcounter {subsubsection}[subsection]
+
+\@addtoreset{equation}{chapter}   % Makes \chapter reset 'equation' counter.
+\def\theequation{\ifappendon\Alph{section}\fi%
+\arabic{equation}\themathletter}
+\let\savetheequation\theequation
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%
+%% Figure and table counters and parameters.
+
+\newcounter{figure}[chapter]
+\newcounter{table}[chapter]
+\def\thefigure{\@arabic\c at figure\theletter}
+\def\thetable{\@arabic\c at table\theletter}
+
+\def\fps at figure{tbp}
+\def\ftype at figure{1}
+
+\def\fnum at figure{\figurename~\thefigure}
+
+\def\figure{\@float{figure}}
+\def\endfigure{\end at float\gdef\@currentlabel{}}
+
+%% Table counters and parameters.
+
+\def\fps at table{tbp}
+\def\ftype at table{2}
+
+\def\fnum at table{\tablename~\thetable}
+
+%%%%
+%% Listing defaults:
+
+\def\labelenumi{\theenumi}
+\def\theenumi{\normalsize\rm\arabic{enumi}.}
+
+\def\labelenumii{\theenumii}
+\def\theenumii{\hss(\roman{enumii})}
+\def\p at enumii{\theenumii}
+
+\def\labelenumiii{\normalsize\theenumiii}
+\def\theenumiii{\normalsize\alph{enumiii}.}
+\def\p at enumiii{\theenumiii}
+
+\def\labelenumiv{\theenumiv}
+\def\theenumiv{\normalsize\Alph{enumiv}}
+\def\p at enumiv{\theenumiv}
+
+\def\enumerate{\ifnum \@enumdepth >\thr@@ \@toodeep \else 
+\advance \@enumdepth \@ne 
+\edef\@enumctr{enum\romannumeral\the\@enumdepth }%
+\expandafter\list\csname label\@enumctr \endcsname 
+{\usecounter \@enumctr \def\makelabel ##1{%
+\ifdim\leftmargin=1sp\relax\hskip\saveparindent\fi
+\ifdim\leftmargin=2sp\relax\hskip2\saveparindent\fi
+\hskip\@itemdepth\saveparindent\relax%
+\hskip\@enumdepth\saveparindent\relax ##1}}
+\fi}
+
+\def\itemize{\ifnum \@itemdepth >\thr@@ \@toodeep \else 
+\advance \@itemdepth \@ne 
+\edef \@itemitem {labelitem\romannumeral\the\@itemdepth}%
+\expandafter\list\csname \@itemitem \endcsname {\def\makelabel ##1{%
+\ifdim\leftmargin=1sp\relax\hskip\saveparindent\fi
+\ifdim\leftmargin=2sp\relax\hskip2\saveparindent\fi
+\hskip\@enumdepth\saveparindent\relax%
+\hskip\@itemdepth\saveparindent\relax##1}}\fi}
+
+\newenvironment{description}
+{\leftmargini=0pt \leftmarginii=1sp \leftmarginiii=2sp
+\list{}{\labelwidth\z@ \itemindent-\leftmargin
+                        \let\makelabel\descriptionlabel}}
+               {\endlist}
+\newcommand*\descriptionlabel[1]{\hspace\labelsep
+\ifdim\leftmargin=0pt \hskip\saveparindent 
+\else \ifdim\leftmargin=1sp \hskip2\saveparindent
+\else \ifdim\leftmargin=2sp \hskip3\saveparindent\fi\fi\fi
+                                \normalsize\it #1}
+
+\def\labelitemi{\normalsize$\m at th\bullet$}
+\def\labelitemii{{\bf --}}
+\def\labelitemiii{\normalsize$\m at th\ast$}
+\def\labelitemiv{\normalsize$\m at th\cdot$}
+
+\leftmargini 0pt 
+\leftmarginii 0pt
+\leftmarginiii 0pt
+\leftmarginiv 0 pt
+\leftmarginv 0pt 
+\leftmarginvi 0pt
+\leftmargin\leftmargini
+
+\labelsep 4pt
+\labelwidth\leftmargini\advance\labelwidth-\labelsep
+
+\def\@endparenv{%
+  \addpenalty\@endparpenalty%\addvspace\@topsepadd\@endpetrue
+}
+
+\def\@listI{\leftmargin\leftmargini 
+\rightmargin\leftmargini 
+\parsep 1sp plus.001\p@ 
+\topsep 1sp plus.001\p@ 
+\itemsep 1sp plus.001\p@ 
+}
+
+\let\@listi\@listI
+\@listi
+
+\def\@listii{\leftmargin\leftmarginii
+   \labelwidth\leftmarginii\advance\labelwidth-\labelsep
+   \topsep 4\p@ plus2\p@ minus\p@
+   \parsep 2\p@ plus\p@ minus\p@
+   \itemsep \parsep}
+
+\def\@listiii{\leftmargin\leftmarginiii
+    \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+    \topsep 2\p@ plus\p@ minus\p@
+    \parsep \z@ \partopsep \p@ plus\z@ minus\p@
+    \itemsep \topsep}
+
+\def\@listiv{\leftmargin\leftmarginiv
+     \labelwidth\leftmarginiv\advance\labelwidth-\labelsep}
+
+\def\@listv{\leftmargin\leftmarginv
+     \labelwidth\leftmarginv\advance\labelwidth-\labelsep}
+
+\def\@listvi{\leftmargin\leftmarginvi
+     \labelwidth\leftmarginvi\advance\labelwidth-\labelsep}
+
+%%%%%%% 
+
+% Makes \chapter reset 'footnote' counter:
+\@addtoreset{footnote}{chapter}   
+\@addtoreset{subsubsubsection}{chapter}   
+\@addtoreset{subsubsubsection}{section}   
+\@addtoreset{subsubsubsection}{subsection}   
+\@addtoreset{subsubsubsection}{subsubsection}   
+
+
+%%%%%%%
+%%% General tools: Macros added or changed from original LaTeX, 
+
+%% i) Math macros: Special equation numbers; bolding math characters
+%%   that don't get bold with \mathbf; Lettered equation numbers.
+%%   aguleftmath, to make second line of equation indent by parindent
+
+%% ii)  Lettered captions for tables and figures,
+%%      Multiple caption lines may center automatically.
+
+%% iii) Tables, captions will adjust horizontal size to match width
+%%      of table. Ruled lines added to top or bottom of table.
+%%      Table content will extend to the left and right of columns,
+%%      no extra horizontal space left.
+
+%% iv) Date and time macros for use in Draft line
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% i) Math macros: Special equation numbers; 
+%%    \bbf for making math characters bold that
+%%    won't turn bold with \mathbf; Lettered equation numbers. 
+%%    Aguleftmath, for second line indenting only width of parindent
+
+%% Special equation numbers, such as 16'
+%% Equation counter will not advance
+
+\def\specialeqnum#1{\global\firsttimefalse
+\mathletter{xxx}\gdef\theequation{#1}}
+\let\seteqnum\specialeqnum
+\let\eqnum\specialeqnum
+
+\def\xa{a}
+\def\xA{A}
+
+%% Bold math, for making math characters bold that
+%%    won't turn bold with \mathbf
+
+\def\bbf#1{\hbox{\savenormalsize\boldmath$\displaystyle#1$}}
+
+%% Math Letters:
+
+\def\themathletter{\relax}
+\def\mathletter#1{\gdef\themathletter{#1}}
+\def\xrelax{\relax}
+
+\let\templabel\relax
+\def\xlabel#1{\gdef\templabel{#1}}
+\def\ylabel#1{\gdef\ytemplabel{#1}}
+
+\newif\iffirsttime
+\global\firsttimetrue
+
+\def\equation{$$ % $$ BRACE MATCHING HACK
+\setbox0=\hbox\bgroup $ \displaystyle%
+\let\label\xlabel}
+
+\let\savelabel\label
+
+\def\endequation{$\egroup%
+%
+\ifx\themathletter\xrelax\global\firsttimetrue%
+\refstepcounter{equation}\else%
+\ifx\themathletter\xa\global\firsttimetrue\fi
+\ifx\themathletter\xA\global\firsttimetrue\fi
+\iffirsttime\global\firsttimefalse\refstepcounter{equation}\fi\fi%
+%
+\setbox1=\hbox{\copy0\@eqnnum}%
+%
+\ifdim\wd1>\linewidth%
+\vbox{\unskip\noindent\hbox to\hsize{\hss\unhbox0\hss}\vskip3pt%
+\noindent\hbox to\hsize{\hfill\displaywidth\linewidth\llap{\@eqnnum}}}%
+\else%
+\vbox{\unskip\noindent\hbox to\linewidth{%
+\hfil\unhbox0\hfil\displaywidth\linewidth\llap{\@eqnnum}}}%
+\fi%
+\let\@currentlabel=\theequation%
+\ifx\templabel\relax\else\savelabel{\templabel}\fi%
+\global\let\templabel\relax%
+\gdef\theequation{\savetheequation}%
+\gdef\themathletter{\relax}%
+\global\@ignoretrue$$}
+
+\def\@@eqncr{\let\@tempa\relax 
+    \ifcase\@eqcnt \def\@tempa{& & &}\or \def\@tempa{& &} 
+     \else \def\@tempa{&}\fi 
+     \@tempa 
+\ifx\themathletter\xrelax
+%% make equation letters work ==>
+\if at eqnsw
+\ifaguleftmath\else
+\stepcounter{equation}\fi\fi
+%% <==
+\else
+\ifx\themathletter\xa\global\firsttimetrue\fi
+\ifx\themathletter\xA\global\firsttimetrue\fi
+\iffirsttime\global\firsttimefalse\stepcounter{equation}
+\fi\fi
+\if at eqnsw\@eqnnum 
+\fi
+\expandafter\ifx\csname ytemplabel\endcsname\relax
+\else\savelabel{\ytemplabel}\fi%%% <<=== make label
+\global\let\ytemplabel\relax          % catch current number and letter
+\global\let\themathletter\xrelax     % <<===
+\gdef\theequation{\savetheequation}
+\global\@eqnswtrue\global\@eqcnt\z@\cr}
+
+%% variation on code taken from fleqn.clo
+\def\eqnarray{%
+\let\label\ylabel
+    \def\@currentlabel{\p at equation\theequation}%
+    \global\@eqnswtrue\m at th
+    \global\@eqcnt\z@
+    \tabskip\mathindent
+    \let\\=\@eqncr
+    $$\everycr{}\halign to\linewidth% $$
+    \bgroup
+      \hskip\@centering
+      $\displaystyle\tabskip\z at skip{##}$\@eqnsel&%
+      \global\@eqcnt\@ne \hskip \tw@\arraycolsep \hfil${##}$\hfil&%
+      \global\@eqcnt\tw@ \hskip \tw@\arraycolsep
+        $\displaystyle{##}$\hfil \tabskip\@centering&%
+      \global\@eqcnt\thr@@
+        \hb at xt@\z@\bgroup\hss##\egroup\tabskip\z at skip\cr}%
+
+
+\def\endeqnarray{\@@eqncr\egroup\global\@ignoretrue$$%
+\global\firsttimetrue%
+\global\let\ytemplabel\relax%
+\gdef\theequation{\savetheequation}%
+\def\themathletter{\relax}}
+
+\@namedef{eqnarray*}{\def\@eqncr{\nonumber\@seqncr}\eqnarray}
+\@namedef{endeqnarray*}{\nonumber\endeqnarray}
+
+%%%%%% AGUleftmath
+
+%% Making AGU math indent by a parindent 
+
+\newdimen\mathindent
+\mathindent=0pt
+\def\new at xeqncr[#1]{%
+\nonumber
+   \ifnum0=`{\fi}%
+   \@@eqncr
+   \noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}%
+\hspace*{\parindent}}
+
+\newif\ifaguleftmath
+\newenvironment{aguleftmath}{%
+\global\aguleftmathtrue
+    \stepcounter{equation}%
+    \def\@currentlabel{\p at equation\theequation}%
+    \global\@eqnswtrue\m at th
+    \global\@eqcnt\z@
+    \tabskip\mathindent
+    \let\\=\@eqncr
+\let\@xeqncr=\new at xeqncr
+    $$\everycr{}\halign to\hsize% $$
+    \bgroup
+      $\displaystyle\tabskip\z at skip{##}$\@eqnsel&%
+      \global\@eqcnt\@ne \hskip \tw@\arraycolsep \hfil${##}$\hfil&%
+      \global\@eqcnt\tw@ \hskip \tw@\arraycolsep
+        $\displaystyle{##}$\hfil \tabskip\@centering&%
+      \global\@eqcnt\thr@@
+        \hb at xt@\z@\bgroup\hss##\egroup\tabskip\z at skip\cr}%
+      {\@@eqncr
+    \egroup
+%    \global\advance\c at equation\m at ne
+$$% 
+\global\aguleftmathfalse
+    \@ignoretrue}
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% ii)  Lettered captions for tables and figures,
+%%      Multiple caption lines may center automatically.
+
+\def\theletter{\relax}
+\newif\ifxfirsttime
+\xfirsttimetrue
+\def\xtable{table}
+\def\xplate{plate}
+\def\xrelax{\relax}
+
+\newif\ifcontinued
+\def\continuedcaption{\global\continuedtrue\caption{(continued)}}
+
+\def\caption{\ifx\@captype\xtable
+%
+\ifx\theletter\xrelax\global\xfirsttimetrue
+   \ifcontinued\global\continuedfalse\else
+%\ifappendon\else% don't advance counter because using another counter
+   \refstepcounter{table}
+%\fi
+   \fi
+\else
+  \ifxfirsttime\global\xfirsttimefalse
+     \ifcontinued\global\continuedfalse
+     \else \refstepcounter{table}
+     \fi
+  \fi
+\fi
+%
+\else% figure and plate
+     \ifx\theletter\xrelax\global\xfirsttimetrue
+       \ifcontinued\global\continuedfalse\else%
+%         \ifappendon
+%\ifx\@captype\xplate \refstepcounter{plate}\fi %% don't know why this works!
+%\else% don't advance counter because using another counter
+     \refstepcounter{\@captype}
+      \fi%\fi
+  \else%
+    \ifxfirsttime\global\xfirsttimefalse%
+      \ifcontinued\global\continuedfalse\else%
+%\ifappendon
+%\ifx\@captype\xplate \refstepcounter{plate}\fi %% don't know why this works!
+%\else% don't advance counter because using another counter
+       \refstepcounter{\@captype}
+%\fi
+\fi\fi\fi\fi%
+\xdef\currcaptype{\@captype}%
+\xdef\@currentlabel{\expandafter\csname p@\@captype\endcsname%
+\expandafter\csname the\@captype\endcsname}%
+\@dblarg{\@caption\@captype}}
+
+\def\letteredcaption#1{\gdef\theletter{#1}\caption}
+\def\letteredcontinuedcaption#1{\gdef\theletter{#1}\continuedcaption}
+
+\def\appcaption#1{%
+\ifx\@captype\xtable\centermultiplelinesfalse
+     \ifx\theletter\xrelax%
+     \global\xfirsttimetrue \ifcontinued\global\continuedfalse\else%
+     \global\advance\c at apptable by 1\fi\else%
+     \ifxfirsttime\global\xfirsttimefalse%
+     \ifcontinued\global\continuedfalse\else%
+     \global\advance\c at apptable by1\relax
+\fi\fi\fi
+\else%
+\ifx\@captype\xplate
+     \ifx\theletter\xrelax%
+     \global\xfirsttimetrue\ifcontinued\global\continuedfalse\else%
+     \global\advance\c at appplate by 1\fi\else%
+     \ifxfirsttime\global\xfirsttimefalse%
+     \ifcontinued\global\continuedfalse\else%
+     \global\advance\c at appplate by1\relax
+\fi\fi\fi
+\else
+     \ifx\theletter\xrelax%
+     \global\xfirsttimetrue\ifcontinued\global\continuedfalse\else%
+     \global\advance\c at appfigure by 1\fi\else%
+     \ifxfirsttime\global\xfirsttimefalse%
+     \ifcontinued\global\continuedfalse\else%
+     \global\advance\c at appfigure by1\relax
+\fi\fi\fi
+\fi\fi%
+%
+\def\thefigure{\Alph{section}\the\c at appfigure}
+\def\thetable{\Alph{section}\the\c at apptable}
+\def\theplate{\Alph{section}\the\c at appplate}
+\xdef\currcaptype{\@captype}%
+\xsavecaption{#1}}
+
+\newskip\abovefigcaptionskip
+\newskip\abovetabcaptionskip
+\newskip\abovetableskip
+\newif\ifcentermultiplelines
+\newif\ifcentersingleline
+\newif\ifcentersingletabline
+\newif\iflineabovetabcaption
+\newif\iflinebelowtabcaption
+\newdimen\belowtabcaptionskip
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Landscape figures and tables. Need \usepackage{graphicx} to work.
+
+\newif\iflandscapetable
+\newif\iflandscapetaborfig
+\newif\iflandscape
+
+\newbox\landscapebox
+\def\landscapeonecoltable{%
+\expandafter\ifx\csname rotatebox\endcsname\relax
+\show\landscapeerror\fi
+\advance\textheight by-8pt %to compensate for topskip
+\ifgalley
+\global\setbox\landscapebox\vbox\bgroup
+\hsize\textheight
+\captionwidth=\landscapecaptionwidth
+\centering
+\def\@captype{table}\captypefigfalse
+\doonecolfighere
+\landscapetaborfigtrue
+\else
+\vskip-1.5pt
+\goodbreak
+\global\setbox\landscapebox\vbox\bgroup\hsize\textheight
+\global\landscapetaborfigtrue
+\begin{table}[h]
+\hsize=\textheight
+\captionwidth=\hsize
+\parindent=0pt
+\centering
+\fi}
+
+\def\endlandscapeonecoltable{
+\ifgalley
+\endonecolfighere\egroup
+\insert\figinsert{\newpage\vbox to\textheight{\vss
+\rotatebox{90}{\vbox{\vskip-1.5pc
+\landscapetaborfigtrue
+\captionwidth=\landscapecaptionwidth
+\hsize=\textheight
+\unvbox\landscapebox
+}}\vskip-12pt}\newpage}
+\else
+%% not galley, normal text:
+\end{table}
+\egroup
+\vbox to\textheight{\vskip3pt
+\rotatebox{90}{\vbox to\mycolumnwidth{%
+\vfill
+\vbox to \mycolumnwidth{\vskip-\columnsep 
+\vskip-6pt
+\noindent
+\unvbox\landscapebox
+\vfill}}}
+\vss}\vskip24pt\fi}
+
+\def\landscapetwocoltable{%
+\expandafter\ifx\csname rotatebox\endcsname\relax
+\show\landscapeerror\fi
+\ifgalley
+\global\setbox\landscapebox\vbox\bgroup\hsize\textheight
+\captionwidth=\landscapecaptionwidth
+\centering
+\def\@captype{table}\captypefigfalse
+\doonecolfighere
+\landscapetaborfigtrue
+\else
+\begin{table*}[p]
+\newpage
+\advance\textheight by-6pt
+\global\setbox\landscapebox\vbox\bgroup\hsize\textheight
+\landscapetaborfigtrue
+\begin{table}[h]
+\fi}
+
+\def\endlandscapetwocoltable{\ifgalley
+\endonecolfighere\egroup
+\insert\figinsert{\newpage\vbox to\textheight{
+\vskip12pt
+\rotatebox{90}{\vbox{\vskip-1.5pc
+\landscapetaborfigtrue
+\captionwidth=\landscapecaptionwidth
+\hsize=\textheight
+\unvbox\landscapebox
+}}\vss}\newpage}
+\else
+\end{table}
+\egroup
+\vbox to\textheight{\vskip-14pt
+\rotatebox{90}{\vbox{
+\landscapetaborfigtrue
+\hsize=\textheight
+\unvbox\landscapebox
+}}\vss}\newpage
+\end{table*}
+\fi}
+
+%%%
+
+\def\landscapeonecolfigure{%
+\vskip1pt
+\goodbreak
+\expandafter\ifx\csname rotatebox\endcsname\relax
+\show\landscapeerror\fi
+\advance\textheight by-6pt %to compensate for topskip
+\ifgalley
+\global\setbox\landscapebox\vbox to \textheight\bgroup\hsize\textheight
+\captionwidth=\landscapecaptionwidth
+\centering
+\landscapetaborfigtrue
+\def\@captype{figure}\captypefigtrue
+\doonecolfighere
+\landscapetaborfigtrue
+\else
+\vskip-1.5pt
+\goodbreak
+\hsize=\textheight
+\global\setbox\landscapebox\vbox\bgroup\hsize\textheight
+\vfill
+\vskip-\intextfloatskip
+\landscapetaborfigtrue
+\begin{figure}[h]
+\centering
+\fi}
+
+\def\endlandscapeonecolfigure{\ifgalley
+\endonecolfighere\egroup
+\insert\figinsert{\newpage\vbox to\textheight{\vss
+\rotatebox{90}{\vbox{\landscapetaborfigtrue
+\captionwidth=\landscapecaptionwidth
+\hsize=\textheight
+\unvbox\landscapebox
+}}}}
+\else
+\end{figure}
+\vskip-\intextfloatskip
+\vskip-12pt
+\vfill\egroup
+\vbox to\textheight{\vskip4pt\vfill %%
+\rotatebox{90}{\vbox to\mycolumnwidth{\vss
+\landscapetaborfigtrue
+\hsize=\textheight
+\unvbox\landscapebox
+\vskip\columnsep
+\vskip6pt
+}}\vfill}\vskip24pt\goodbreak\fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\landscapetwocolfigure{%
+\expandafter\ifx\csname rotatebox\endcsname\relax
+\show\landscapeerror\fi
+\ifgalley
+\global\setbox\landscapebox\vbox to \textwidth\bgroup\hsize\textheight
+\captionwidth=\landscapecaptionwidth
+\centering
+\landscapetaborfigtrue
+\def\@captype{figure}\captypefigtrue
+\doonecolfighere
+\landscapetaborfigtrue
+\else
+\begin{figure*}[p]
+\newpage
+\global\setbox\landscapebox\vbox\bgroup\hsize\textheight
+\landscapetaborfigtrue
+\begin{figure}[h]
+\centering
+\fi}
+
+\def\endlandscapetwocolfigure{\ifgalley
+\endonecolfighere\egroup
+\insert\figinsert{\newpage\vbox to\textheight{\vskip\topskip
+\rotatebox{90}{\vbox to\textwidth{\vfill
+\landscapetaborfigtrue
+\captionwidth=\landscapecaptionwidth
+\hsize=\textheight
+\unvbox\landscapebox
+}}\vss}}
+\else
+\end{figure}
+\egroup
+\vbox to\textheight{\vskip12pt
+\rotatebox{90}{\vbox to0pt{\vbox to \textwidth{\vfill
+\landscapetaborfigtrue
+\hsize=\textheight
+\unvbox\landscapebox
+\vskip12pt
+}\vss}}\vss}\newpage\end{figure*}\fi}
+
+\let\landscapetable\landscapeonecoltable
+\let\endlandscapetable\endlandscapeonecoltable
+
+\expandafter%
+\def\csname landscapetable*\endcsname{\landscapetwocoltable}
+
+\expandafter%
+\def\csname endlandscapetable*\endcsname{\endlandscapetwocoltable}
+
+\let\landscapefigure\landscapeonecolfigure
+\let\endlandscapefigure\endlandscapeonecolfigure
+
+\expandafter%
+\def\csname landscapefigure*\endcsname{\landscapetwocolfigure}
+
+\expandafter%
+\def\csname endlandscapefigure*\endcsname{\endlandscapetwocolfigure}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\long\def\@makecaption#1#2{%
+\ifjdraft\captionwidth=\textwidth\fi%% Amy, 2/05/02
+\ifx\@captype\xtable% TABLE CAPTION
+\iflandscapetaborfig
+\hsize=\textheight
+\advance\hsize by-36pt
+\captionwidth=\hsize
+\vbadness=10000 \hbadness=10000
+    \fi
+%%
+ \iflineabovetabcaption\hrule\fi%
+ \vskip\abovetabcaptionskip%
+%%
+  \setbox\@tempboxa\hbox{\captionsize
+  \tablenamefont #1. \tabletextfont#2}%
+%
+\ifdim \wd\@tempboxa >\hsize
+\hbox to\hsize{\hfill\vbox{
+\hsize=\captionwidth 
+\iflandscapetaborfig
+\raggedright
+\fi
+\parindent=0pt
+\noindent\captionsize
+\tablenamefont
+#1.~\tabletextfont#2\vskip1sp}\hfill}%
+      \par
+   \else
+%
+\hbox to\hsize{\ifcentersingletabline\hfill\fi%
+\captionsize\tablenamefont
+#1.~\tabletextfont#2\hfill}%
+   \fi
+\vskip\belowtabcaptionskip
+%
+\else% FIGURE CAPTION
+    \iflandscapetaborfig
+\captionwidth=\landscapecaptionwidth
+    \vbadness=10000 \hbadness=10000
+\vskip12pt
+    \fi
+ \centermultiplelinesfalse
+ \vskip\abovefigcaptionskip
+ \iflandscape \hsize=\textheight \fi
+%
+  \setbox\@tempboxa\hbox{\captionsize\captionnamefont#1~~%
+  \captiontextfont#2}%
+%
+ \ifdim \wd\@tempboxa >\hsize
+   % \iflandscape\moveright26pt\fi
+\hbox to\hsize{\hfill\vbox{\hsize=\captionwidth 
+\captionsize\captionnamefont%
+#1.~\captiontextfont#2\vskip1sp}\hfill}\par%
+ \else% less than hsize in caption
+\noindent\hbox to\hsize{%
+\captionsize%
+  \ifcentersingleline\hfill\fi%
+  \captionnamefont
+#1.~\captiontextfont#2\hfill}
+ \fi%
+\fi% end figure caption
+%%%
+%% either figure or table
+\edef\@currentlabel{\expandafter\csname p@\@captype\endcsname%
+\expandafter\csname the\@captype\endcsname}%
+%
+\ifx\@captype\xtable
+  \iflinebelowtabcaption\vskip\belowtabcaptionskip\thetablelines\fi
+  \vskip\abovetableskip
+\fi
+\ifhere\else\gdef\theletter{\relax}\fi%
+\global\landscapetaborfigfalse}
+
+%% Plate definitions %%
+
+\newcounter{plate}
+\def\theplate{\@arabic\c at plate}
+\def\platename{Plate}
+\def\fps at plate{bp}
+\def\ftype at plate{4}
+\def\ext at plate{lof}
+\def\fnum at plate{{\bf Plate \theplate}}
+\def\plate{\@float{plate}}
+\let\endplate\end at float
+\def\platewidth#1{\hsize=#1\relax}
+\let\saveplate\plate
+\let\saveendplate\endplate
+%%  end plate definitions %%
+
+%% To number captions specifically
+
+\def\platenum#1{\let\caption\savecaption
+\def\@captype{plate}
+\def\theplate{#1} \let\@currentlabel\theplate  \let\label\savelabel}
+\let\setplatenum\platenum
+
+\def\setfigurenum#1{\let\caption\savecaption
+\def\@captype{figure}
+\def\thefigure{#1} \let\@currentlabel\thefigure \let\label\savelabel}
+
+\def\settablenum#1{\let\caption\savecaption
+\def\@captype{table}
+\def\thetable{#1} \let\@currentlabel\thetable  \let\label\savelabel}
+
+%%%% side by side captions
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% to use: 
+% \begin{figure or table} \sidebyside{}{} \end{figure or table}
+%
+% \begin{table} 
+% \sidebyside{\caption{table caption} first table}
+% {\caption{table caption} second table}
+% \end{table}
+
+% or
+
+% \begin{figure} 
+%\vskip<dimen>
+% \sidebyside{\caption{first fig caption}}
+% {\caption{second fig caption}}
+% \end{figure}
+
+% Or, if you want different spaces above the two
+% figure captions, you can put the \vskip or \vspace
+% <inside> the {}{}, ie.:
+
+% \begin{figure} 
+% \sidebyside{\vskip<dimen>\caption{fig caption}}
+% {\vskip<dimen>\caption{fig caption}}
+% \end{figure}
+
+% To call for line breaks, you can use \\ , but
+% also supply [], i.e., \caption[]{asdf}.
+% This will send whatever is in [] to the List of Tables. If
+% you are not using that you can just have facing square
+% brackets. If you are using List of Tables, you can supply
+% a title without \\ in it: 
+% \caption[$hA_3f_4K_2l_5$ 60-01-05]{$hA_3f_4K_2l_5$\\ 60-01-05}}
+
+% If you are not using List of Tables, just supply []'s, i.e.,
+%\begin{figure}[h]
+%\vspace{15pc}
+%\sidebyside{
+%\caption[]{$hA_3f_4K_2l_5$\\ 60-01-05}}
+%{\caption[]{$hD_8p_4F_xd_7$\\ 60-01-10}}
+%\end{figure}
+
+% xref labels work the same as normally:
+%\begin{figure}[h]
+%\vspace{4pc}
+%\sidebyside{\caption{Hexiamond board.\label{three}}}
+%{\caption{O'Beirne's?\label{four}}}
+%\end{figure}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\specialendtable{\vskip1sp\end at float}
+
+\long\def\sidebyside#1#2{%
+\hbox to\hsize{\let\caption\savecaption
+\ifcaptypefig\def\@captype{figure}\else\def\@captype{table}
+\footnotesize
+\fi%
+\vtop{\hsize=.5\hsize%
+\advance\hsize by -.5\columnsep
+\parindent=0pt
+\centering
+ 
+#1}\hskip\columnsep\vtop{\hsize=.5\hsize%
+\advance\hsize by -.5\columnsep
+\parindent=0pt\centering
+#2
+
+}}}
+
+%% make a caption on the right hand side with illustration to the left
+\long\def\sidecaption#1#2{\setbox0=\vbox{#1}
+\dimen0=\ht0 \advance\dimen0 by\dp0
+\hbox to\textwidth{\let\label\savelabel
+\vbox{\hsize=.65\textwidth\noindent\relax#1\vskip1sp}\hfill
+\vbox to\dimen0{\hsize=.3\textwidth
+\vfill
+\savecaption{\hsize=.3\textwidth #2}\vfill}}\aftergroup{\let\label\savelabel}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% iii) Tables, captions will adjust horizontal size to match width
+%%      of table. Ruled lines added to top or bottom of table.
+%%      Table content will extend to the left and right of columns,
+%%      no extra horizontal space left.
+
+\long\def\@caption#1[#2]#3{\par
+\begingroup
+    \@parboxrestore
+    \normalsize
+    \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces#3}\par
+  \endgroup}
+
+\def\catchlabel{}
+
+\def\savetable{\@float{table}}
+\let\saveendtable\end at float
+
+%% Made \begin{specialtable}... \end{specialtable} for cases in which there
+%% is a tabular inside another tabular, or for when author wants to
+%% use \begin{table}...\end{table} with something other than 
+%% \begin{tabular}...\end{tabular} in it.
+
+\def\specialtable{\def\@captype{table}%
+\ifcontinued\else\refstepcounter{table}\fi%
+\let\tabular\savetabular\let\endtabular\saveendtabular}
+
+\def\endspecialtable{\ifnobottomtabline\global\nobottomtablinefalse\else
+\vskip6pt
+\thetablelines\fi}
+
+\def\tableterms{\bgroup\everycr={\noalign{\vskip1pt}}%
+\let\\=\cr\halign\bgroup\hfill## :&\ ##\hfill\cr}
+
+\def\endtableterms{\crcr\egroup\vskip4pt\egroup}
+
+\newif\iffullwidthtable
+\def\table{\def\tabular{\tabletextsize\xtabular}
+\let\endtabular\endxtabular
+\expandafter\def\csname tabular*\endcsname ##1{%
+\global\setbox\savecurrtable\hbox\bgroup\tabletextsize%
+\def\@halignto{to ##1}\@tabular}
+\expandafter \let \csname endtabular*\endcsname = \endxtabular
+\def\label##1{\gdef\catchlabel{##1}}%
+\def\caption##1{\gdef\catchcaption{##1}}%
+\tabletextsize%\@float{table}
+}
+
+\newif\ifnobottomtabline
+\def\nobottomline{\global\nobottomtablinetrue}
+\let\nobottomlines\nobottomline
+
+\def\endtable{%
+\ifx\catchcaption\empty\else
+\ifx\theletter\xrelax
+\global\xfirsttimetrue\ifcontinued\global\continuedfalse\else
+\refstepcounter{table}\fi\else
+\ifxfirsttime\global\xfirsttimefalse\ifcontinued\global\continuedfalse
+\else\refstepcounter{table}\fi\fi\fi\fi
+\vskip1sp
+\noindent
+\iflandscapefigortab
+\dimen0=\textheight
+\advance\dimen0 by-\textwidth 
+\hsize=\textheight\else%\hsize=\textwidth
+\hskip-.5\dimen0\fi%
+%%??
+\hbox to\hsize{\hss%
+\vbox{\ifdim\wd\savecurrtable>0pt% 
+      \iffullwidthtable%\hsize=\textwidth 
+\centering\else%
+      \hsize=\wd\savecurrtable\fi\fi%
+\ifx\catchcaption\empty\else\vskip1sp{\savecaption{\catchcaption}}\fi%
+%
+\ifdim\wd\savecurrtable>0pt\relax%
+\unhbox\savecurrtable%
+\ifnobottomtabline\global\nobottomtablinefalse\else
+\vskip1sp%??
+\thetablelines\fi
+\vskip3pt
+\thetabnotes%
+\gdef\thetabnotes{\relax}
+\else\vskip1sp\fi
+}\hss}%
+%
+\ifx\catchlabel\empty\else%
+\xdef\@currentlabel{\thetable}%
+\savelabel{\catchlabel}\fi%
+\gdef\@currentlabel{}%
+\gdef\catchlabel{}%
+\gdef\catchcaption{}%
+%\saveendtable%
+\global\wd\savecurrtable=0pt}
+
+\let\thetabnotes\relax
+\let\catchcaption\empty
+\newbox\savecurrtable
+\let\savetabular\tabular
+\let\saveendtabular\endtabular
+\newskip\abovetabularskip
+\newskip\belowtabularskip
+
+\def\tabular{\vskip\abovetabularskip\vbox\bgroup
+\parindent=0pt\savetabular}
+\def\endtabular{\saveendtabular\egroup
+\vskip\belowtabularskip}
+
+\def\xtabular{\global\setbox\savecurrtable\hbox\bgroup%
+\tabletextsize\unskip\savetabular}
+\def\endxtabular{\saveendtabular
+\vskip1sp
+\ifnobottomtabline\global\nobottomtablinefalse\else
+\vskip1sp%??
+\thetablelines\fi
+\egroup}
+
+%% Change to default LaTeX table macros to make
+%% table contents spread to full width of horizontal rules:
+
+\def\xtable{table}
+\def\xplate{plate}
+
+\def\@array[#1]#2{\setbox\@arstrutbox=\hbox{\vrule 
+     height\arraystretch \ht\strutbox
+     depth\arraystretch \dp\strutbox
+     width\z@}\@mkpream{#2}\edef\@preamble{\halign \noexpand\@halignto
+\bgroup%
+\tabskip\z@\@arstrut\@preamble
+\ifx\@captype\xtable\hskip-\tabcolsep\fi%% <==== Changed
+\tabskip\z@ \cr}%
+\let\@startpbox\@@startpbox \let\@endpbox\@@endpbox%
+  \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi%
+  \bgroup\let\par\relax%
+  \let\@sharp##\let\protect\relax \lineskip\z@\baselineskip\z@\@preamble}
+
+\def\new at tabacol{\edef\@preamble{\@preamble\hskip0pt}}
+
+\def\@tabclassz{\ifcase \@lastchclass\@acolampacol% 
+\or \@ampacol \or
+   \or \or \@addamp \or \@acolampacol\or \@firstampfalse 
+\ifx\@captype\xtable \new at tabacol\else\@tabacol \fi%
+\fi%
+\edef\@preamble{\@preamble%
+  \ifcase \@chnum%
+     \hfil\ignorespaces\@sharp\unskip\hfil%
+     \or \ignorespaces\@sharp\unskip\hfil%
+     \or \hfil\hskip\z@ \ignorespaces\@sharp\unskip\fi}}
+
+%%%%%%%%%%%%%%%%%%
+%% iv) Draft macros, including Date and time for Draft line at bottom of page:
+
+\def\draft{\global\jdrafttrue
+\def\@oddfoot{\vtop to 0pt{\vskip24pt\large\tt\hsize=\textwidth
+\everypar{}
+D R A F T\hfill\today, \realtime\hfill D R A F T\global\titlefalse\vss}}
+\def\@evenfoot{\@oddfoot}}
+
+\def\today{\ifcase\month\or
+  January\or February\or March\or April\or May\or June\or
+  July\or August\or September\or October\or November\or December\fi
+  \space\number\day, \number\year}
+
+\def\fix{\ifcase\oldtime 0\or0\or0\or%
+0\or0\or0\or0\or0\or0\or0\fi}
+\def\fixtiming{\ifcase\timing 0\or0\or0\or% 
+0\or0\or0\or0\or0\or0\or0\fi}
+\newcount\timing 
+\newcount\hourcount
+\newcount\oldtime 
+
+\def\realtime{\timing=\time \oldtime=\time
+\ifnum\timing>60 \divide\timing by 60
+\hourcount=\the\timing
+\multiply\timing by 60
+\advance\oldtime by-\timing
+\ifnum\hourcount<12 \number\hourcount:\fix\number\oldtime am\fi%
+\ifnum\hourcount=12 \number\hourcount:\fix\number\oldtime pm\fi%
+\ifnum\hourcount>12 \advance\hourcount by-12
+\number\hourcount:\fix\number\oldtime pm\fi
+\else12:\fixtiming\number\timing am\fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%
+%% Generic macros to make specific style possible:
+
+%% 1) Running Head and Folio
+%% 2) Article title page, including capability for multiple \thanks,
+%%    end article.
+%% 3) Footnotes, endnotes
+%% 4) Acknowledgments
+%% 5) Appendices
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%
+%% 1) Running Head and Folio
+
+\def\ps at headings{%
+\def\@oddfoot{\jfootline}\def\@evenfoot{\jfootline}
+\def\@evenhead{\jheadline}%
+\def\@oddhead{\jheadline}%
+}
+
+\ps at headings 
+\pagenumbering{arabic} 
+\onecolumn 
+
+%%%%%%
+%% 2) Article title page, including capability for multiple \thanks,
+%%    end article.
+
+\newcount\totpages
+\def\mrule{\raise.75ex\hbox{\vrule width6pt height.5pt}}
+
+\def\lastpage{%
+\expandafter\ifx\csname endpage\the\c at chapter\endcsname\relax%
+ ?? \else
+--%
+\csname endpage\the\c at chapter\endcsname\fi}
+
+\def\smcopyright{%
+\ooalign {\hfil\raise .17ex\hbox{\footnotesize c}\hfil\crcr%
+\raise.17ex\hbox{$\scriptstyle\bigcirc$}}}
+
+\def\yearofpublication#1{\def\theyear{#1}}
+\def\monthofpublication#1{\def\themonth{#1}}
+\def\volume#1{\def\thevolume{#1}}
+\def\issuenumber#1{\def\theissuenumber{#1}}
+\def\journame#1{\def\thejourname{\uppercase{#1}}}
+\def\articlenumber#1{\def\thearticlenumber{#1}}
+
+\yearofpublication{Year ??}
+\volume{Volume ??}
+\issuenumber{Number ??}
+
+\def\editor#1{%
+\def\theeditor{\vskip\aboveacceptedskip\noindent Recommending editors: #1}} 
+
+%% To be used in specific style part of file, below:
+
+\newif\ifauthorUC
+\newif\iftitleUC
+
+\def\authorrunninghead#1{\def\theauthors{\ifauthorUC\uppercase\fi{#1}}}
+\def\titlerunninghead#1{\def\thetitle{\iftitleUC\uppercase\fi{#1}}}
+
+\newdimen\belowtitleskip
+\newdimen\abovesubtitleskip
+\newdimen\belowsubtitleskip
+\newdimen\aboveauthorskip
+\newdimen\belowauthorskip
+
+%% Making \thanks work multiple times in the title and in 
+%% authors line.
+
+\let\savefootnotetext\footnotetext
+\long\def\@makefntext#1{#1}
+
+\newcount\thanksnum
+\newcount\dothanks
+\def\dothankssymbol{\ifcase\thanksnum\or *\or $\dagger$\or
+$\ddagger$\or {$\mathchar "278$}\or {$\mathchar "27B$}\or $\|$\or 
+$\dagger\dagger$ \or $\ddagger\ddagger$ \else\@ctrerr\fi\relax}
+
+\newcount\thankscounter
+\def\thanks#1{\global\advance\thanksnum by1\relax
+\global\advance\dothanks by1
+\setbox1=\hbox{X}\ifnum\thanksnum=1\relax\else
+\raise.25\ht1\fi\vbox{\hbox{\dothankssymbol}\vfill}}
+
+\def\maketemp#1{\global\advance\thankscounter by1\relax
+{\footnotesize%
+\expandafter\gdef\csname tempthanks\the\thankscounter\endcsname{#1}}}
+%% gdef instead of xdef
+
+\newif\iftitle
+
+\def\StartOnNewPage{\clearpage
+\ifodd\c at page\else\null\clearpage\fi}
+
+%%%%%%%%%%%%%%%%%%%%
+%% Separate \thanks environment for title so we get number instead of
+%%   symbol
+
+\newcount\titlethanksnum
+\newcount\dotitlethanks
+\newcount\titlethankscounter
+
+\long\def\titlethanks{\futurelet\next\lookforast}
+\def\lookforast{\ifx\next*\let\go\authorthanks\else%
+\let\go\xtitlethanks\fi\go}
+
+\long\def\xtitlethanks#1{\global\advance\c at footnote by1\relax%
+\global\advance\titlethanksnum by1\relax%
+\global\advance\dotitlethanks by1\relax%
+\setbox1=\hbox{X}% 
+\unskip\raise.7ex\vbox{%
+\hbox{\normalsize\titlethanksfont\dotitlethankssymbol}\vfill}}
+
+\long\def\smalltitlethanks{\futurelet\next\lookforaster}
+\def\lookforaster{\ifx\next*\let\go\authorthanks\else
+\let\go\xsmalltitlethanks\fi\go}
+
+\long\def\xsmalltitlethanks#1{\global\advance\titlethanksnum by1\relax
+\global\advance\dotitlethanks by1 
+\raise.3\ht1\hbox{\footnotesize\dotitlethankssymbol}}
+
+\long\def\secondaffil#1{\global\advance\titlethanksnum by1\relax
+\global\advance\dotitlethanks by1 
+\raise.8\ht1\hbox{\footnotesize,\the\titlethanksnum}}
+
+\def\titlethankssymbol{\titlethanksfont\the\thanksnum}
+
+\long\def\titlemaketemp{\futurelet\next\tempast}
+\long\def\tempast{\ifx\next*\let\go\maketemp\else\let\go\xtitlemaketemp\fi\go}
+
+\long\def\xtitlemaketemp#1{\global\advance\titlethankscounter by1\relax
+\expandafter\gdef\csname temptitlethanks\the\titlethankscounter\endcsname{#1}}
+
+%% Making \thanks work multiple times in the title and in 
+%% authors line.
+
+%% \dothankssymbol may be used later, even if it is not being use now==>
+\let\savefootnotetext\footnotetext
+\newcount\thanksnum
+\newcount\dothanks
+\def\dothankssymbol{\ifcase\thanksnum\or*\or$\dagger$\or
+$\ddagger$\or $\mathchar "278$\or $\mathchar "27B$\or $\|$\or $\dagger\dagger$
+   \or $\ddagger\ddagger$ \else\@ctrerr\fi\relax}
+
+\def\dotitlethankssymbol{\ifcase\titlethanksnum\or*\or$\dagger$\or
+$\ddagger$\or $\mathchar "278$\or $\mathchar "27B$\or $\|$\or $\dagger\dagger$
+   \or $\ddagger\ddagger$ \else\@ctrerr\fi\relax}
+
+\newcount\thankscounter
+\long\def\thanks#1{\global\advance\thanksnum by1\relax
+\global\advance\dothanks by1
+\setbox1=\hbox{X}\vbox to\ht1{\hbox{\dothankssymbol}\vfill}}
+
+%%% Now used for unnumbered thanks:
+\long\def\authorthanks#1#2{\global\advance\thanksnum by1\relax
+\global\advance\dothanks by1\relax}
+
+\long\def\maketemp#1#2{\global\advance\thankscounter by1\relax
+\expandafter\gdef\csname tempthanks\the\thankscounter\endcsname{#2}}
+
+%%%%%%%%%%%%%%%%%%%%
+
+\newif\ifCenterArticleHead 
+
+\long\def\repeataffil#1{\setbox1=\hbox{X}\raise.8\ht1
+\hbox{\footnotesize#1}}
+
+\newdimen\authorwidth
+\newdimen\authorbaselineskip
+
+\long\def\author#1{%
+\vskip\aboveauthorskip
+\vbox{\hsize=\authorwidth
+\baselineskip=\authorbaselineskip
+\raggedright
+\hyphenpenalty=10000
+\let\thanks\titlethanks
+\frenchspacing\ifjdraft\large\else\authorfont\fi\noindent#1\vrule width0pt depth\belowauthorskip\hss}
+%C&G 11/9/01 Removed bold font for draft author names 
+%\frenchspacing\ifjdraft\large\bf\else\authorfont\fi\noindent#1\vrule width0pt depth\belowauthorskip\hss}
+\setbox1=\hbox{\let\altaffilmark\eatone
+\let\\ \relax\let\thanks\titlemaketemp #1
+}
+\vskip1sp}
+
+\let\authors\author
+\newdimen\aboveaffilskip
+\newdimen\belowaffilskip
+\newdimen\affilwidth
+
+\long\def\affil#1{%
+\vskip\aboveaffilskip
+{\parindent=0pt
+\hyphenpenalty=10000
+\raggedright
+\hsize=\affilwidth
+{\let\thanks\smalltitlethanks\frenchspacing
+\ifjdraft\large\else\affilsize\affilfont\fi#1
+\vskip1sp}}
+\setbox1=\hbox{\let\thanks\titlemaketemp#1}\vskip1sp}
+
+\def\reviewauthors{\typeout{^^J^^J The command 
+\string\begin\string{reviewauthors\string}\space should be 
+used only^^J for articles in Reviews of Geophysics^^J^^J }}
+
+\long\def\dedication#1{\def\thededication{\uppercase{#1}}}
+
+\def\xdedication{\vskip2pt\hbox to \textwidth{\hss \dedicationfont
+\thededication\hss}\vskip-2pt}
+
+\newif\ifabstractname
+\newdimen\aboveabstractskip
+\newdimen\belowabstractskip
+\newdimen\belowabstractnameskip
+\newdimen\abstractmargin
+
+\abstractmargin=0pt
+
+\def\xabstract{abstract}
+\long\def\abstract#1\end#2{\def\two{#2}\ifx\two\xabstract 
+\long\gdef\theabstract{\parindent=\saveparindent\ignorespaces#1}
+\def\go{\end{abstract}}\else
+\typeout{^^J^^J PLEASE DO NOT USE ANY \string\begin\space \string\end^^J
+COMMANDS WITHIN ABSTRACT^^J^^J}#1\end{#2}
+\gdef\theabstract{\vskip12pt BADLY FORMED ABSTRACT: PLEASE DO
+NOT USE {\tt\string\begin...\string\end} COMMANDS WITHIN
+THE ABSTRACT\vskip12pt}\let\go\relax\fi
+\go}
+
+
+%% If ABSTRACT should be printed, set to true
+\abstractnamefalse
+
+
+%%%%%%%%%%%%
+%% Begin, End article
+
+\newskip\abovereceivedskip
+\newskip\aboverevisedskip
+\newskip\aboveacceptedskip
+%C&G - addition For newcommand \published
+\newskip\abovepublishededskip
+\newbox\barticle
+\newbox\thanksbox
+\newbox\titlethanksbox
+
+\newcount\c at appendnum
+\newif\ifdocumentationextraspace
+
+%%%%%%%%%%
+%% 3) Footnotes, endnotes
+
+ \newcount\footnum
+ \newcount\savefootnum
+
+\def\notes{\global\let\section\savesection \global\appendonfalse
+{\ifnum\footnum=0\else
+\savefootnum=\footnum
+\footnum=0
+\section*{Notes}%
+\noindent\loop\ifnum\savefootnum>\footnum%
+\global\advance\footnum by1\relax%
+\csname foot\the\footnum\endcsname\relax%
+\expandafter\gdef\csname foot\the\footnum\endcsname{\relax}\relax%
+\repeat\global\footnum=0\relax\fi}}
+
+
+\long\def\endnotes#1{\global\advance\footnum by 1\relax$^{\the\footnum}$%
+\long\expandafter\gdef\csname foot\the\footnum\endcsname{%
+\vbox{\footnotesize\everypar={\hskip-10pt\everypar={}}
+\leftskip=10pt\relax
+\noindent\hbox to10pt{\the\footnum.\hfill}{\def\@currentlabel{\the\footnum}%
+#1\strut\vskip1sp}}\vskip1pt}}
+
+\def\endnotetext#1{\global\advance\footnum by 1\relax
+\long\expandafter\gdef\csname foot\the\footnum\endcsname{%
+\vtop{\footnotesize%
+\leftskip=12pt\relax\parindent=-12pt
+\indent\hbox to12pt{\the\footnum.\hfill}{#1\strut\vskip1sp}}\vskip1pt}}
+
+%%%%%%%%
+%% 4) Acknowledgments
+
+\newskip\ackskip
+
+%%%%%%%%
+%% 5) Appendices
+% \appendix resets counters and redefines section heads
+% but doesn't print anything. 
+% After typing
+% \appendix 
+%
+% \section{Here is Appendix Title}
+% will print 
+% Appendix A: Here is Appendix Title
+%
+% \section*{Appendix}
+% will print 
+% Appendix 
+%
+% \section*{Appendix: Here is Appendix Title}
+% will print 
+% Appendix: Here is Appendix Title 
+
+\newif\ifappendon
+\newif\ifupperappend
+
+\def\appendix{%\let\caption\appcaption
+\def\@currentlabel{\Alph{section}}
+\global\appendontrue\goodbreak
+\global\advance\c at appendnum by 1
+\refstepcounter{section}%
+\global\c at section=0
+\global\c at equation=0
+\def\thesection{\Alph{section}}
+\def\thesubsection{\Alph{section}\@arabic{\c at subsection}}
+\def\thesubsubsection{\thesubsection.\@arabic{\c at subsubsection}}
+\def\thesubsubsubsection{\thesubsubsection.\@arabic{\c at subsubsection}}
+\resetappcounters
+}
+
+\def\resetappcounters{
+\global\c at equation=0
+\global\c at appfigure=0
+\global\c at apptable=0
+\global\c at appplate=0
+}
+
+\let\savefigure\figure
+\let\saveendfigure\endfigure
+
+\newif\iftwocolfigortab
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%                                                                      %%
+%% LaTeX Style for Multiple Columns with Floating Insertions            %%
+%%                                                                      %%
+%% Copyright 1999--2001, Amy Hendrickson, TeXnology Inc.                %%
+%% All rights reserved                                                  %%
+%%                                                                      %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%% 
+%%% Double column output routines, 
+%%% with single and double column insertions,
+%%% to be positioned at page or column top, page or column bottom, page 
+%%% or column center, or full page floating insertion.
+%%% This code was originally based on Frank Mittlebach's multicol.sty.
+%%% The concept of how to balance columns is due to Donald Knuth. The
+%%% way to integrate the changed output routine into the standard LaTeX 
+%%% output routine is due to Frank. 
+%%% The method of making the single and double column insertions and the
+%%% changes in the output routines to accomodate these features are mine.
+%%% A.H., April 2001
+%%
+
+
+%% Parameters you can set:
+\columnsep=12pt
+\newdimen\saveparskip
+\saveparskip=\parskip
+
+%%
+\newdimen\captionskip %% space between caption and figure or table
+\captionskip=0pt
+%%%
+
+\newdimen\PushOneColTopFig
+\newdimen\PushOneColBotFig
+
+\PushOneColTopFig=5.5pt %% push down from top of text page
+\PushOneColBotFig=-4.5pt % 
+
+%%
+\newdimen\PushOneColTopTab
+\newdimen\PushOneColBotTab
+
+\PushOneColTopTab=2.5pt  %% push down from top of text page
+\PushOneColBotTab=0pt %% push up from bottom of text page
+
+%%
+\newdimen\PushTwoColTopFig
+\newdimen\PushTwoColBotFig
+
+\PushTwoColTopFig=2.5pt %% push down from top of text page
+\PushTwoColBotFig=1.5pt   %% push up from bottom of text page
+
+%%
+\newdimen\PushTwoColTopTab
+\newdimen\PushTwoColBotTab
+
+\PushTwoColTopTab=1.5pt %% push down from top of text page
+\PushTwoColBotTab=1.5pt %% push up from bottom of text page
+
+%%
+
+\newskip\intextfloatskip
+\intextfloatskip=20pt %%  Space between figure or table and text. 
+         %% (Need to subtract 4pt to get what you want)
+
+%% Normal and Appendix Figure and Table Numbers
+
+\def\appthefigure{\Alph{section}\the\c at appfigure\theletter}
+\def\appthetable{\Alph{section}\the\c at apptable\theletter}
+\def\apptheplate{\Alph{section}\the\c at appplate\theletter}
+
+\newcount\c at appfigure
+\newcount\c at apptable
+\newcount\c at appplate
+
+%% <=== end of parameters you can set
+
+%% do one column at a time so that we can get single col
+%% floats for first col.
+
+%%% New version of \@makecol that includes dbltopins and dblbotins,
+%%% insertions that span both columns at the top and bottom of text page.
+
+%%% 
+
+\def\new at makecol{\setbox\@outputbox
+     \vbox{\boxmaxdepth \maxdepth
+\ifdim\ht\dbltopins<1pt\else\unvbox\dbltopins\fi
+     \unvbox\@cclv
+\ifdim\ht\dblbotins<1pt\else\unvbox\dblbotins\fi%
+\ifvoid\footins\else\vskip\skip\footins\footnoterule\unvbox\footins\fi\vss}
+%\global\savefigandtabnumber\figandtabnumber
+%\global\advance\savefigandtabnumber by 1 %% Because loop stops one short 
+                                         %% of the total number of figs
+\global\savedblfigandtabnumber\dblfigandtabnumber
+   \xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats
+   \setbox\@outputbox\vbox to\@colht{\boxmaxdepth\maxdepth
+   \@texttop\dimen128=\dp\@outputbox\unvbox\@outputbox
+   \vskip-\dimen128\@textbottom}%
+   \global\maxdepth\@maxdepth}
+
+%% 
+\let\@makecol\new at makecol %%
+
+%% Default Latex output routine, to return to after balance columns
+%% This should make it possible to capture the output routine of 
+%% any version of 2e as well as 2.09. ==>>
+
+\edef\curroutput{\the\output}
+\let\latexoutput\curroutput
+
+%% table* and figure*  outside two columns keep default definitions.
+
+\newif\ifnonewpage
+\def\nonewpage{\global\nonewpagetrue}
+
+%% Begin twocolumns ==>>
+\newdimen\checkforspace
+\def\twocolumns{\par \penalty\z@
+\checkforspace=\pagegoal
+\advance\checkforspace-\pagetotal
+\advance\checkforspace-\ht\partialpage
+\advance\checkforspace-\dp\partialpage
+\advance\checkforspace by -2\ht\dbltopins
+\advance\checkforspace by -2\dp\dbltopins
+\advance\checkforspace by -2\ht\dblbotins
+\advance\checkforspace by -2\dp\dblbotins
+\ifdim\checkforspace<36pt\ifnonewpage\else\newpage\fi\fi
+\begingroup 
+%
+\expandafter\gdef\csname plate*\endcsname{\twocolplate}
+\expandafter\gdef\csname endplate*\endcsname{\endtwocolfloat}
+%
+\expandafter\gdef\csname figure*\endcsname{\twocolfig}
+\expandafter\gdef\csname endfigure*\endcsname{\endtwocolfloat}
+%
+\expandafter\gdef\csname table*\endcsname{\twocoltable}
+\expandafter\gdef\csname endtable*\endcsname{\endtwocolfloat}
+%
+\let\figure\onecolfig
+\let\plate\onecolplate
+\let\table\onecoltable
+%
+\let\@makecol\new at makecol %%
+%%      Confines new def of \@makecol to
+%%      two column material, preserves normal topskip after twocolumns is
+%%      finished.
+%%
+\output={\global\setbox\partialpage=\vbox{\unvbox\@cclv}}
+\vskip1sp %%
+\eject
+  \vbadness10001 \hbadness5000
+  \tolerance5000
+\parskip  \saveparskip %plus .01pt %
+\ifjdraft
+\baselineskip=28pt\fi
+   \pretolerance\m at ne %keeps TeX from trying to make up paragraph
+   %  without discretionary hyphens
+  \advance\@colroom-\ht\partialpage
+  \advance\@colroom-\dp\partialpage
+\vsize=\@colroom 
+% Changed to \@colroom rather than 2\@colroom. Each column is output
+% separately so we can find out if there are top or bottom inserts
+% in first column.
+%%
+  \hsize\textwidth \advance\hsize-\columnsep 
+  \divide\hsize by 2 
+  \linewidth\hsize %% particular to LaTeX
+  \columnwidth=\hsize
+%% OR, you can substitute these lines:
+%\hsize=\mycolumnwidth
+%\linewidth=\hsize
+%%
+%% Output:
+%  Set output to firstcolout, which checks to see if there are inserts
+%  then doubles the vsize and send material back into input stream, then
+%  sets the next output routine to \makeuppage
+%
+\output={\firstcolout}
+\vskip2sp\ignorespaces}
+
+
+\def\galleycolumns{\par \penalty\z@
+\checkforspace=\pagegoal
+\advance\checkforspace-\pagetotal
+\advance\checkforspace-\ht\partialpage
+\advance\checkforspace-\dp\partialpage
+\advance\checkforspace by -2\ht\dbltopins
+\advance\checkforspace by -2\dp\dbltopins
+\advance\checkforspace by -2\ht\dblbotins
+\advance\checkforspace by -2\dp\dblbotins
+\ifdim\checkforspace<36pt\newpage\fi
+\begingroup 
+\expandafter\gdef\csname plate*\endcsname{\twocolplate}
+\expandafter\gdef\csname endplate*\endcsname{\endtwocolfloat}
+%
+\expandafter\gdef\csname figure*\endcsname{\twocolfig}
+\expandafter\gdef\csname endfigure*\endcsname{\endtwocolfloat}
+%
+\expandafter\gdef\csname table*\endcsname{\twocoltable}
+\expandafter\gdef\csname endtable*\endcsname{\endtwocolfloat}
+%
+\let\figure\onecolfig
+\let\plate\onecolplate
+\let\table\onecoltable
+%
+\global\firstsectionfalse
+\hsize=\mycolumnwidth
+\linewidth=\mycolumnwidth
+  \vbadness10001 
+\hbadness5000
+  \tolerance5000
+\widowpenalty=0 \clubpenalty=0
+\parskip  \saveparskip %plus .0001pt %
+\vskip1sp\ignorespaces}
+
+\def\draftcolumns{\par \penalty\z@
+\begingroup 
+\expandafter\gdef\csname plate*\endcsname{\twocolplate}
+\expandafter\gdef\csname endplate*\endcsname{\endtwocolfloat}
+%
+\expandafter\gdef\csname figure*\endcsname{\twocolfig}
+\expandafter\gdef\csname endfigure*\endcsname{\endtwocolfloat}
+%
+\expandafter\def\csname table*\endcsname{\twocoltable}
+\expandafter\def\csname endtable*\endcsname{\endtwocolfloat}
+%
+\let\figure\onecolfig
+\let\plate\onecolplate
+\let\table\onecoltable
+%
+\marginparsep=4pt
+\oddsidemargin-.25in
+\evensidemargin-.25in
+\advance\textwidth-.5in
+\hsize=\textwidth
+\linewidth=\textwidth
+  \vbadness10001 \hbadness5000
+  \tolerance5000
+\parskip  \saveparskip 
+\vskip1sp\ignorespaces}
+
+\newbox\savetopinsert
+\newbox\savebotinsert
+\newbox\secondsavetopinsert
+\newbox\secondsavebotinsert
+\newbox\firstcolbox
+\newbox\secondcolbox
+\newbox\thefirstbox
+\newbox\thesecondbox
+
+\newdimen\firstcol
+\newdimen\secondcol
+\newdimen\checkheight
+
+\newcount\loopnum
+\newcount\firstcolsavefignum
+
+\def\firstcolout{%
+%% The point of having firstcolout is to find out
+%% which figures/tables have been entered in the first column:
+\global\firstcolsavefignum=\figandtabnumber
+\global\advance\vsize by\@colroom
+\topskip=11pt %% ??
+       \unvbox\@cclv
+       \penalty\outputpenalty
+\global\output={\makeuppage}}
+
+%% This is where the floats and text are put together to make page:
+
+\newif\iffirstpage
+\newbox\footnotebox
+
+\newdimen\ColUsed
+\newdimen\FigSpace
+\newbox\testdblbotins
+
+\def\makeuppage{% 
+%%
+\FigSpace=.9\@colroom %% 
+\advance\FigSpace by-\ht\testdblbotins
+\advance\FigSpace by-\dp\testdblbotins
+\advance\FigSpace by-\ht\dbltopins
+\advance\FigSpace by-\dp\dbltopins
+%
+%% Save top inserts from first column: 
+\global\setbox\savetopinsert=\vbox{%
+% write top figures and tables into this box
+\redefiningtrue
+\global\loopnum=0 \global\checkheight=0pt
+\loop\ifnum\loopnum<\firstcolsavefignum 
+ %
+\expandafter\ifx\csname topfloat\the\loopnum\endcsname\empty
+\else
+\expandafter\ifx\csname topfloat\the\loopnum\endcsname\relax
+\else
+\global\advance\checkheight by 
+\expandafter\csname totalht\the\loopnum\endcsname\relax
+\fi\fi
+\ifdim\checkheight>\FigSpace \relax
+\global\loopnum=10000 % jump out of loop
+%
+\else
+\csname topfloat\the\loopnum\endcsname
+\fi
+  %
+\global\advance\loopnum by1
+\repeat\relax
+}
+\ColUsed=\FigSpace %%
+\advance\ColUsed by-\ht\savetopinsert
+\advance\ColUsed by-\dp\savetopinsert
+  %%
+\global\setbox\savebotinsert=\vbox{%
+  %% Write bottom figures and tables into this box
+\redefiningtrue
+\global\loopnum=0 
+\global\checkheight=0pt
+\loop\ifnum\loopnum<\firstcolsavefignum 
+\expandafter\ifx\csname botfloat\the\loopnum\endcsname\empty
+\else
+\expandafter\ifx\csname botfloat\the\loopnum\endcsname\relax
+\else
+\global\advance\checkheight by 
+\expandafter\csname totalht\the\loopnum\endcsname\relax
+\fi\fi
+\ifdim\checkheight>\ColUsed
+\global\loopnum=10000 % jump out of loop
+\else%
+\csname botfloat\the\loopnum\endcsname
+\global\expandafter\expandafter\let\csname botfloat\the\loopnum\endcsname\relax
+%% how come this reset is here and not in similar places????
+\fi
+  %
+\global\advance\loopnum by1
+\repeat
+} %
+  %
+%
+\iffirstpage\else
+\global\setbox\secondsavetopinsert=\vbox{%
+%% Write top figures and tables into this box
+%
+\global\loopnum=0 \global\checkheight=0pt
+\redefiningtrue
+\loop\ifnum\loopnum<\figandtabnumber %% ?
+%
+\expandafter\ifx\csname topfloat\the\loopnum\endcsname\empty
+\else
+\expandafter\ifx\csname topfloat\the\loopnum\endcsname\relax
+\else
+\global\advance\checkheight by 
+\expandafter\csname totalht\the\loopnum\endcsname\relax
+\fi\fi
+\ifdim\checkheight>\FigSpace
+\global\loopnum=10000 % jump out of loop
+%
+\else%
+\csname topfloat\the\loopnum\endcsname
+\fi
+%
+\global\advance\loopnum by1\repeat
+%% one more, because it doesn't stop when number is =, only when it
+%% is less than.
+\global\advance\loopnum by1
+\csname topfloat\the\loopnum\endcsname
+}
+\fi
+%
+\ColUsed=\FigSpace %% 
+\advance\ColUsed by-\ht\secondsavetopinsert
+\advance\ColUsed by-\dp\secondsavetopinsert
+%
+\iffirstpage\global\firstpagefalse\else
+\global\setbox\secondsavebotinsert=\vbox{%
+%% Write bottom figures and tables into this box
+%
+\redefiningtrue
+\global\loopnum=0 \global\checkheight=0pt
+\loop\ifnum\loopnum<\figandtabnumber
+\expandafter\ifx\csname botfloat\the\loopnum\endcsname\empty
+\else
+\expandafter\ifx\csname botfloat\the\loopnum\endcsname\relax
+\else
+\global\advance\checkheight by 
+\expandafter\csname totalht\the\loopnum\endcsname\relax
+\fi\fi
+\ifdim\checkheight>\ColUsed
+\global\loopnum=10000 % jump out of loop
+%
+\else%
+\csname botfloat\the\loopnum\endcsname
+\fi
+%
+\global\advance\loopnum by1\repeat
+%% one more, because it doesn't stop when number is =, only when it
+%% is less than.
+\global\advance\loopnum by1
+\csname botfloat\the\loopnum\endcsname
+}
+%
+\global\dp\secondsavebotinsert=2.5pt
+\global\dp\savebotinsert=2.5pt
+\fi
+%
+   \splittopskip=\topskip
+   \splitmaxdepth\maxdepth
+   \dimen@\@colroom
+%% Leave space if there is a two-column wide bottom insertion:
+%
+\global\setbox\dblbotins=\vbox{% 
+\hsize=\textwidth
+\linewidth=\textwidth
+\captionwidth=\widecaptionwidth
+\unvbox\dblbotins %% avoid eradicating this if it has anything in it
+%% Write dblspan bottom figures and tables into this box
+\redefiningtrue
+\global\dblloopnum=0 
+\loop\ifnum\dblloopnum<\savedblfigandtabnumber %%
+\csname dblbotfloat\the\dblloopnum\endcsname
+\global\advance\dblloopnum by1\repeat
+\csname dblbotfloat\the\dblloopnum\endcsname
+}
+   \ifvoid\dblbotins \else
+      \advance\dimen at -\ht\dblbotins   
+      \advance\dimen at -\dp\dblbotins   
+\fi
+% 
+%% Leave space if there is a two-column wide top insertion:
+   \ifvoid\dbltopins\else 
+      \advance\dimen at -\ht\dbltopins
+      \advance\dimen at -\dp\dbltopins
+\fi
+%%
+%% These changes are made to cut the column size down if we need
+%% to fit an insert into the column. This allows the right and
+%% left column to have differing amounts of text cut from box 255,
+%% called box \@cclv in LaTeX. See \vsplit below.
+\firstcol=\dimen@
+\ifvoid\savetopinsert\else
+\ifdim\ht\savetopinsert>0pt
+\advance\firstcol by-\ht\savetopinsert
+\advance\firstcol by-\dp\savetopinsert\fi\fi
+\ifvoid\savebotinsert\else
+\ifdim\ht\savebotinsert>0pt
+\advance\firstcol by-\ht\savebotinsert
+\advance\firstcol by-\dp\savebotinsert\fi
+\fi% 
+%%% KLUDGE below 
+\advance\firstcol by-3pt %% We need this to avoid        
+                         %% error messages about overfull boxes.
+%
+\secondcol=\dimen@
+%%
+\ifvoid\secondsavetopinsert\else
+\ifdim\ht\secondsavetopinsert>0pt
+\advance\secondcol by-\ht\secondsavetopinsert
+\advance\secondcol by-\dp\secondsavetopinsert\fi\fi
+\ifvoid\secondsavebotinsert\else
+\ifdim\ht\secondsavebotinsert>0pt
+\advance\secondcol by-\ht\secondsavebotinsert
+\advance\secondcol by-\dp\secondsavebotinsert\fi\fi
+\ifvoid\footins\else
+\ifdim\ht\footins>0pt
+\global\setbox\footnotebox=\vbox{\vskip\skip\footins
+\footnoterule\unvbox\footins\vskip1sp}
+\advance\secondcol by-\ht\footnotebox
+\advance\secondcol by-\dp\footnotebox\fi\fi
+%%% KLUDGE below
+\advance\secondcol by-3pt %% We need this to avoid
+                          %% error messages about overfull boxes.
+%
+%% Cutting the amount of text that will fit from box255:
+   \splittopskip=\topskip %% 
+   \splitmaxdepth\maxdepth
+\setbox\thefirstbox \vsplit\@cclv to\firstcol
+\setbox\thesecondbox \vsplit\@cclv to\secondcol
+%
+%% Making a text box that includes the inserts, column to the left:
+\setbox\firstcolbox\vbox to\dimen@{%
+\ifvoid\savetopinsert\else\unvbox\savetopinsert\fi%
+\box\thefirstbox%
+\ifvoid\savebotinsert\else\vfill\unvbox\savebotinsert\fi%
+}
+% 
+%% Making a text box that includes the inserts, column to the right:
+\setbox\secondcolbox\vbox to\dimen@{%
+\ifvoid\secondsavetopinsert\else\unvbox\secondsavetopinsert\fi%
+\box\thesecondbox%%
+\ifvoid\secondsavebotinsert\else\vfill\unvbox\secondsavebotinsert\vskip1sp\fi%
+\ifvoid\footnotebox\else\unvbox\footnotebox\fi%
+}
+% Put back any text material that is not used:
+  \ifvoid\@cclv \else
+       \unvbox\@cclv 
+       \penalty\outputpenalty\fi
+   \setbox\@cclv\vbox{\page at sofar}%
+   \@makecol\@outputpage
+   \global\@colroom\@colht
+% Changed this so that each column will be output separately, 
+% so we have a chance to see if there are any insertions in the first
+% column. 
+%
+%% Do Page Inserts here, so that if there are any two col top inserts
+%% They will be numbered after Page Inserts.
+%%
+\expandafter\ifx\csname pagefloat\the\pageloopnum\endcsname\relax
+\else
+\expandafter\ifx\csname pagefloat\the\pageloopnum\endcsname\empty
+\else
+\insertpage\fi\fi
+%
+%** doing this now gets the numbers right.
+\global\setbox\dbltopins=\vbox{%
+\hsize=\textwidth
+\linewidth=\textwidth
+\captionwidth=\widecaptionwidth
+\unvbox\dbltopins
+%% Write dblspan bottom figures and tables into this box
+\redefiningtrue %
+\global\dblloopnum=0 
+\loop\ifnum\dblloopnum<\savedblfigandtabnumber
+\csname dbltopfloat\the\dblloopnum\endcsname
+\global\advance\dblloopnum by1\repeat
+\csname dbltopfloat\the\dblloopnum\endcsname% 
+                                %Save one for next page?
+%\vskip24pt
+}
+%**
+%
+%% dblfigandtabnumber rather than savedblfigandtabnumber here
+\global\setbox\testdblbotins=\vbox{% 
+\let\c at figure\bogus
+\let\c at table\bogus
+\let\c at plate\bogus
+\hsize=\textwidth
+\linewidth=\textwidth
+\captionwidth=\widecaptionwidth
+\copy\dblbotins %% avoid eradicating this if it has anything in it
+%% Write dblspan bottom figures and tables into this box
+\redefiningfalse
+\global\dblloopnum=0 
+\loop\ifnum\dblloopnum<\dblfigandtabnumber %%
+\csname dblbotfloat\the\dblloopnum\endcsname
+\global\advance\dblloopnum by1\repeat
+\csname dblbotfloat\the\dblloopnum\endcsname
+}
+%
+\ifbalancing
+\global\balancingfalse
+\global\vsize=2\@colroom
+\else
+\global\vsize\@colroom
+\global\advance\vsize -\ht\dbltopins
+\global\advance\vsize -\dp\dbltopins
+\global\advance\vsize -\ht\testdblbotins
+\global\advance\vsize -\dp\testdblbotins
+\global\output={\firstcolout}%
+\fi
+}
+
+
+\newcount\pageloopnum
+
+\def\secondoutput{{\makeuppage }}
+
+\newbox\endcolsavetopinsert
+\newbox\endcolsavebotinsert
+\newbox\testpagesize
+\newif\ifbalancing
+
+\newdimen\savelastskip
+%%
+\def\endtwocolumns{% 
+%\par\penalty0
+\splittopskip=\topskip
+\splitmaxdepth\maxdepth
+\setboxesandredefine
+\ifdim\ht\endcolsavetopinsert>1pt
+\unvbox\endcolsavetopinsert%
+\fi
+\ifdim\ht\endcolsavebotinsert>1pt
+\unvbox\endcolsavebotinsert%
+\fi
+\par\penalty\z@ 
+\output={\global\setbox\testpagesize=\vbox{%
+\unvbox\@cclv\ifdim\savelastskip>0pt \vskip-\savelastskip\fi}}\eject
+ %%
+ %% We reset output routine below to \latexoutput
+ %% since we had to set multicolout to be the global output routine.
+ %%
+\dimen0=\ht\testpagesize
+\advance\dimen0 by\dp\testpagesize
+\unvbox\testpagesize %% 
+%% Above needed to see if we have more than one page worth of text.
+%%
+\advance\dimen0 by \topskip
+\ifdim\dimen0>2\@colroom
+%\typeout{^^J^^J more than 2 colroom^^J^^J}
+ %% More than one page of text:
+ %%
+\balancingtrue %% need this to avoid turning on firstcolout output routine.
+\global\output={\settwocolboxes\makeuppage
+\global\output={\setboxesandredefine
+\balance at columns\global\output={\latexoutput}}}
+\else
+\settwocolboxes
+\advance\dimen0 by 2\ht\dbltopins
+\advance\dimen0 by 2\dp\dbltopins
+\ifdim\dimen0>2\@colroom
+%\typeout{^^J^^J Second more than 2 colroom^^J^^J}
+ %%
+\balancingtrue %% need this to avoid turning on firstcolout output routine.
+\global\output={\makeuppage
+\global\output={\balance at columns\global\output={\latexoutput}}}
+\else
+%\typeout{^^J^^J NOT more than 2 colroom^^J^^J}
+\balancingtrue %% need this to avoid turning on firstcolout output routine.
+\global\output={\balance at columns\global\output={\latexoutput}}\fi\fi
+\par
+\eject
+\endgroup
+\par\penalty\z@\relax
+\hsize=\textwidth
+}
+
+%% to get rid of spurious error message when triple col is used:
+\def\@checkend#1{\def\reserved at a{#1}\ifx
+      \reserved at a\@currenvir \else\iftriplecol
+\else\@badend{#1}\fi\fi}
+
+\def\endgalley{\vskip1sp\endgroup\newpage
+\vspace*{1in}
+\unvbox\figinsert}
+
+\def\enddraft{\vskip1sp\endgroup
+\ifdim\ht\figinsert <2pt\else
+\newpage
+\vspace*{1in}
+\unvbox\figinsert\fi}
+
+\def\setboxesandredefine{%
+\global\setbox\dbltopins=\vbox{%
+\hsize=\textwidth
+\linewidth=\textwidth
+\captionwidth=\widecaptionwidth
+\unvbox\dbltopins
+%% Write dblspan bottom figures and tables into this box
+\redefiningtrue %
+\global\dblloopnum=0 
+\loop\ifnum\dblloopnum<\dblfigandtabnumber
+\csname dbltopfloat\the\dblloopnum\endcsname
+\global\advance\dblloopnum by1\repeat
+\csname dbltopfloat\the\dblloopnum\endcsname% 
+%                           %Save one for next page?
+\vskip3pt%% kludge
+\vskip-\intextfloatskip
+}
+%
+\global\setbox\endcolsavetopinsert=\vbox{%
+%% dropping figures and tables into this box
+\loopnum=0
+\redefiningtrue
+\loop\ifnum\loopnum<\figandtabnumber
+\csname topfloat\the\loopnum\endcsname
+\global\advance\loopnum by1\repeat
+\csname topfloat\the\loopnum\endcsname%
+}
+%
+\global\setbox\endcolsavebotinsert=\vbox{%
+%% drop figures and tables into this box
+\global\loopnum=0 
+\redefiningtrue
+\loop\ifnum\loopnum<\figandtabnumber
+\csname botfloat\the\loopnum\endcsname
+\global\advance\loopnum by1\repeat
+\csname botfloat\the\loopnum\endcsname}
+%
+\global\setbox\dblbotins=\vbox{% 
+\hsize=\textwidth
+\linewidth=\textwidth
+\captionwidth=\widecaptionwidth
+\unvbox\dblbotins %% avoid eradicating this if it has anything in it
+% Write dblspan bottom figures and tables into this box
+\redefiningtrue
+\global\dblloopnum=0 
+\loop\ifnum\dblloopnum<\dblfigandtabnumber %%
+\csname dblbotfloat\the\dblloopnum\endcsname
+\global\advance\dblloopnum by1\repeat
+\csname dblbotfloat\the\dblloopnum\endcsname}%
+}%% end of setboxes and redefine
+
+\def\settwocolboxes{%
+\global\setbox\dbltopins=\vbox{%
+\hsize=\textwidth
+\linewidth=\textwidth
+\captionwidth=\widecaptionwidth
+\unvbox\dbltopins
+% Write dblspan bottom figures and tables into this box
+\redefiningtrue %
+\global\dblloopnum=0 
+\loop\ifnum\dblloopnum<\dblfigandtabnumber
+\csname dbltopfloat\the\dblloopnum\endcsname
+\global\advance\dblloopnum by1\repeat
+\csname dbltopfloat\the\dblloopnum\endcsname% 
+%
+%\global\setbox\dblbotins=\vbox
+\hsize=\textwidth
+\linewidth=\textwidth
+\captionwidth=\widecaptionwidth
+\unvbox\dblbotins %% avoid eradicating this if it has anything in it
+% Write dblspan bottom figures and tables into this box
+\redefiningtrue
+\global\dblloopnum=0 
+\loop\ifnum\dblloopnum<\dblfigandtabnumber %%
+\csname dblbotfloat\the\dblloopnum\endcsname
+\global\advance\dblloopnum by1\repeat
+\csname dblbotfloat\the\dblloopnum\endcsname%
+\vskip\intextfloatskip%% new++
+}}
+
+\def\setonecolboxesandredefine{%
+\global\setbox\endcolsavetopinsert=\vbox{%
+%% dropping figures and tables into this box
+\loopnum=0
+\redefiningtrue
+\loop\ifnum\loopnum<\figandtabnumber
+\csname topfloat\the\loopnum\endcsname
+\expandafter\ifx\csname topfloat\the\loopnum\endcsname\relax\else
+\vskip12pt\goodbreak\fi
+\global\advance\loopnum by1\repeat
+\csname topfloat\the\loopnum\endcsname%
+}
+%
+\global\setbox\endcolsavebotinsert=\vbox{%
+%% drop figures and tables into this box
+\global\loopnum=0 
+\redefiningtrue
+\loop\ifnum\loopnum<\figandtabnumber
+\csname botfloat\the\loopnum\endcsname
+% we don't want a space here because it is at the bottom of a column:
+%\expandafter\ifx\csname botfloat\the\loopnum\endcsname\relax\else
+%\vskip12pt\goodbreak\fi
+\global\advance\loopnum by1\repeat
+\csname botfloat\the\loopnum\endcsname%
+}
+%
+}%% end of setonecol boxes and redefine
+
+\newbox\partialpage
+\def\process at cols#1#2{\count@#1\relax
+     \loop #2%
+     \advance\count@\tw@
+     \ifnum\count@<4
+   \repeat}
+
+%%%   Version for balanced column output.
+
+%% this version to get topskip right on balanced page at end of article.
+
+\def\Bpage at sofar{
+\unvbox\partialpage
+%% major kludge! but it works ==>>
+\null
+\vskip-\topskip
+\vskip-12pt
+%% <<==
+   \process at cols\z@{\wd\count@\hsize}%
+   \hbox to\textwidth{%
+     \process at cols\tw@{\box\count@
+       \hss\vrule\@width\columnseprule\hss}%
+     \box\z@}}
+
+%%% AH: Version for two column output. %% 
+\def\page at sofar{\unvbox\partialpage
+\wd\firstcolbox\hsize
+\wd\secondcolbox\hsize
+\hbox to\textwidth{%
+\box\firstcolbox
+   \hss\vrule\@width\columnseprule\hss
+\box\secondcolbox}%%
+}
+
+
+%% Variant on \@outputpage to use for floating page insert:
+\def\insertpage{\begingroup\catcode`\ =10 
+     \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii
+     \if at twoside 
+       \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot
+            \let\@themargin\oddsidemargin
+          \else \let\@thehead\@evenhead
+          \let\@thefoot\@evenfoot \let\@themargin\evensidemargin
+     \fi\fi
+     \shipout
+     \vbox{\normalsize \baselineskip\z@ \lineskip\z@ 
+           \let\par\@@par %% 
+           \vskip \topmargin \moveright\@themargin
+           \vbox{\setbox\@tempboxa
+                   \vbox to\headheight{\vfil \hbox to\textwidth
+                                       {\let\label\@gobble \let\index\@gobble
+                                         \@thehead}} %% 
+                 \dp\@tempboxa\z@
+                 \box\@tempboxa
+                 \vskip \headsep
+%% change from \@outputpage below
+\vbox to\textheight{\vfil 
+\hsize=\textwidth
+\linewidth=\textwidth
+\csname pagefloat\the\pageloopnum \endcsname
+}
+                 \baselineskip\footskip
+                 \hbox to\textwidth{\let\label\@gobble 
+                           \let\index\@gobble  %% 
+                           \@thefoot}}}\global\@colht\textheight
+           \endgroup\stepcounter{page}\let\firstmark\botmark
+\global\advance\pageloopnum by1
+\expandafter\ifx\csname pagefloat\the\pageloopnum\endcsname\relax\else%
+\insertpage\fi%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\balance at columns{% can't throw in figs here because we
+                % aren't doing eject, so they will be lost
+\ifdim\ht\dbltopins>1pt 
+  \advance\@colroom-\ht\dbltopins
+  \advance\@colroom-\dp\dbltopins
+\advance\@colroom-\baselineskip
+\fi
+\ifdim\ht\dblbotins>1pt 
+ \advance\@colroom-\ht\dblbotins
+  \advance\@colroom-\dp\dblbotins
+\fi
+  \setbox\z@\vbox{\unvbox\@cclv}
+\dimen@\ht\z@
+%\advance\dimen@\dp\z@
+\advance\dimen@ 2\topskip
+   \advance\dimen at -2\baselineskip %% ?? was 2\baselineskip, 4 gives better
+                                  %topskip
+   \divide\dimen at 2%
+%
+{\vbadness\@M 
+   \splittopskip=\topskip
+   \loop{\process at cols\@ne{\global\setbox\count@
+                             \box\voidb at x}}%
+     \global\setbox\@ne\copy\z@
+   {\process at cols\thr@@{\global\setbox\count@
+                     \vsplit\@ne to\dimen@}}%
+    \ifdim\ht\@ne >\ht\thr@@
+    \global\advance\dimen@\p@
+    \repeat}
+%
+   \dimen@\ht\thr@@
+   \process at cols\z@{\@tempcnta\count@
+        \advance\@tempcnta\@ne
+        \setbox\count@\vtop to\dimen@ %% 
+           {\unvbox\@tempcnta}}%
+   \global\vsize\@colroom
+   \global\advance\vsize\ht\partialpage
+   \Bpage at sofar}
+
+\@ifundefined{emergencystretch}
+     {\newdimen\emergencystretch}{}
+
+\emergencystretch 1pt
+
+\def\setemergencystretch#1#2{%
+   \emergencystretch 4pt
+   \multiply\emergencystretch#1}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Figure and table captions in two column text and spanning both
+%%% columns.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Single column inserts: 
+
+\let\savecaption\caption
+\let\xsavecaption\savecaption
+
+\def\onecolfig{\ifvmode\else\unskip\fi
+\global\captypefigtrue
+\global\captypeplatefalse
+\@ifnextchar[\lookforposition{\lookforposition[e]}}
+
+\def\onecolplate{\ifvmode\else\unskip\fi
+\global\advance\c at plate -1\relax
+\global\captypeplatetrue
+\global\captypefigfalse
+\@ifnextchar[\lookforposition{\lookforposition[e]}}
+
+\def\onecoltable{\ifvmode\else\unskip\vskip1pt\fi\tabletextsize
+\global\captypefigfalse
+\global\captypeplatefalse
+\@ifnextchar[\lookforposition{\lookforposition[e]}}
+
+%% This is used in case we get more than one letter, i.e., 
+%% \begin{figure}[htp]. This macro picks up only the first letter.
+
+\def\defone#1#2*{\def\one{#1}}
+
+\newcount\figandtabnumber
+\newbox\figandtabbox
+\newif\ifcaptypefig
+\newif\ifcaptypeplate
+
+\long\def\catchcaption#1{%
+\ifcaptypefig%
+\expandafter\gdef\csname caption\the\figandtabnumber\endcsname{%
+\def\@captype{figure}\savecaption{#1}}%
+\else%
+\ifcaptypeplate
+\expandafter\gdef\csname caption\the\figandtabnumber\endcsname{%
+\def\@captype{plate}\savecaption{#1}}%
+\else
+\expandafter\gdef\csname caption\the\figandtabnumber\endcsname{%
+\def\@captype{table}\savecaption{#1}}%
+\fi\fi}
+
+\long\def\dblcatchcaption#1{%
+\ifcaptypefig%
+\expandafter\gdef\csname dblcaption\the\dblfigandtabnumber\endcsname{%
+\def\@captype{figure}\savecaption{#1}}%
+\else%
+\ifcaptypeplate
+\expandafter\gdef\csname dblcaption\the\dblfigandtabnumber\endcsname{%
+\def\@captype{plate}\savecaption{#1}}%
+\else
+\expandafter\gdef\csname dblcaption\the\dblfigandtabnumber\endcsname{%
+\def\@captype{table}\savecaption{#1}}%
+\fi\fi}
+
+\long\def\pcatchcaption#1{%
+\ifcaptypefig%
+\expandafter\gdef\csname pcaption\the\pagefloatnumber\endcsname{%
+\def\@captype{figure}\savecaption{#1}}%
+\else%
+\ifcaptypeplate
+\expandafter\gdef\csname pcaption\the\pagefloatnumber\endcsname{%
+\def\@captype{plate}\savecaption{#1}}%
+\else
+\expandafter\gdef\csname pcaption\the\pagefloatnumber\endcsname{%
+\def\@captype{table}\savecaption{#1}}%
+\fi\fi}
+%%%
+
+\long\def\catchletteredcaption#1#2{%
+\ifcaptypefig%
+\expandafter\gdef\csname letteredcaption\the\figandtabnumber\endcsname{%
+\def\@captype{figure}\letteredcaption{#1}{#2}}%
+\else%
+\ifcaptypeplate
+\expandafter\gdef\csname letteredcaption\the\figandtabnumber\endcsname{%
+\def\@captype{plate}\letteredcaption{#1}{#2}}%
+\else
+\expandafter\gdef\csname letteredcaption\the\figandtabnumber\endcsname{%
+\def\@captype{table}\letteredcaption{#1}{#2}}%
+\fi\fi}
+
+
+\long\def\dblcatchletteredcaption#1#2{%
+\ifcaptypefig%
+\expandafter\gdef\csname dblletteredcaption\the\dblfigandtabnumber\endcsname{%
+\def\@captype{figure}%
+\letteredcaption{#1}{#2}}%
+\else%
+\ifcaptypeplate
+\expandafter\gdef\csname dblletteredcaption\the\dblfigandtabnumber\endcsname{%
+\def\@captype{plate}%
+\letteredcaption{#1}{#2}}%
+\else
+\expandafter\gdef\csname dblletteredcaption\the\dblfigandtabnumber\endcsname{%
+\def\@captype{table}%
+\letteredcaption{#1}{#2}}%
+\fi\fi}
+
+\long\def\pcatchletteredcaption#1#2{%
+\ifcaptypefig%
+\expandafter\gdef\csname pletteredcaption\the\pagefloatnumber\endcsname{%
+\def\@captype{figure}%
+\letteredcaption{#1}{#2}}%
+\else%
+\ifcaptypeplate%
+\expandafter\gdef\csname pletteredcaption\the\pagefloatnumber\endcsname{%
+\def\@captype{plate}%
+\letteredcaption{#1}{#2}}%
+\else
+\expandafter\gdef\csname pletteredcaption\the\pagefloatnumber\endcsname{%
+\def\@captype{table}%
+\letteredcaption{#1}{#2}}%
+\fi\fi}
+
+%%%
+\long\def\catchcontinuedcaption{%
+\ifcaptypefig%
+\expandafter\gdef\csname continuedcaption\the\figandtabnumber\endcsname{%
+\def\@captype{figure}\continuedcaption}%
+\else%
+\ifcaptypeplate
+\expandafter\gdef\csname continuedcaption\the\figandtabnumber\endcsname{%
+\def\@captype{plate}\continuedcaption}%
+\else
+\expandafter\gdef\csname continuedcaption\the\figandtabnumber\endcsname{%
+\def\@captype{table}\continuedcaption}%
+\fi\fi}
+
+\long\def\dblcatchcontinuedcaption{%
+\ifcaptypefig%
+\expandafter\gdef\csname dblcontinuedcaption\the\dblfigandtabnumber\endcsname{%
+\def\@captype{figure}\continuedcaption}%
+\else%
+\ifcaptypeplate
+\expandafter\gdef\csname dblcontinuedcaption\the\dblfigandtabnumber\endcsname{%
+\def\@captype{plate}\continuedcaption}%
+\else
+\expandafter\gdef\csname dblcontinuedcaption\the\dblfigandtabnumber\endcsname{%
+\def\@captype{table}\continuedcaption}%
+\fi\fi}
+
+\long\def\pcatchcontinuedcaption{%
+\ifcaptypefig%
+\expandafter\gdef\csname pcontinuedcaption\the\pagefloatnumber\endcsname{%
+\def\@captype{figure}\continuedcaption}%
+\else%
+\ifcaptypeplate
+\expandafter\gdef\csname pcontinuedcaption\the\pagefloatnumber\endcsname{%
+\def\@captype{plate}\continuedcaption}%
+\else
+\expandafter\gdef\csname pcontinuedcaption\the\pagefloatnumber\endcsname{%
+\def\@captype{table}\continuedcaption}%
+\fi\fi}
+
+%%%
+\long\def\catchletteredcontinuedcaption#1{%
+\ifcaptypefig%
+\expandafter\gdef\csname letteredcontcaption\the\figandtabnumber\endcsname{%
+\def\@captype{figure}\letteredcontinuedcaption{#1}}%
+\else%
+\ifcaptypeplate%
+\expandafter\gdef\csname letteredcontcaption\the\figandtabnumber\endcsname{%
+\def\@captype{plate}\letteredcontinuedcaption{#1}}%
+\else
+\expandafter\gdef\csname letteredcontcaption\the\figandtabnumber\endcsname{%
+\def\@captype{table}\letteredcontinuedcaption{#1}}%
+\fi\fi}
+
+
+\long\def\dblcatchletteredcontinuedcaption#1{%
+\ifcaptypefig%
+\expandafter%
+\gdef\csname dblletteredcontcaption\the\dblfigandtabnumber\endcsname{%
+\def\@captype{figure}\letteredcontinuedcaption{#1}}%
+\else%
+\ifcaptypeplate
+\expandafter%
+\gdef\csname dblletteredcontcaption\the\dblfigandtabnumber\endcsname{%
+\def\@captype{plate}\letteredcontinuedcaption{#1}}%
+\else
+\expandafter%
+\gdef\csname dblletteredcontcaption\the\dblfigandtabnumber\endcsname{%
+\def\@captype{table}\letteredcontinuedcaption{#1}}%
+\fi\fi}
+
+\long\def\pcatchletteredcontinuedcaption#1{%
+\ifcaptypefig%
+\expandafter%
+\gdef\csname pletteredcontcaption\the\pagefloatnumber\endcsname{%
+\def\@captype{figure}\letteredcontinuedcaption{#1}}%
+\else%
+\ifcaptypeplate%
+\expandafter%
+\gdef\csname pletteredcontcaption\the\pagefloatnumber\endcsname{%
+\def\@captype{plate}\letteredcontinuedcaption{#1}}%
+\else
+\expandafter%
+\gdef\csname pletteredcontcaption\the\pagefloatnumber\endcsname{%
+\def\@captype{table}\letteredcontinuedcaption{#1}}%
+\fi\fi}
+
+%%%
+
+
+\newcount\pagefloatnumber
+
+\let\savelabel\label
+\def\catchlabel#1{%
+\expandafter\gdef\csname label\the\figandtabnumber\endcsname{\savelabel{#1}}}
+
+\def\pcatchlabel#1{%
+\expandafter\gdef\csname plabel\the\pagefloatnumber\endcsname{\savelabel{#1}}}
+
+\def\dblcatchlabel#1{\expandafter%
+\gdef\csname dbllabel\the\dblfigandtabnumber\endcsname{\savelabel{#1}}}
+
+%%  
+
+\def\startonecolfloat{%
+\expandafter\newbox\csname figandtabbox\the\figandtabnumber\endcsname%
+\global\setbox\csname figandtabbox\the\figandtabnumber\endcsname=
+\vbox\bgroup%  
+\ifcaptypefig\else
+\ifcaptypeplate\def\@captype{plate}
+\else
+\def\@captype{table}\centering\tabletextsize\fi\fi%
+\let\continuedcaption\catchcontinuedcaption
+\let\letteredcaption\catchletteredcaption
+\let\letteredcontinuedcaption\catchletteredcontinuedcaption
+\let\caption\catchcaption
+\let\label\catchlabel}
+
+\def\xtopfloat{topfloat}
+\def\xbotfloat{botfloat}
+
+\newif\ifredefining
+
+                  
+\newbox\sizeoffloat
+
+\def\endonecolfloat{%
+%\ifcaptypefig\else%
+%\ifnobottomtabline\global\nobottomtablinefalse\vskip-6.5pt\else
+%\vskip2pt
+%\thetablelines\fi\fi%
+%
+\egroup%
+\DonormalEndcol%
+%% make room in column for this insert:
+\setbox\sizeoffloat=\vbox{\let\unvbox\copy
+\let\c at table\bogus
+\let\c at figure\bogus
+\redefiningfalse \loopnum=\figandtabnumber
+\expandafter\csname \toporbotfloat\the\figandtabnumber\endcsname}%
+%%
+\expandafter\xdef\csname totalht\the\figandtabnumber\endcsname{%
+\the\ht\sizeoffloat}% <=== use before \sizeoffloat is unboxed
+\global\advance\figandtabnumber by1\relax}
+
+\newcount\bogus
+\def\DonormalEndcol{%
+%% top float ==>
+\ifx\toporbotfloat\xtopfloat%
+%% figure ==>
+  \ifcaptypefig%
+  \expandafter\gdef\csname topfloat\the\figandtabnumber\endcsname{%
+  \vbox{\vskip\PushOneColTopFig%
+  \unvbox\csname figandtabbox\the\loopnum\endcsname%
+  \vskip\abovefigcaptionskip%
+  \csname caption\the\loopnum\endcsname%
+  \csname letteredcaption\the\loopnum\endcsname%
+  \csname continuedcaption\the\loopnum\endcsname%
+  \csname letteredcontcaption\the\loopnum\endcsname}%
+  \vskip\intextfloatskip%% 
+  \vskip-4pt %% probably an artifact of topskip??
+  \ifredefining%
+  \csname label\the\loopnum\endcsname%
+  \expandafter\gdef\csname topfloat\the\loopnum\endcsname{}\fi}%
+\else%
+%% plate ==>
+  \ifcaptypeplate%
+  \expandafter\gdef\csname topfloat\the\figandtabnumber\endcsname{%
+  \vbox{\vskip\PushOneColTopFig%
+  \unvbox\csname figandtabbox\the\loopnum\endcsname
+  \vskip\abovefigcaptionskip
+  \csname caption\the\loopnum\endcsname
+  \csname letteredcaption\the\loopnum\endcsname
+  \csname continuedcaption\the\loopnum\endcsname
+  \csname letteredcontcaption\the\loopnum\endcsname}
+  \vskip\intextfloatskip %% 
+  \vskip-4pt %% probably an artifact of topskip??
+  \ifredefining
+  \csname label\the\loopnum\endcsname
+  \expandafter\gdef\csname topfloat\the\loopnum\endcsname{}\fi}%
+%
+\else% table ==>
+ \expandafter\gdef\csname topfloat\the\figandtabnumber\endcsname{%
+ \vbox{\vskip\PushOneColTopTab %%
+ \csname caption\the\loopnum\endcsname
+  \csname letteredcaption\the\loopnum\endcsname
+  \csname continuedcaption\the\loopnum\endcsname
+  \csname letteredcontcaption\the\loopnum\endcsname
+  \vskip\captionskip
+  \unvbox\csname figandtabbox\the\loopnum\endcsname
+}\vskip\intextfloatskip %% why don't we need this?
+\vskip-10pt
+\ifredefining
+\csname label\the\loopnum\endcsname
+\expandafter\gdef\csname topfloat\the\loopnum\endcsname{}\fi}
+\fi\fi%
+%
+\else% bottom float
+%
+\ifcaptypefig
+\expandafter\gdef\csname botfloat\the\figandtabnumber\endcsname{%
+\vskip\intextfloatskip
+\vbox{\unvbox\csname figandtabbox\the\loopnum\endcsname
+\vskip\abovefigcaptionskip
+  \csname caption\the\loopnum\endcsname
+  \csname letteredcaption\the\loopnum\endcsname%
+  \csname continuedcaption\the\loopnum\endcsname%
+  \csname letteredcontcaption\the\loopnum\endcsname%
+\vskip\PushOneColBotFig%%
+}%
+\ifredefining%
+%\xdef\@currentlabel{\thefigure}%
+\csname label\the\loopnum\endcsname
+\expandafter\gdef\csname botfloat\the\loopnum\endcsname{}\fi}%
+\else
+\ifcaptypeplate
+\expandafter\gdef\csname botfloat\the\figandtabnumber\endcsname{%
+\vskip\intextfloatskip
+\vbox{\unvbox\csname figandtabbox\the\loopnum\endcsname
+\vskip\abovefigcaptionskip
+  \csname caption\the\loopnum\endcsname
+  \csname letteredcaption\the\loopnum\endcsname%
+  \csname continuedcaption\the\loopnum\endcsname%
+  \csname letteredcontcaption\the\loopnum\endcsname%
+\vskip\PushOneColBotFig%%
+}%
+\ifredefining%
+%\xdef\@currentlabel{\thefigure}%
+\csname label\the\loopnum\endcsname
+\expandafter\gdef\csname botfloat\the\loopnum\endcsname{}\fi}%
+  \else% TABLE
+\expandafter\gdef\csname botfloat\the\figandtabnumber\endcsname{%
+  \vskip\intextfloatskip
+\vbox{\csname caption\the\loopnum\endcsname
+  \csname letteredcaption\the\loopnum\endcsname
+  \csname continuedcaption\the\loopnum\endcsname
+  \csname letteredcontcaption\the\loopnum\endcsname%
+  \vskip.5\intextfloatskip
+  \unvbox\csname figandtabbox\the\loopnum\endcsname%
+\vskip\PushOneColBotTab
+}% 
+\ifredefining%
+\csname label\the\loopnum\endcsname
+\expandafter\gdef\csname botfloat\the\loopnum\endcsname{}\fi}%
+\fi\fi\fi}
+
+%
+\def\startpagefloat{%
+\expandafter\newbox\csname pagebox\the\pagefloatnumber\endcsname%
+\global\setbox\csname pagebox\the\pagefloatnumber\endcsname=\vbox\bgroup%
+\hsize=\textwidth%
+\linewidth=\textwidth%
+\captionwidth=\widecaptionwidth
+\let\label\pcatchlabel\ifcaptypefig\else\centering\fi%
+\let\caption\pcatchcaption \let\letteredcaption\pcatchletteredcaption
+\let\continuedcaption\pcatchcontinuedcaption
+\let\letteredcontinuedcaption\pcatchletteredcontinuedcaption
+}
+
+\def\endpagefloat{\egroup
+\DoNormalPage
+\global\advance\pagefloatnumber by1
+}
+
+\def\DoNormalPage{\ifcaptypefig
+%
+\expandafter\gdef\csname pagefloat\the\pagefloatnumber\endcsname{%
+\vbox{\hsize=\textwidth
+\linewidth=\textwidth
+\twocolfigortabtrue
+\captionwidth=\widecaptionwidth
+\unvbox\csname pagebox\the\pageloopnum\endcsname
+  \vskip\captionskip
+  \csname pcaption\the\pageloopnum\endcsname
+  \csname pletteredcaption\the\pageloopnum\endcsname
+  \csname pcontinuedcaption\the\pageloopnum\endcsname
+  \csname pletteredcontcaption\the\pageloopnum\endcsname
+}  \vskip\intextfloatskip %% 
+\xdef\@currentlabel{\thefigure}%
+  \csname plabel\the\pageloopnum\endcsname
+\expandafter\gdef\csname pagefloat\the\pageloopnum\endcsname{}}%
+\else
+\ifcaptypeplate
+\expandafter\gdef\csname pagefloat\the\pagefloatnumber\endcsname{%
+\vbox{\hsize=\textwidth
+\linewidth=\textwidth
+\twocolfigortabtrue
+\captionwidth=\widecaptionwidth
+\unvbox\csname pagebox\the\pageloopnum\endcsname
+  \vskip\captionskip
+  \csname pcaption\the\pageloopnum\endcsname
+  \csname pletteredcaption\the\pageloopnum\endcsname
+  \csname pcontinuedcaption\the\pageloopnum\endcsname
+  \csname pletteredcontcaption\the\pageloopnum\endcsname
+}  \vskip\intextfloatskip %% 
+\xdef\@currentlabel{\thefigure}%
+  \csname plabel\the\pageloopnum\endcsname
+\expandafter\gdef\csname pagefloat\the\pageloopnum\endcsname{}}%
+\else
+\expandafter\gdef\csname pagefloat\the\pagefloatnumber\endcsname{%
+\vbox{%%
+\hsize=\textwidth
+\linewidth=\textwidth
+\iflandscapetable
+\dimen0=\textheight
+\advance\dimen0 by-\textwidth 
+\hsize=\textheight
+\linewidth=\textheight\fi%
+\csname pcaption\the\pageloopnum\endcsname
+\csname pletteredcaption\the\pageloopnum\endcsname
+\csname pcontinuedcaption\the\pageloopnum\endcsname
+\csname pletteredcontcaption\the\pageloopnum\endcsname
+  \vskip\intextfloatskip
+  \unvbox\csname pagebox\the\pageloopnum\endcsname}
+  \vskip\intextfloatskip %% 
+\csname plabel\the\pageloopnum\endcsname
+\expandafter\gdef\csname pagefloat\the\pageloopnum\endcsname{}}\fi\fi}
+
+\newif\iffirstfighere
+\global\firstfigheretrue
+
+\newif\iffirsttabhere
+\global\firsttabheretrue
+
+\def\dofigmessage{\iffirstfighere\global\firstfigherefalse
+\typeout{^^J
+========================================================================
+^^J
+C A R E F U L !!!!!^^J
+^^J
+You have used \string\begin{figure}[h]\space !^^J
+If there are any figures that appear earlier on the page^^J
+they may be numbered incorrectly.^^J
+^^J
+Please check this and every other page on which you have used ^^J
+\string\begin{figure}[h]\space !^^J
+^^J
+========================================================================
+^^J}
+\else
+\typeout{^^J^^J
+C A R E F U L !! \string\begin{figure}[h] used on this page !^^J^^J}
+\fi}
+
+\def\dotabmessage{\iffirsttabhere\global\firsttabherefalse
+\typeout{^^J
+========================================================================
+^^J
+C A R E F U L !!!!!^^J
+^^J
+You have used \string\begin{table}[h]\space !^^J
+If there are any tables that appear earlier on the page^^J
+they may be numbered incorrectly.^^J
+^^J
+Please check this and every other page on which you have used ^^J
+\string\begin{table}[h]\space !^^J
+^^J
+========================================================================
+^^J}
+\else
+\typeout{^^J^^J
+C A R E F U L !! \string\begin{table}[h] used on this page !^^J^^J}
+\fi}
+
+\def\lookforposition[#1]{\defone#1*%
+\let\go\startonecolfloat
+\let\endtable\endonecolfloat
+\let\endfigure\endonecolfloat
+\let\endplate\endonecolfloat
+\ifgalley
+\if\one p \def\one{s}
+\else
+\def\one{i}\fi
+%\else\ifappendon\def\one{h}\fi
+\fi%
+\ifjdraft
+\expandafter\ifx\csname setkeys\endcsname\relax\else
+\setkeys{Gin}{draft=false}\fi
+\if\one p \def\one{s}
+\else
+\def\one{i}\fi
+\else%\ifappendon\def\one{h}\fi
+\fi%
+\if\one h 
+\ifcaptypeplate\else
+\ifcaptypefig
+\dofigmessage
+\else
+\dotabmessage
+\fi\fi%
+\let\go\doonecolfighere
+\let\endtable\endonecolfighere
+\let\endfigure\endonecolfighere
+\let\endplate\endonecolfighere
+\else%
+\if\one t%
+    \gdef\toporbotfloat{topfloat}%
+\else%
+\if\one b%
+    \gdef\toporbotfloat{botfloat}%
+\else%
+\if\one p%
+\let\go\startpagefloat%
+\let\endtable\endpagefloat%
+\let\endfigure\endpagefloat%
+\let\endplate\endpagefloat%
+\else%
+\if\one e% for either
+   \ifdim\pagetotal>.6\pagegoal%
+    \gdef\toporbotfloat{botfloat}%
+    \else%
+    \gdef\toporbotfloat{topfloat}%
+    \fi%
+\else%
+\if\one i% for galley mode
+\let\go\dofiginsert%
+\let\endtable\endfiginsert%
+\let\endfigure\endfiginsert%
+\let\endplate\endfiginsert%
+\else%
+\if\one s% for special galley mode, for [p]
+\let\go\dodblfiginsert%
+\let\endtable\endspfiginsert%
+\let\endfigure\endspfiginsert%
+\let\endplate\endspfiginsert%
+\else%
+    \doerr%
+    \ifdim\pagetotal>.5\pagegoal%
+    \gdef\toporbotfloat{botfloat}%
+    \else%
+    \gdef\toporbotfloat{topfloat}%
+    \fi%
+\fi\fi\fi\fi\fi\fi\fi\go}
+
+\newinsert\figinsert
+\skip\figinsert=0pt % space added when figinsert is used
+\count\figinsert=0 % insert magnification factor (1 to 1)
+\dimen\figinsert=\maxdimen % maximum space for figures
+
+\def\dofiginsert{\setbox0=\vbox\bgroup
+\ifcaptypefig\def\@captype{figure}\else
+\ifcaptypeplate\def\@captype{plate}\else
+\def\@captype{table}\centering\tabletextsize\fi\fi}
+\def\endfiginsert{\egroup\insert\figinsert{\vskip24pt\vbox{\unvbox0}\vskip24pt}%
+\ignorespaces}
+
+\def\endspfiginsert{\egroup\insert\figinsert{\newpage\vbox to\textheight{\vss
+\unvbox0}\newpage}%
+\ignorespaces}
+
+\def\dodblfiginsert{\setbox0=\vbox\bgroup
+\captionwidth=\widecaptionwidth
+\hsize=\textwidth
+\linewidth=\textwidth
+\ifcaptypefig\def\@captype{figure}\else
+\ifcaptypeplate\def\@captype{plate}\else
+\def\@captype{table}\centering\fi\fi
+}
+
+\def\enddblfiginsert{\egroup\insert\figinsert{\vskip24pt\vbox{\unvbox0}\vskip24pt}}
+
+\long\def\saveherecaption#1{\gdef\thesavedcaption{\savecaption{#1}}}
+
+\long\def\saveherecontinuedcaption{\gdef\thesavedcaption{\continuedcaption}}
+
+\long\def\savehereletteredcaption#1#2{\gdef\thesavedcaption{%
+\gdef\theletter{#1}\savecaption{#2}}}
+
+\long\def\savehereletteredcontinuedcaption#1{\gdef\thesavedcaption{%
+\letteredcontinuedcaption{#1}}}
+
+\long\def\saveherelabel#1{\gdef\thesavedlabel{#1}}
+\saveherelabel{\relax}
+
+\def\thesavedcaption{\relax}
+
+\newbox\herebox
+%% either figure [h] or table [h] 
+\newif\ifhere
+\def\doonecolfighere{\vskip1sp\bgroup%
+\heretrue%
+\ifcaptypefig\def\@captype{figure}\else%
+\ifcaptypeplate\def\@captype{plate}\else%
+\def\@captype{table}\centering\fi\fi%
+\setbox\herebox\vbox\bgroup%
+\let\label\saveherelabel%
+\let\caption\saveherecaption%
+\let\letteredcaption\savehereletteredcaption%
+\let\continuedcaption\saveherecontinuedcaption%
+\let\letteredcontinuedcaption\savehereletteredcontinuedcaption%
+}
+
+\def\xrelax{\relax}
+
+\def\endonecolfighere{%
+\egroup%
+\vskip\intextfloatskip%
+\vtop{\vskip-5.5pt
+%\ifappendon
+%\let\thefigure\appthefigure
+%\let\thetable\appthetable
+%\let\theplate\apptheplate
+%\let\savecaption\appcaption
+%\fi
+%
+\ifx\thesavedcaption\xrelax
+  \unvbox\herebox
+\else
+  \ifcaptypefig
+  \unvbox\herebox
+  \thesavedcaption
+\else
+  \ifcaptypeplate
+  \unvbox\herebox
+  \thesavedcaption
+%
+  \else
+%
+  \thesavedcaption
+  \unvbox\herebox
+  \fi
+\fi\fi
+%
+\gdef\thesavedcaption{\relax}
+\ifx\thesavedlabel\xrelax\else%
+   \ifcaptypefig\else\edef\@currentlabel{\thetable}\fi
+  \savelabel{\thesavedlabel}
+  \gdef\thesavedlabel{\relax}
+\fi
+\gdef\theletter{\relax}
+}\vskip1sp
+\egroup
+\vskip\intextfloatskip
+}
+
+\newbox\endfigbox
+
+\def\doerr{%
+\typeout{\space\space\space\space\space\space\space\space\space}
+\typeout{Sorry! 
+Your choices following \string\figure\space or \string\table\space^^J%
+are only [h] for `here', [t] for `top', [b] for `bottom', or [p] 
+for `page'.^^J%
+I have ignored the [\one] and inserted the figure or table at this
+point^^J%
+on the page. See documentation if you need more help.}
+\typeout{\space\space\space\space\space\space\space\space\space}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Inserts spanning both columns:
+
+\newbox\spanbox
+
+\def\centertabular{\bgroup\centering\savetabular}
+\def\endcentertabular{\saveendtabular\vskip1pt\egroup}
+
+%%% 
+
+\newbox\dbltopins
+\newbox\dblbotins
+
+\newskip\dblbotskip
+\dblbotskip=12pt plus 3pt
+
+\def\twocolfig{\global\captypefigtrue
+\global\captypeplatefalse
+\def\@captype{figure}
+\@ifnextchar[\twolookforposition{\twolookforposition[t]}}%
+
+\def\twocolplate{\global\captypeplatetrue
+\global\captypefigfalse
+\def\@captype{plate}
+\@ifnextchar[\twolookforposition{\twolookforposition[t]}}%
+                                                        
+\def\twocoltable{\vskip1pt\tabletextsize
+\global\captypefigfalse
+\global\captypeplatefalse
+\def\@captype{table}
+\@ifnextchar[\twolookforposition{\twolookforposition[t]}}% 
+
+\newcount\dblfigandtabnumber
+\dblfigandtabnumber=1
+\newbox\dblfigandtabbox
+
+\def\starttwocolfloat{\ifvmode\else\unskip\fi\expandafter%
+  \ifx\csname dblfigandtabbox\the\dblfigandtabnumber\endcsname\relax%
+  \expandafter%
+  \newbox\csname dblfigandtabbox\the\dblfigandtabnumber\endcsname%
+  \fi%
+\global\setbox\csname dblfigandtabbox\the\dblfigandtabnumber\endcsname=
+\vbox\bgroup\let\label\dblcatchlabel%
+%
+  \ifcaptypefig\def\@captype{figure}\else%
+    \ifcaptypeplate\def\@captype{plate}\else%
+    \def\@captype{table}\centering\tabletextsize%
+    \fi%
+  \fi%
+\captionwidth=\widecaptionwidth
+\hsize=\textwidth
+\linewidth=\textwidth\relax
+%
+\let\caption\dblcatchcaption
+\let\letteredcaption\dblcatchletteredcaption
+\let\continuedcaption\dblcatchcontinuedcaption
+\let\letteredcontinuedcaption\dblcatchletteredcontinuedcaption
+\let\label\dblcatchlabel
+}
+
+\newcount\dblloopnum
+\newcount\savedblfigandtabnumber
+%\newcount\savefigandtabnumber
+
+\def\xdbltopfloat{dbltopfloat}
+\def\xdblbotfloat{dblbotfloat}
+
+\def\endtwocolfloat{%
+%\ifcaptypefig\else%
+%\ifcaptypeplate\else%
+%\ifnobottomtabline\global\nobottomtablinefalse\vskip-6.5pt\else%
+%\vskip2pt
+%\thetablelines\fi\fi\fi%
+%
+\egroup%
+\ifx\dbltoporbotfloat\xdbltopfloat%
+%%++
+\ifcaptypefig%
+\expandafter\gdef\csname dbltopfloat\the\dblfigandtabnumber\endcsname{%
+\vbox{\vskip\PushTwoColTopFig%
+\copy\csname dblfigandtabbox\the\dblloopnum\endcsname%
+  \vskip\captionskip%
+  \csname dblcaption\the\dblloopnum\endcsname%
+  \csname dblletteredcaption\the\dblloopnum\endcsname%
+  \csname dblcontinuedcaption\the\dblloopnum\endcsname%
+  \csname dblletteredcontcaption\the\dblloopnum\endcsname%
+\ifredefining%
+\xdef\@currentlabel{\thefigure}%
+\csname dbllabel\the\dblloopnum\endcsname\fi}%
+  \vskip\intextfloatskip %% 
+  \vskip-5pt% because there is a space above the top of text, from topskip?
+\ifredefining%
+\expandafter\gdef\csname dbltopfloat\the\dblloopnum\endcsname{}\fi}%
+\else\ifcaptypeplate%
+\expandafter\gdef\csname dbltopfloat\the\dblfigandtabnumber\endcsname{%
+\vbox{\vskip\PushTwoColTopFig%
+\copy\csname dblfigandtabbox\the\dblloopnum\endcsname%
+  \vskip\captionskip%
+  \csname dblcaption\the\dblloopnum\endcsname%
+  \csname dblletteredcaption\the\dblloopnum\endcsname%
+  \csname dblcontinuedcaption\the\dblloopnum\endcsname%
+  \csname dblletteredcontcaption\the\dblloopnum\endcsname%
+\ifredefining%
+\xdef\@currentlabel{\theplate}%
+\csname dbllabel\the\dblloopnum\endcsname\fi}%
+  \vskip\intextfloatskip %% 
+  \vskip-5pt% because there is a space above the top of text, from topskip?
+\ifredefining%
+\expandafter\gdef\csname dbltopfloat\the\dblloopnum\endcsname{}\fi}%
+\else% table
+\expandafter\gdef\csname dbltopfloat\the\dblfigandtabnumber\endcsname{%
+\vbox{\vskip\PushTwoColTopTab%
+  \csname dblcaption\the\dblloopnum\endcsname%
+  \csname dblletteredcaption\the\dblloopnum\endcsname%
+  \csname dblcontinuedcaption\the\dblloopnum\endcsname%
+  \csname dblletteredcontcaption\the\dblloopnum\endcsname%
+  \vskip\captionskip%
+  \copy\csname dblfigandtabbox\the\dblloopnum\endcsname}%
+  \vskip\intextfloatskip %% 
+  \vskip-5pt% because there is a space above the top of text, from topskip?
+\ifredefining%
+\csname dbllabel\the\dblloopnum\endcsname%
+\expandafter\gdef\csname dbltopfloat\the\dblloopnum\endcsname{}\fi}%
+%
+\fi\fi%
+%
+\else% bottom float
+%
+\ifcaptypefig%
+\expandafter\gdef\csname dblbotfloat\the\dblfigandtabnumber\endcsname{%
+  \vskip\intextfloatskip%
+\vbox{\copy\csname dblfigandtabbox\the\dblloopnum\endcsname%
+  \vskip\captionskip%
+  \csname dblcaption\the\dblloopnum\endcsname%
+  \csname dblletteredcaption\the\dblloopnum\endcsname%
+  \csname dblcontinuedcaption\the\dblloopnum\endcsname%
+  \csname dblletteredcontcaption\the\dblloopnum\endcsname%
+\ifredefining%
+\csname dbllabel\the\dblloopnum\endcsname\fi%
+\vskip\PushTwoColBotFig}%???
+ \ifredefining%
+\expandafter\gdef\csname dblbotfloat\the\dblloopnum\endcsname{}\fi}%
+\else%
+%%
+\ifcaptypeplate%
+\expandafter\gdef\csname dblbotfloat\the\dblfigandtabnumber\endcsname{%
+  \vskip\intextfloatskip%
+\vbox{\copy\csname dblfigandtabbox\the\dblloopnum\endcsname%
+  \vskip\captionskip%
+  \csname dblcaption\the\dblloopnum\endcsname%
+  \csname dblletteredcaption\the\dblloopnum\endcsname%
+  \csname dblcontinuedcaption\the\dblloopnum\endcsname%
+  \csname dblletteredcontcaption\the\dblloopnum\endcsname%
+\ifredefining%
+\csname dbllabel\the\dblloopnum\endcsname\fi%
+\vskip\PushTwoColBotFig}%
+ \ifredefining%
+\expandafter\gdef\csname dblbotfloat\the\dblloopnum\endcsname{}\fi
+}%
+\else% table
+\expandafter\gdef\csname dblbotfloat\the\dblfigandtabnumber\endcsname{%
+  \vskip\intextfloatskip
+\vbox{%  
+  \csname dblcaption\the\dblloopnum\endcsname%
+  \csname dblletteredcaption\the\dblloopnum\endcsname%
+  \csname dblcontinuedcaption\the\dblloopnum\endcsname%
+  \csname dblletteredcontcaption\the\dblloopnum\endcsname%
+  \vskip\captionskip
+\ifredefining%
+\csname dbllabel\the\dblloopnum\endcsname\fi%
+  \copy\csname dblfigandtabbox\the\dblloopnum\endcsname%
+\vskip\PushTwoColBotTab}%
+\ifredefining%
+\expandafter\gdef\csname dblbotfloat\the\dblloopnum\endcsname{}\fi}%
+%
+\fi\fi\fi%
+%%
+\global\advance\dblfigandtabnumber by1 \relax}
+
+\newbox\dblspanherebox
+
+\def\dodblfigurehere{\global\setbox\dblspanherebox=\vbox\bgroup
+\let\label\saveherelabel
+\ifcaptypefig\def\@captype{figure}\else
+\ifcaptypeplate\def\@captype{plate}\else
+\def\@captype{table}\centering\fi\fi
+\vskip\intextfloatskip
+\captionwidth=\widecaptionwidth
+\hsize=\textwidth
+\linewidth=\textwidth
+\let\label\saveherelabel
+\let\caption\saveherecaption
+\let\letteredcaption\savehereletteredcaption
+\let\continuedcaption\saveherecontinuedcaption
+\let\letteredcontinuedcaption\savehereletteredcontinuedcaption}
+
+\def\enddodblfigurehere{\vskip\intextfloatskip\egroup%
+\aftergroup\endcolsneatly}
+
+
+%%
+\def\endcolsneatly{\ifdim\lastskip=2sp
+\vskip-9.5pt\null\fi
+\endtwocolumns
+\vbox{\vskip\intextfloatskip
+\captionwidth=\widecaptionwidth
+\ifcaptypefig\def\@captype{figure}\else
+\ifcaptypeplate\def\@captype{plate}\else
+\def\@captype{table}\centering\fi\fi
+%\ifappendon
+%\let\thefigure\appthefigure
+%\let\thetable\appthetable
+%\let\theplate\apptheplate
+%\let\savecaption\appcaption
+%\fi
+%
+\ifx\thesavedcaption\xrelax
+\unvbox\dblspanherebox
+\vskip\intextfloatskip
+\else
+  \ifcaptypefig
+\unvbox\dblspanherebox
+  \thesavedcaption
+\vskip\intextfloatskip
+%
+  \else
+\ifcaptypeplate
+\unvbox\dblspanherebox
+  \thesavedcaption
+\vskip\intextfloatskip
+%
+\else
+\vskip\intextfloatskip
+  \thesavedcaption
+\unvbox\dblspanherebox
+\vskip\intextfloatskip
+  \fi
+\fi\fi
+%
+\gdef\thesavedcaption{\relax}
+\ifx\thesavedlabel\xrelax\else\savelabel{\thesavedlabel}
+\gdef\thesavedlabel{\relax}\fi
+\gdef\theletter{\relax}
+\vskip\intextfloatskip}
+\twocolumns\null
+\vskip2sp}
+
+\def\twolookforposition[#1]{\defone#1*%
+\let\go\starttwocolfloat%
+\ifgalley%
+  \if\one p \def\one{s}%
+  \else%
+  \def\one{i}%
+  \fi%
+\fi%
+\ifjdraft%
+\expandafter\ifx\csname setkeys\endcsname\relax\else
+\setkeys{Gin}{draft=false}\fi
+  \if\one p \def\one{s}%
+  \else%
+  \def\one{i}%
+  \fi%
+\fi%
+%\ifappendon\def\one{h}\fi%
+%%
+\if\one h% 
+  \ifcaptypeplate%
+  \else%
+    \ifcaptypefig%
+    \dofigmessage%
+    \else%
+    \dotabmessage%
+    \fi%
+  \fi%
+    \ifgalley%
+     \gdef\dbltoporbotfloat{dbltopfloat}%
+     \else% not galley ==> 
+     \let\go\dodblfigurehere%
+    \expandafter\gdef\csname endfigure*\endcsname{\enddodblfigurehere}%
+    \expandafter\gdef\csname endtable*\endcsname{\enddodblfigurehere}%
+    \expandafter\gdef\csname endplate*\endcsname{\enddodblfigurehere}%
+    \fi% end ifgalley
+\else%
+   \if\one t%
+   \gdef\dbltoporbotfloat{dbltopfloat}%
+   \else%
+      \if\one b%
+      \gdef\dbltoporbotfloat{dblbotfloat}%
+      \else%
+         \if\one p%
+         \let\go\startpagefloat%
+    \expandafter\gdef\csname endfigure*\endcsname{\endpagefloat}
+    \expandafter\gdef\csname endtable*\endcsname{\endpagefloat}
+    \expandafter\gdef\csname endplate*\endcsname{\endpagefloat}
+         \else%
+            \if\one i% for galley mode
+            \let\go\dodblfiginsert%
+    \expandafter\gdef\csname endfigure*\endcsname{\enddblfiginsert}
+    \expandafter\gdef\csname endtable*\endcsname{\enddblfiginsert}
+    \expandafter\gdef\csname endplate*\endcsname{\enddblfiginsert}
+            \else%
+               \if\one s% for special galley mode, for [p]
+               \let\go\dodblfiginsert%
+    \expandafter\gdef\csname endfigure*\endcsname{\endspfiginsert}%
+    \expandafter\gdef\csname endtable*\endcsname{\endspfiginsert}
+    \expandafter\gdef\csname endplate*\endcsname{\endspfiginsert}
+               \else%
+\doerr%
+              \fi%
+           \fi%
+        \fi%
+     \fi%
+   \fi%
+\fi\go}%
+
+\let\saveenddocument\enddocument
+
+\def\enddocument{%
+\ifdim\ht\dbltopins>0pt\vbox{\unvbox\dbltopins}\fi
+\ifdim\ht\dblbotins>0pt\vbox{\unvbox\dblbotins}\fi
+\ifnum\pagefloatnumber>\pageloopnum
+\newpage
+\insertpage{\hsize=\textwidth
+\linewidth=\textwidth
+\csname pagefloat\the\pageloopnum \endcsname}\fi%
+\saveenddocument}
+
+\splittopskip=\topskip
+
+\def~{\penalty\@M{ }} 
+
+\def\mathleftline{\vskip-\parskip
+\hbox to\textwidth{\hrulefill\hskip.5\textwidth}\vskip-\abovedisplayskip}
+
+\def\mathrightline{\hbox to\textwidth{\hskip.5\textwidth\hrulefill}\vskip18pt}
+
+\let\topline\mathleftline
+\let\botline\mathrightline
+
+%% End Two Column Macros
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\let\dofigmessage\relax
+\let\dotabmessage\relax
+
+%% Options:
+%% To bring in options: 
+%% \documentclass[draft]{agutex}
+%% \documentclass[galley]{agutex}
+
+\newif\ifcallouts
+\DeclareOption{galley}{\global\galleytrue\global\calloutstrue}
+
+\newif\ifdraft
+\DeclareOption{draft}{\global\jdrafttrue \global\draftfalse
+\oddsidemargin=-1in
+\evensidemargin=-1in
+\textwidth=5in
+\hsize=\textwidth
+\draft\global\calloutstrue}
+
+%%%% Journal Styles
+% jgrga JOURNAL OF GEOPHYSICAL RESEARCH
+% gbc   GLOBAL BIOCHEMICAL CYCLES
+% grl   GEOPHYSICAL RESEARCH LETTERS
+% pal   PALEOCEANOGRAPHY
+% ras   RADIO SCIENCE
+% rog   REVIEWS OF GEOPHYSICS
+% tec   TECTONICS
+% sw    SPACE WEATHER
+% gc	GEOCHEMISTRY, GEOPHYSICS, GEOSYSTEMS
+%% default style
+% jgrga JOURNAL OF GEOPHYSICAL RESEARCH
+\newif\ifjgrga
+\DeclareOption{jgrga}{\global\jgrgatrue}
+\DeclareOption{jgr}{\global\jgrgatrue}
+
+% SW SPACE WEATHER
+\newif\ifsw
+\DeclareOption{sw}{\global\swtrue}
+
+% gbc   GLOBAL BIOCHEMICAL CYCLES
+\newif\ifgbc
+\DeclareOption{gbc}{\global\gbctrue}
+
+% tec   TECTONICS
+\newif\iftec
+\DeclareOption{tec}{\global\tectrue}
+
+% wrr   WATER RESOURCE RESEARCH
+\newif\ifwrr
+\DeclareOption{wrr}{\global\wrrtrue}
+
+% grl   GEOPHYSICAL RESEARCH LETTERS
+\newif\ifgrl
+\DeclareOption{grl}{\global\grltrue}
+
+% pal   PALEOCEANOGRAPHY
+\newif\ifpal
+\DeclareOption{pal}{\global\paltrue}
+
+% ras   RADIO SCIENCE
+\newif\ifras
+\DeclareOption{ras}{\global\rastrue}
+
+% rog   REVIEWS OF GEOPHYSICS
+\newif\ifrog
+\DeclareOption{rog}{\global\rogtrue}
+
+% gc	GEOCHEMISTRY, GEOPHYSICS, GEOSYSTEMS
+\newif\ifgc
+\DeclareOption{gc}{\global\gctrue}
+
+\ifll \let\dooptions\ProcessOptions
+\else
+\let\dooptions\@options
+\fi
+\dooptions
+
+
+
+
+%%% <== end options
+
+% prevent error messages for embedded lists:
+\let\@noitemerr\relax
+
+
+
+%%% Commands to accomodate older AGU syntax
+\let\lefthead\authorrunninghead
+\let\righthead\titlerunninghead
+
+\def\paperid#1{\def\thepaperidnumber{#1}}
+
+\paperid{}
+
+\def\journalid#1{\def\jourdate{\ifras\else\uppercase{\fi#1\ifras\else}\fi}}
+\def\articleid#1#2{\def\thevolume{#1}\def\thenumber{#2}}
+
+
+\def\specialccc#1{\thecccline{#1}}
+
+\def\altaffilmark#1{\unskip\setbox1=\hbox{X}%
+\vbox to1.4\ht1{\hbox{\footnotesize #1}\vfill}}
+
+%% default
+\journalid{}{}
+\articleid{}{}
+
+\@mparswitchfalse
+%C&G For draft Option, moved callouts back onto page 
+\def\callout#1{#1\ifcallouts\marginpar{\ifgalley\hskip-\mycolumnwidth\fi%
+\ifjdraft\hskip-12pt\fi%
+\fbox{\savenormalsize\bf #1}}\fi}
+
+\def\tableline{\noalign{\vskip2pt
+\hrule \@height \arrayrulewidth 
+\vskip2pt}}
+
+%% Get commas into page number over 1000:
+\newcount\bigpagenum
+\newcount\littlepagenum
+\newcount\wholepagenum
+
+\def\PutCommaIntoNumber#1{%
+\bigpagenum=#1
+\ifnum\bigpagenum>9999
+\wholepagenum=\bigpagenum
+\divide\bigpagenum by 1000
+\littlepagenum=\bigpagenum
+\multiply \littlepagenum by 1000
+\advance\wholepagenum by -\littlepagenum
+\littlepagenum=\wholepagenum
+\number\bigpagenum,\ifnum\littlepagenum<10 00\else
+\ifnum\littlepagenum <100 0\fi\fi\number\littlepagenum\relax\else \the\bigpagenum\fi}
+
+\def\received#1{\gdef\@recvdate{#1}} \received{}
+\def\revised#1{\gdef\@revisedate{#1}} \revised{}
+\def\accepted#1{\gdef\@accptdate{#1}} \accepted{}
+%C&G 8/1/2001 newcommand \published
+\def\published#1{\gdef\@pubdate{#1}} \published{}
+
+\def\cpright#1#2{\@nameuse{cpr@#1} \gdef\cpr at year{#2}
+\typeout{`#1' copyright \cpr at year.}}
+
+\newcount\@cprtype \@cprtype=\@ne  
+\def\cpr at AGU{\@cprtype=1}
+\def\cpr at PD{\@cprtype=2}
+\def\cpr at Crown{\@cprtype=3}
+\def\cpr at none{\@cprtype=4}
+\def\cpr at year{\number\year}
+
+\def\cpr at holder{American Geophysical Union}
+
+\def\@rcvaccrule{\vrule\@width1.75in\@height0.5pt\@depth\z@}
+
+\def\slugcomment#1{\gdef\slug at comment{#1}} \slugcomment{}
+\newdimen\@slugcmmntwidth \@slugcmmntwidth \textwidth
+
+\long\def\@makeslugcmmnt{\ifx\slug at comment\@empty\relax\else
+\vskip3pt
+\noindent
+\slug at comment
+\vskip3pt\fi}
+
+%% for now:
+\let\@makeslugcmmnt\relax
+
+\def\@slug{\ifgalley\hsize=\mycolumnwidth\fi
+\@makeslugcmmnt
+\vskip11pt
+\noindent
+\ifcase\@cprtype
+   \relax
+\or
+   Copyright \cpr at year\space by the \cpr at holder.
+\or
+   This paper is not subject to U.S. copyright.
+   Published in \cpr at year\space by the \cpr at holder.
+\or
+   Published in \cpr at year\space by the \cpr at holder.
+\or
+   No copyright is claimed for this article.
+\fi
+%\vskip 11\p@\noindent Paper number \thepaperidnumber.
+\par\noindent
+\thecccline\vrule depth2pt width0pt\relax}
+
+\def\title#1{\gdef\theprinttitle{#1}\printtitle}
+
+% Alternate affiliations appearing 
+% at the end of the article:
+
+\def\altaffiltext#1#2{%
+\global\advance\totalaffils by 1
+\expandafter\xdef\csname altaffil#1\endcsname{\noindent%
+\hskip\saveparindent$^{#1}${#2}}}
+
+\def\doaltaffils{{\parindent=0pt
+\hsize=\mycolumnwidth
+\loop\ifnum\affilnum<\totalaffils
+\csname altaffil\the\affilnum\endcsname
+\vskip1pt
+\expandafter\ifx\csname altaffil\the\affilnum\endcsname\relax
+\global\advance\totalaffils by 1 \fi % in case author doesn't start
+                                     %  with \altaffiltext{1}{}
+\global\advance\affilnum by 1
+\repeat
+\expandafter\ifx\csname altaffil\the\affilnum\endcsname\relax
+\else
+\csname altaffil\the\affilnum\endcsname\fi
+\global\affilnum=0
+\global\totalaffils=0
+\vskip1sp
+}}
+\let\doaffils\doaltaffils
+
+\newcount\affilnum
+\affilnum=0
+\newcount\totalaffils 
+
+%%% to keep too big of a skip after endbibliogrphy
+
+\def\spendlist{\global\advance\@listdepth\m at ne}
+
+%%% Possibly useful abbreviations
+\let\jnl at style=\it
+\def\ref at jnl#1{{\jnl at style#1}}
+\def\aj{\ref at jnl{Astron.\ J., }}  
+\def\apj{\ref at jnl{Astrophys.\ J., }} 
+\def\apjl{\ref at jnl{Astrophys.\ J., }}
+\def\apjs{\ref at jnl{Astrophys.\ J.\ (Supp.), }}
+\def\aap{\ref at jnl{Astron.\ Astrophys., }}  
+\def\bams{\ref at jnl{Bull.\ Am.\ Meteorol.\ Soc., }}
+\def\bssa{\ref at jnl{Bull.\ Seismol.\ Soc.\ Am., }}
+\def\eos{\ref at jnl{Eos Trans.\ AGU, }}
+\def\epsl{\ref at jnl{Earth Planet.\ Sci.\ Lett., }}  
+\def\gca{\ref at jnl{Geochim.\ Cosmochim.\ Acta, }}
+\def\gjras{\ref at jnl{Geophys.\ J.\ R.\ Astron.\ Soc., }}
+\def\grl{\ref at jnl{Geophys.\ Res.\ Lett., }}  
+\def\gsab{\ref at jnl{Geol.\ Soc.\ Am.\ Bull., }}  
+\def\jatp{\ref at jnl{J.\ Atmos.\ Terr.\ Phys., }} 
+\def\jgr{\ref at jnl{J.\ Geophys.\ Res., }}
+\def\jpo{\ref at jnl{J.\ Phys.\ Oceanogr., }} 
+\def\mnras{\ref at jnl{Mon.\ Not.\ R.\ Astron.\ Soc., }}
+\def\mwr{\ref at jnl{Mon.\ Weather Rev., }}
+\def\pepi{\ref at jnl{Phys.\ Earth Planet.\ Inter., }}  
+\def\pra{\ref at jnl{Phys.\ Rev.\ A, }}
+\def\prl{\ref at jnl{Phys.\ Rev.\ Lett., }}
+\def\pasp{\ref at jnl{Publ.\ A.\ S.\ P., }}
+\def\qjrms{\ref at jnl{Q.\ J.\ R.\ Meteorol.\ Soc., }}  
+\def\rg{\ref at jnl{Rev.\ Geophys., }}  
+\def\rs{\ref at jnl{Radio Sci., }}
+\def\usgsof{\ref at jnl{U.S.\ Geol.\ Surv.\ Open File Rep., }}
+\def\usgspp{\ref at jnl{U.S.\ Geol.\ Surv.\ Prof.\ Pap., }}
+\let\astap=\aap
+\let\apjlett=\apjl
+\let\apjsupp=\apjs
+
+%%%%%%%%%%%%%%%
+
+\let\savedeg\deg
+\def\savecirc{$^\circ$}
+\def\deg{\ifmmode\savedeg\else\hbox{\unboldmath\savecirc}\fi}
+
+%%%
+\def\@citex[#1]#2{%
+  \let\@citea\@empty
+  \@cite{\@for\@citeb:=#2\do
+    {\@citea\def\@citea{,\penalty\@m\ }%
+     \edef\@citeb{\expandafter\@firstofone\@citeb}%
+     \if at filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
+     \@ifundefined{b@\@citeb}{\mbox{\reset at font\bfseries ?}%
+       \G at refundefinedtrue
+       \@latex at warning
+         {Citation `\@citeb' on page \thepage \space undefined}}%
+       {%\hbox
+{\csname b@\@citeb\endcsname}}}}{#1}}
+
+%% to make things work in old files:???
+\newcount\figcount
+\def\figurenum#1{\figcount=#1 \global\advance\figcount by -1
+\setcounter{figure}{\figcount}}
+
+%%% planotable
+%%  Declare Obsolete:
+\long\def\planotable#1\end{\message{^^J^^J
+Sorry!^^J
+\string\begin{planotable}...\string\end{planotable} are obsolete commands.^^J
+^^J
+Please make this table with \string\begin{tabular}...\string\end{tabular}
+^^J
+Information on making this change is found in the AGUTeX documentation
+^^J^^J^^J
+}
+\vskip24pt
+\hrule
+\vskip12pt
+\noindent
+!! Planotable is an obsolete command. Please replace with\newline
+{\tt\string\begin\string{table\string}\newline
+\string\caption\string{\string}\newline
+\string\begin\string{tabular\string}...\newline
+\string\end\string{tabular\string}\newline
+\string\end\string{table\string}}\newline
+Information on how to do this is found in the AGUTeX documentation.
+\vskip12pt
+\hrule
+\end}
+
+\def\endplanotable{}
+
+\newcount\saveequation
+\newcounter{currlett}
+\newenvironment{mathletters}{\refstepcounter{equation}%
+\mathletter{x}
+\c at currlett=0
+\global\saveequation=\c at equation
+\def\theequation{\global\advance\c at currlett by1
+\the\saveequation\alph{currlett}}%
+\let\savetheequation\theequation}%
+{\global\c at equation\saveequation\relax}
+
+%% invented june 00
+\newdimen\notationwidth
+\def\setnotationwidth#1{\setbox0=\hbox{#1\ \ }
+\global\notationwidth=\wd0\relax}
+\newskip\betweennotationskip
+\betweennotationskip=1sp plus 1pt
+
+
+\newdimen\WidestEntry
+
+\long\def\notation#1\end{
+\def\begin{\typeout{^^J^^J!!!^^J^^J Notation:^^J
+Please do not put any
+\string\begin\space or \string\end\space commands within
+the notation environment^^J^^J!!!^^J^^J}}
+\section*{Notation}
+\setbox0=\vbox{\let\\ \cr
+\halign{\setbox0=\hbox{##\ \ }%
+\ifdim\wd0>\WidestEntry \global\WidestEntry=\wd0\fi&##\cr
+#1\crcr}}
+%%
+\everycr={\noalign{\vskip1sp}}
+\dimen0=\mycolumnwidth
+\advance\dimen0 by-\WidestEntry
+\let\\ \cr
+\vskip1sp\halign{\hbox to\ifdim\notationwidth>0pt \notationwidth\else
+\WidestEntry\fi{\hfill##\ \ }&\vtop{\hsize=\dimen0
+\parindent=0pt##\vrule width0pt depth 5pt}
+\cr#1\crcr}\end}
+
+\def\endnotation{\global\WidestEntry=0pt
+\vskip6pt\@ignoretrue}
+
+%% Table Footnotes
+
+\def\tablenotemark#1{\rlap{$^{\rm #1}$}}
+
+\long\def\tablenotetext#1#2{\vtop{\vskip2pt
+\uncentering\noindent\setbox0=\hbox{#1}%
+\hskip\saveparindent\ifdim\wd0>1pt
+$^{\rm #1}$ \fi{\tablenotefont\ignorespaces #2}\vskip1sp}}
+
+\long\def\tablecomments#1{\vbox{\uncentering
+\vskip2pt{\parindent\saveparindent\def\\ {\vskip1sp}\tablenotefont #1}
+\vskip 1sp}}
+
+\let\tablecomment\tablecomments
+\def\tablenotes{\uncentering\vskip4pt
+\tablenotefont\noindent\hskip\saveparindent\ignorespaces}
+\def\endtablenotes{\vskip1sp}
+
+\def\uncentering{%
+  \let\\\@normalcr
+  \rightskip0pt \leftskip0pt
+  \parindent\saveparskip \parfillskip0pt plus 1fil\relax}
+
+
+\newenvironment{figure*}
+               {\@dblfloat{figure}}
+               {\end at dblfloat}
+
+\newenvironment{table*}
+               {\@dblfloat{table}}
+               {\end at dblfloat}
+
+\newenvironment{plate*}
+               {\@dblfloat{plate}}
+               {\end at dblfloat}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newdimen\premulticols  
+\newdimen\page at free
+\newbox\partial at page
+\newcount\multicoltolerance
+\newcount\doublecol at number
+\newskip\multicolbaselineskip 
+\newcount\c at collectmore   
+\newcount\loopcount
+\newdimen\fixdimen
+\newcount\c at unbalance     
+\newdimen\savedimen
+\newif\ifshr at nking
+
+\def\threecolumns[#1]{
+\begingroup
+%%%%%
+%% Frank Mittlebach's multicol macros, minus comments and
+%% irrelevancies.
+\c at unbalance   = 0
+\multicolbaselineskip=0pt
+\multicoltolerance = 9999
+\premulticols = 50pt
+\c at collectmore = 0
+\def\multicols##1{\col at number##1\relax
+  \@ifnextchar[\mult at cols{\mult at cols[]}}
+%
+\def\mult at cols[##1]{\@ifnextchar[%
+  {\mult@@cols{##1}}%
+  {\mult@@cols{##1}[\premulticols]}}
+%
+\def\mult@@cols##1[##2]{%
+   \enough at room##2%
+   ##1\nobreak\par%\addvspace\multicolsep 
+   \begingroup
+   \prepare at multicols\ignorespaces}
+%
+\def\enough at room##1{\par \penalty\z@
+   \page at free \pagegoal
+   \advance \page at free -\pagetotal
+   \ifdim \page at free <##1  \newpage \fi}
+%
+\def\prepare at multicols{%
+  \output{\global\setbox\partial at page
+                 \vbox{\unvbox\@cclv}}\eject
+  \vbadness9999 \hbadness5000
+  \tolerance\multicoltolerance 
+  \doublecol at number\col at number
+  \multiply\doublecol at number\tw@
+  \advance\baselineskip\multicolbaselineskip
+  \advance\@colroom-\ht\partial at page
+\ifdim\ht\dbltopins>1pt 
+  \advance\@colroom-\ht\dbltopins
+  \advance\@colroom-\dp\dbltopins
+\advance\@colroom-\baselineskip
+\fi
+\ifdim\ht\dblbotins>1pt 
+ \advance\@colroom-\ht\dblbotins
+  \advance\@colroom-\dp\dblbotins
+\fi
+  \vsize\col at number\@colroom
+  \advance\vsize\c at collectmore\baselineskip
+  \hsize\columnwidth \advance\hsize\columnsep
+  \advance\hsize-\col at number\columnsep
+  \divide\hsize\col at number 
+  \linewidth\hsize 
+  \output{\multi at columnout}%
+%  \multiply\count\footins\col at number
+%  \multiply\skip \footins\col at number
+  \reinsert at footnotes}
+%
+\def\endmulticols{\parskip=0pt
+\par\penalty\z@
+  \output{\xbalance at columns}\eject\nobreak%
+\endgroup
+}
+\def\process at cols##1##2{\count@##1\relax
+     \loop ##2%
+     \advance\count@\tw@
+     \ifnum\count@<\doublecol at number 
+   \repeat}
+\def\page at sofar{\unvbox\partial at page 
+   \process at cols\z@{\wd\count@\hsize}%
+\hbox to\textwidth{%
+     \process at cols\tw@{\box\count@\hss}%
+\box\z@}}
+\def\reinsert at footnotes{\ifvoid\footins\else
+         \insert\footins{\unvbox\footins}\fi}
+\def\multi at columnout{%
+   \ifnum\outputpenalty <-\@Mi
+   \speci at ls \else
+   \splittopskip\topskip 
+   \splitmaxdepth\maxdepth
+   \dimen@\@colroom
+\advance\dimen at -12pt %===
+ %  \divide\skip\footins\col at number
+  % \ifvoid\footins \else
+%      \advance\dimen at -\skip\footins 
+%      \advance\dimen at -\ht\footins   \fi
+   \process at cols\tw@{\setbox\count@
+            \vsplit\@cclv to\dimen@}%
+   \setbox\z@\vsplit\@cclv to\dimen@
+   \ifvoid\@cclv \else 
+       \unvbox\@cclv
+       \penalty\outputpenalty\fi     
+   \setbox\@cclv\vbox{\page at sofar}%
+   \@makecol\@outputpage
+   \global\@colroom\@colht
+   \process at deferreds
+   \global\vsize\col at number\@colroom 
+   \global\advance\vsize
+      \c at collectmore\baselineskip
+   \multiply\skip\footins\col at number\fi}
+
+\def\speci at ls{%
+   \unvbox\@cclv\reinsert at footnotes
+   \gdef\@currlist{}}
+
+\def\process at deferreds{%
+   \@floatplacement 
+   \begingroup
+    \let\@tempb\@deferlist
+    \gdef\@deferlist{}%
+    \let\@elt\@scolelt
+      \@tempb \endgroup}
+
+\def\raggedcolumns{%
+   \@bsphack\shr at nkingtrue\@esphack}
+
+\def\flushcolumns{%
+   \@bsphack\shr at nkingfalse\@esphack}
+
+\def\escapeloop{\gdef\iterate{}}
+
+\def\xbalance at columns{%
+\loopcount=0
+\fixdimen=0pt
+   \splittopskip\topskip
+   \splitmaxdepth\maxdepth
+   \setbox\z@\vbox{\unvbox\@cclv}\dimen@\ht\z@
+   \advance\dimen@\col at number\topskip
+   \advance\dimen at -\col at number\baselineskip
+   \divide\dimen@\col at number
+   \advance\dimen@\c at unbalance\baselineskip
+   {\vbadness\@M \loop
+   {\process at cols\@ne{\global\setbox\count@
+                              \box\voidb at x}}%
+     \global\setbox\@ne\copy\z@
+     {\process at cols\thr@@{\savedimen\ht\@ne \advance\savedimen by-\dimen@
+\global\setbox\count@ \vsplit\@ne to\dimen@ 
+\ifdim\savedimen>\ht\@ne % AH: TeX was forced to make box bigger than \dimen at .
+\advance\savedimen by-\ht\@ne \advance\savedimen by -7.1pt 
+\ifdim\savedimen>\fixdimen \global\fixdimen\savedimen\fi\fi}}%
+    \ifdim\ht\@ne >\ht\thr@@
+    \global\advance\dimen@\p@%.5\baselineskip
+\global\advance\loopcount by1
+\ifnum\loopcount=90 \escapeloop\fi
+   \repeat}%
+\let\iterate\saveiterate
+\dimen@\ht\thr@@  
+\ifdim\fixdimen>0pt \advance\dimen@ by \fixdimen\fi
+   \process at cols\z@{\@tempcnta\count@ 
+        \advance\@tempcnta\@ne
+        \setbox\count@\vtop to\dimen@
+           {\unvbox\@tempcnta
+           \ifshr at nking\vfill\fi}
+}%
+   \global\vsize\@colroom 
+   \global\advance\vsize\ht\partial at page
+   \page at sofar
+}
+%
+\multicols3[{{#1}}]}
+
+\def\endthreecolumns{\endmulticols\endgroup}
+
+\def\saveincludegraphics{%
+  \@ifstar
+    {\Gin at cliptrue\Gin at i}%
+    {\Gin at clipfalse\Gin at i}}
+
+\def\includegraphics{\expandafter\ifx\csname rotatebox\endcsname\relax
+\show\graphicserror\let\go\relax\else\let\go\saveincludegraphics\fi}
+
+\def\graphicserror{
+^^J^^J
+--------------------------------------------------------^^J
+!! \includegraphics is not defined!^^J
+Please use \usepackage[<your driver program>]{graphicx}^^J
+(i.e., \usepackage[dvips]{graphicx})^^J^^J
+If you don't have graphicx.sty available, you can download^^J 
+graphics.zip from the AGU website. When you run pkunzip on it^^J 
+you will have graphicx.sty, as well as the documentation, grfguide.tex,^^J
+which also shows options you can use when using \includegraphics^^J
+^^J
+The graphicx package has these options to tune the package for a ^^J
+particular driver program. Please choose the name that matches your ^^J
+program. If you don't see the name listed here, try dvips.^^J
+[dvips], [xdvi], [dvipdf], [dvipsone], [dviwindo], [emtex], ^^J
+[dviwin], [pctexps],  [pctexwin],  [pctexhp],  [pctex32], ^^J
+[truetex], [tcidvi], [oztex], [textures]^^J
+--------------------------------------------------------^^J
+}
+
+\def\landscapeerror{
+^^J^^J
+--------------------------------------------------------^^J
+!! landscapetable and landscapefigure need^^J
+\usepackage[<your driver program>]{graphicx}^^J
+(i.e., \usepackage[dvips]{graphicx})^^J^^J
+If you don't have graphicx.sty available, you can download^^J 
+graphics.zip from the AGU website. When you run pkunzip on it^^J 
+you will have graphicx.sty, as well as the documentation, grfguide.tex,^^J
+which also shows options you can use when using \includegraphics^^J
+^^J
+The graphicx package has these options to tune the package for a ^^J
+particular driver program. Please choose the name that matches your ^^J
+program. If you don't see the name listed here, try dvips.^^J
+[dvips], [xdvi], [dvipdf], [dvipsone], [dviwindo], [emtex], ^^J
+[dviwin], [pctexps],  [pctexwin],  [pctexhp],  [pctex32], ^^J
+[truetex], [tcidvi], [oztex], [textures]^^J
+--------------------------------------------------------^^J
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Specific Style Changes for Particular Journal
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+%% Specific Style Settings
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Contents:
+%%  1) Set Dimensions and parameters
+%%  2) Fonts
+%%  3) Names for particular environments
+%%  4) Running Head and Folio
+%%  5) Article title page dimensions and parameters
+%%  6) Abstract
+%%  7) Begin article, endarticle
+%%  8) Section heads
+%%  9) Captions
+%% 10) Table settings
+%% 11) Footnotes
+%% 12) References
+
+%%%%%%%%%%
+%% 1) Set dimensions and parameters
+
+%  PAGE LAYOUT PARAMETERS
+%
+%   \topmargin      : Extra space added to top of page.
+%   @twoside        : boolean.  T if two-sided printing
+%   \oddsidemargin  : IF @twoside = T
+%                         THEN extra space added to left of odd-numbered
+%                              pages.
+%                         ELSE extra space added to left of all pages.
+%   \evensidemargin : IF @twoside = T
+%                         THEN extra space added to left of even-numbered
+%                              pages.
+%   \headheight     : height of head
+%   \headsep        : separation between head and text
+%   \footskip       : distance separation between baseline of last
+%                     line of text and baseline of foot.
+%                     Note difference between \footSKIP and \headSEP.
+%   \textheight     : height of text on page, excluding head and foot
+%   \textwidth      : width of printing on page
+
+%   \@textbottom    : Command executed at bottom of vbox holding text of page
+%                     (including figures).  The \raggedbottom command
+%                     almost \let's this to \vfil (actually sets it to
+%                     \vskip \z@ plus.0001fil). %expanded 18 Jun 86
+%
+
+\topmargin 0pt
+
+\@twosidetrue
+\oddsidemargin=-4pt
+\evensidemargin=-16pt
+
+\headheight 9pt
+\headsep   14pt
+\topskip = 11pt
+
+\footnotesep4pt
+\skip\footins  18pt  
+\footskip 0pt
+
+\textheight=698pt
+\textwidth = 41pc
+\hsize=41pc
+
+\newdimen\savehsize
+\savehsize\hsize
+
+\newdimen\mycolumnwidth
+\mycolumnwidth=19pc
+
+\parskip 0pt % plus .001pt
+\parindent .15in
+
+\newdimen\saveparindent
+\saveparindent=\parindent
+
+\newdimen\saveparskip
+\saveparskip=\parskip
+
+%%%%
+
+
+\widowpenalty=10000
+\clubpenalty=10000
+
+
+\predisplaypenalty=10000
+
+\lineskip0pt
+\normallineskip 1pt
+\def\baselinestretch{1}
+
+\marginparwidth .9in
+\marginparsep 7pt
+
+\columnsep 1pc
+\columnseprule 0pt
+
+%  PAGE STYLE PARAMETERS:
+%
+%   \floatsep       : Space left between floats.
+%   \textfloatsep   : Space between last top float or first bottom float
+%                     and the text.
+%   \topfigrule     : Command to place rule (or whatever) between floats
+%                     at top of page and text.  Executed in inner vertical
+%                     mode right before the \textfloatsep skip separating
+%                     the floats from the text.  Must occupy zero vertical
+%                     space.  (See \footnoterule.)
+%   \botfigrule     : Same as \topfigrule, but put after the \textfloatsep
+%                     skip separating text from the floats at bottom of page.
+%   \intextsep      : Space left on top and bottom of an in-text float.
+%   \@maxsep        : The maximum of \floatsep, \textfloatsep and \intextsep
+%   \@fptop         : Glue to go at top of float column -- must be 0pt +
+%                     stretch
+%   \@fpsep         : Glue to go between floats in a float column.
+%   \@fpbot         : Glue to go at bottom of float column -- must be 0pt +
+%                     stretch
+
+\floatsep 12pt plus 2pt minus 2pt
+\textfloatsep 20pt plus 2pt minus 4pt
+\intextsep 12pt plus 2pt minus 2pt
+
+\ifll\else
+\@maxsep 20pt
+\@dblmaxsep 20pt
+\fi
+
+\dblfloatsep 12pt plus 2pt minus 2pt
+\dbltextfloatsep 20pt plus 2pt minus 4pt
+
+\@fptop 0pt plus 1fil
+\@fpsep 8pt plus 2fil
+\@fpbot 0pt plus 1fil
+\@dblfptop 0pt plus 1fil
+\@dblfpsep 8pt plus 2fil
+\@dblfpbot 0pt plus 1fil
+\marginparpush 5pt
+
+\@lowpenalty   51
+\@medpenalty  151
+\@highpenalty 301
+
+\@beginparpenalty -\@lowpenalty
+
+\@endparpenalty   -\@lowpenalty
+
+\@itempenalty     -\@lowpenalty
+
+
+%%%%%%%%
+%% 3) Names for particular environments
+
+\newcommand\bibname{Bibliography}
+\newcommand\figurename{Figure}
+\newcommand\tablename{Table}
+\newcommand\appendixname{Appendix}
+
+%%%%%%%%
+%% 4) Running Head and Folio
+
+\authorwidth=33pc % where should multiple authors wrap?
+\authorbaselineskip=14pt % baseline if multiple author lines
+
+%% Uppercase on author and title line in running head.
+
+\authorUCtrue
+\titleUCtrue
+
+\def\jheadline{\hbox to\textwidth{\iftitle%
+\hfill\titlepageheadlinefont
+\uppercase{\journalname, Vol.~\thevolume, XXXX,
+doi:10.1029/\thepaperidnumber, \jourdate}\hfill%
+\else\ifodd\c at page
+{\hfill\headlinesize\headtextfont\theauthors:\ \ \thetitle}%
+\hfill\llap{\foliofont X~-~\PutCommaIntoNumber{\the\c at page}}%
+\else\rlap{\foliofont X~-~\PutCommaIntoNumber{\the\c at page}}\hfill%
+{\headlinesize\headtextfont\theauthors:\ \ \thetitle}%
+\hfill\fi\fi}}
+
+\def\jfootline{\hbox to\textwidth{%
+\iftitle\global\titlefalse%
+\vtop to0pt{\vskip8pt
+\hbox to\textwidth{\hfill
+\foliofootfont\PutCommaIntoNumber{\c at page}\hfill}
+\vss}%
+\else\hfill\fi% end iftitle
+}% end hbox to textwidth
+}
+
+
+%%%%%%
+%% 5) Article title page dimensions and parameters
+
+\CenterArticleHeadfalse
+
+\def\specialtitleins{\raggedright}
+
+\abovereceivedskip=4pt
+
+\belowtitleskip=1sp
+\aboveauthorskip=6pt
+\belowauthorskip=0pt
+
+\affilwidth=33pc
+\aboveaffilskip=4.5pt
+\belowaffilskip=0pt
+
+\newif\iffirstsection
+
+\def\editor#1{%
+\def\theeditor{\vskip\aboveacceptedskip\noindent Recommending editor: #1}} 
+\def\editors#1{%
+\def\theeditor{\vskip\aboveacceptedskip\noindent Recommending editors: #1}} 
+
+
+\let\StartOnNewPage\relax %% can start on even or odd pages
+
+%%%%%%%%%%%%
+%% 6) Abstract
+
+\newdimen\abstractwidth
+\abstractwidth=33pc
+\abstractmargin=0pt
+\aboveabstractskip=0pt
+\belowabstractskip=19pt
+\belowabstractnameskip=0pt
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% 7) Beginning and end of article
+
+\long\def\printtitle{\global\titletrue
+\vspace*{5pt}
+{\hsize=38pc %in specs
+\raggedright \hyphenpenalty=10000
+\parindent=0pt
+\let\thanks\titlethanks
+\def\\ {\vskip1sp}%
+\Large\baselineskip=\titlebaseline\ifjdraft\LARGE\bf\else\titlefont \fi
+\theprinttitle\vrule depth\belowtitleskip
+width0pt height 0pt
+\vskip1sp}%
+\setbox1=\hbox{\let\\ \relax\let\thanks\titlemaketemp \theprinttitle}
+\ifjdraft\large\else\normalsize\fi}
+
+%% Need PutCommaIntoNumber because page numbers are greater
+%% than 1000
+\newif\ifspecifiedlastpage
+\newcount\currlastnumber
+\def\articlelastpagenum#1{\global\specifiedlastpagetrue
+\global\currlastnumber=#1\relax}
+
+\def\lastpage{%
+\expandafter\ifx\csname endpage\the\c at chapter\endcsname\relax%
+ ?? \else--%
+\ifspecifiedlastpage \PutCommaIntoNumber{\the\currlastnumber}\else
+\PutCommaIntoNumber{\csname endpage\the\c at chapter\endcsname}\fi\fi%
+\global\specifiedlastpagefalse\relax}
+
+%% \refstepcounter{chapter} 
+%% will reset footnote num, section, theorem, table and figure
+\newbox\altaffilbox
+
+%% default article
+\def\article{%
+%\def\thesubsection{\thesection.\@arabic{\c at subsection}}
+\global\firstpagetrue
+\refstepcounter{chapter} % resets fig. etc. counters with
+                                      % each article. We never actually
+                                      % use the chapter counter.
+%%
+\global\saveparskip=\parskip
+\gdef\applett{}
+\global\c at appendnum=0 \global\appendonfalse
+\vskip1sp
+%%%%%%
+\ifnum\totalaffils>0
+\global\setbox\altaffilbox=\vbox{
+\ifjdraft\large\else
+\footnotesize\fi
+\hyphenpenalty=10000
+\raggedright
+\doaltaffils}
+\fi
+%%%%%%
+\ifnum\dothanks>0
+\dothanks=0
+\ifnum\thanksnum>0 \global\thanksnum=0
+\global\setbox\thanksbox=\vbox{%
+\ifjdraft\large\fi
+\parindent=6pt
+\hsize=21pc
+\loop
+\vskip1pt
+\ifnum\thanksnum<\thankscounter
+\global\advance\thanksnum by1\relax
+\vskip1sp
+\noindent\vrule height 8.5pt width0pt%
+\hskip\parindent
+\csname tempthanks\the\thanksnum\endcsname
+\vskip1sp
+\repeat
+}% end \thanksbox
+\fi\fi%
+ \ifnum\titlethanksnum>0 \global\titlethanksnum=0 
+\global\setbox\titlethanksbox=\vbox{%
+\ifjdraft\large\else\footnotesize\fi
+\hyphenpenalty=10000
+\raggedright
+\hsize=\mycolumnwidth
+\loop\ifnum\titlethanksnum<\titlethankscounter
+ \global\advance\titlethanksnum by1\relax
+\vskip1pt
+\noindent\hskip\saveparindent$^{\hbox{\footnotesize\dotitlethankssymbol}}$% 
+\csname temptitlethanks\the\titlethanksnum\endcsname
+ \repeat
+ \global\titlethanksnum=0 \global\titlethankscounter=0
+\vskip1sp
+}
+\fi %% end titlethanksnum
+\global\thanksnum=0 \global\thankscounter=0
+\global\setbox\barticle=\vbox{\ifjdraft\large\fi
+\hsize=\mycolumnwidth
+%
+\ifvoid\altaffilbox\else
+\unvbox\altaffilbox\vskip8pt\fi
+%
+\ifvoid\thanksbox\else
+\unvbox\thanksbox\vskip3pt\fi
+%
+\ifvoid\titlethanksbox
+\else
+\unvbox\titlethanksbox\vskip3pt\fi
+%
+\vskip1sp
+}
+\global\dothanks=0 \global\thanksnum=0
+\normalsize
+\vbox to6pt{\vfill}
+%%
+%%
+\ifjdraft\draftcolumns
+\else
+%% normal abstract
+\ifx\theabstract\empty
+\else
+\vskip\aboveabstractskip%\vtop
+{\parindent=\saveparindent
+\hfuzz=12pt
+\spaceskip=4pt
+\xspaceskip\spaceskip
+\hsize=\abstractwidth 
+\advance\hsize by-14pt % to compensate for hfuzz being 12pt, and a bit more
+\abstractsize
+{\abstractnamefont 
+\noindent
+Abstract.}\hskip1em \relax\ifdim\belowabstractnameskip>0pt %
+\vskip\belowabstractnameskip\noindent\fi
+\abstractfont
+\theabstract%
+\vskip\belowabstractskip
+}
+\fi
+%% end normal abstract
+\ifgalley
+\vspace*{1pc}
+\galleycolumns\else
+\twocolumns\fi\fi
+\global\firstsectiontrue 
+\ifgalley
+\ifdim\ht\barticle< 2pt
+\ifjgrga
+\skip\footins=18pt
+\fi
+  \let\footnoterule\relax
+  \savefootnotetext{%
+  \vskip-6pt
+  \footnotesize
+  \@slug %%
+  }
+\else
+  \savefootnotetext{%
+  \vskip-4pt
+  \unvbox\barticle
+\vskip-6pt
+  \footnotesize
+\@slug%%
+ }
+\fi
+\else
+%% not galley
+\ifjdraft
+\savefootnotetext{\large\slug at comment
+\@sluginfo}
+\ifdim\ht\barticle< 2pt\else
+\savefootnotetext{%\vbox
+{\vskip-6pt
+\unvbox\barticle}}
+\fi
+\else
+%% also not draft
+\begin{figure}[b]
+\ifdim\ht\barticle>2pt
+\hrule width 48pt height .5pt
+\vskip1pt
+\unvbox\barticle\fi
+\footnotesize
+\@slug 
+\end{figure}
+\fi% end normal
+\fi% end ifgalley
+\ifjdraft
+\global\let\normalsize\large
+\global\let\savenormalsize\large \large
+\else
+\global\let\normalsize\small \small%
+\fi
+%% draft abstract
+\ifjdraft
+\ifx\theabstract\empty
+\else
+\newpage
+\vskip\aboveabstractskip%\vtop
+{\parindent=\saveparindent
+\hfuzz=12pt
+\spaceskip=4pt
+\xspaceskip\spaceskip
+\hsize=\abstractwidth 
+\advance\hsize by-14pt % to compensate for hfuzz being 12pt, and a bit more
+\abstractsize
+{\abstractnamefont
+\noindent
+Abstract.}\hskip1em \relax\ifdim\belowabstractnameskip>0pt %
+\vskip\belowabstractnameskip\noindent\fi
+\abstractfont
+\baselineskip=28pt
+\theabstract%
+\vskip\belowabstractskip
+}
+\newpage
+\fi\fi}
+
+\def\endarticle{\notes
+\ifgalley\endgalley\else
+\ifjdraft\enddraft\else
+\iftriplecol\global\triplecolfalse
+\else
+\endtwocolumns\fi\fi\fi
+\savenormalsize
+\ifnum\pagefloatnumber>\pageloopnum
+\newpage
+\insertpage{\hsize=\textwidth
+\linewidth=\textwidth
+\csname pagefloat\the\pageloopnum \endcsname}\fi%
+\xdef\doitnow{\write\@auxout{\string\expandafter%
+\string\gdef\string\csname\space 
+endpage\the\c at chapter\endcsname{\the\c at page}}}
+\doitnow
+\global\parskip=\saveparskip
+%% just in case...
+\ifdim\ht\dbltopins>2pt \unvbox\dbltopins\fi
+\ifdim\ht\dblbotins>2pt\unvbox\dblbotins\fi
+\resetdefaults
+\global\let\figure\savefigure
+\global\let\endfigure\saveendfigure
+\global\let\table\savetable
+\global\let\endtable\saveendtable
+\global\let\caption\savecaption
+\global\let\tabular\savetabular
+\global\let\endtabular\saveendtabular
+\global\let\plate\saveplate
+\global\let\endplate\saveendplate
+}
+
+
+
+%%%%%%
+%% 8) Section Heads
+
+\def\thesection{\@arabic{\c at section}}
+\def\thesubsection{\thesection.\@arabic{\c at subsection}}
+\def\thesubsubsection{\thesubsection.\@arabic{\c at subsubsection}}
+\def\theparagraph{\thesubsubsection.\@arabic{\c at paragraph}}
+
+\def\xmakecenterlines#1{\vtop{%
+\parindent=0pt
+\parskip=0pt
+\hyphenpenalty=10000
+\centering
+#1}}
+
+
+
+\newskip\sectskip
+\sectskip=17pt %plus .001pt 
+minus4pt
+
+\newskip\belowsectionskip
+\belowsectionskip=11pt 
+
+\newskip\subsectskip
+\newskip\belowsubsectskip
+\subsectskip=10pt %plus.001pt 
+minus 1pt
+\belowsubsectskip=8pt
+
+\newskip\subsubsectskip
+\subsubsectskip=1pt %plus .001pt
+\newskip\belowsubsubsectskip
+\belowsubsubsectskip=1pt
+
+\def\ast{*}
+\newif\ifsectionon
+\def\section#1{\ifappendon\resetappcounters\fi%
+\def\yone{#1}\ifx\yone\ast\let\go\ssection\else%
+\let\go\xxsection\fi\go{#1}}
+
+\let\savesection\section
+\newif\ifsendcontents
+
+\def\xxsection#1{%
+\global\sectionontrue%
+\refstepcounter{section}%
+\def\@currentlabel{\ifappendon\Alph{section}\else\the\c at section\fi}%
+\ifsendcontents\else%
+        % hack so contents will only be sent for article with \contents
+{\let\\ \ %
+\addcontentsline{toc}{section}{\string\vskip-1pt%
+\ifappendon\applett.\fi\the\c at section.\string\ \string\ {%
+\string\affilfont\space #1.}}}\fi%
+\iffirstsection\vspace*{-6pt}\global\firstsectionfalse%
+\else\goodbreak\vskip\sectskip\fi%
+\vtop{\hyphenpenalty=10000
+\savenormalsize\baselineskip=12pt
+\boldmath %% makes 10pt bold math
+\noindent
+\sectionfont\ifappendon Appendix \Alph{section}%
+\def\xone{#1}%
+\ifx\xone\empty\else:\fi\else\thesection.\fi\nobreak\hskip8pt\relax%
+{#1}\vskip\belowsectionskip}%
+\nobreak\parskip=0pt \global\everymath={}%
+\everypar={\global\sectiononfalse\everypar={}\ignorespaces}
+}
+
+\def\ssection#1#2{\vskip\sectskip\global\sectionontrue%
+\ifappendon\refstepcounter{section}\fi 
+        %% above, so that \appendix \section*{Appendix} sets equation and
+        %% figure number to A
+\vtop{\hyphenpenalty=10000 
+\savenormalsize
+\ifjdraft\baselineskip=28pt\else\baselineskip=12pt\fi
+\boldmath %% makes 10pt bold math
+\noindent\sectionfont{#2}\vskip\belowsectionskip}%
+\nobreak\everypar={\global\sectiononfalse\everypar={}}}
+
+%%%%
+
+\def\subsection#1{\def\one{#1}\ifx\one\ast\let\go\ssubsection\else%
+\let\go\xxsubsection\fi\go{#1}}
+
+\let\savesubsection\subsection
+
+\newif\ifsubsectionon
+\def\xxsubsection#1{\ifsectionon\global\sectiononfalse\ifvmode\vskip-3pt
+\else\vskip\subsectskip\fi%
+\else\vskip\subsectskip\fi\global\subsectionontrue
+\refstepcounter{subsection}%
+%\def\@currentlabel{\ifappendon\applett.\fi\the\c at section.\the\c at subsection}
+\def\@currentlabel{\thesubsection}
+\vtop{\hyphenpenalty=10000 
+\savenormalsize\baselineskip=11pt\boldmath %% 10pt boldmath
+\noindent
+%\subsectionfont\ifappendon\applett.\fi\thesubsection.\hskip8pt\relax#1
+\subsectionfont\thesubsection.\hskip8pt\relax#1
+\vskip\belowsubsectskip}%
+\global\everymath={}%
+\everypar={\global\subsectiononfalse\everypar={}}
+\nobreak}
+
+\def\ssubsection#1#2{\ifsectionon\global\sectiononfalse
+\ifvmode\vskip-\lastskip\fi\vskip\subsectskip\else
+\vskip\subsectskip\fi\global\subsectionontrue
+\vtop{\hyphenpenalty=10000 
+\savenormalsize\boldmath\baselineskip=11pt% boldmath at 10pt
+\noindent\subsectionfont#2
+\vskip\belowsubsectskip}%
+\everypar={\global\subsectiononfalse\everypar={}}
+\nobreak}
+
+\def\subsubsection#1{\def\one{#1}\ifx\one\ast\let\go\ssubsubsection\else%
+\let\go\xxsubsubsection\fi\go{#1}
+}
+
+\def\xxsubsubsection#1{%
+\refstepcounter{subsubsection}%
+\def\@currentlabel{\the\c at section.\the\c at subsection.\the\c at subsubsection}
+\ifsectionon \global\sectiononfalse\ifvmode \vskip-3pt\else%
+\vskip\subsubsectskip\fi\else%
+\ifsubsectionon\global\subsectiononfalse 
+\ifvmode\vskip-3pt\else%
+\vskip\subsubsectskip\fi\else\vskip\subsubsectskip
+\fi\fi%
+{\def\\ {\vskip1sp}%\indent
+\noindent{\savenormalsize\boldmath\subsubsectionfont\thesubsubsection.\hskip8pt%
+#1}\vskip\belowsubsubsectskip}\global\everymath={}%
+\ignorespaces}
+
+
+\def\ssubsubsection#1#2{%
+\ifsectionon\global\sectiononfalse\ifvmode\vskip-3pt\else
+\vskip\subsubsectskip\fi\else%
+\ifsubsectionon\global\subsectiononfalse\ifvmode\vskip-3pt 
+\else\vskip\subsubsectskip\fi\else\vskip\subsubsectskip\fi\fi%
+\noindent{\savenormalsize\boldmath\subsubsectionfont#2}\vskip\belowsubsubsectskip}
+
+\newcount\c at subsubsubsection
+\def\thesubsubsubsection{\arabic{section}.\arabic{subsection}.%
+\arabic{subsubsection}.\arabic{subsubsubsection}.}
+
+\def\subsubsubsection#1{\def\one{#1}\ifx\one\ast\let\go\ssubsubsubsection\else%
+\let\go\xxsubsubsubsection\fi\go{#1}
+}
+
+\def\xxsubsubsubsection#1{%
+\refstepcounter{subsubsubsection}%
+\def\@currentlabel{\the\c at section.\the\c at subsection.%
+\the\c at subsubsection.\the\c at subsubsubsection}
+\ifsectionon\global\sectiononfalse\ifvmode\vskip-3pt\else%
+\vskip\subsubsectskip\fi\else%
+\ifsubsectionon\global\subsectiononfalse
+\ifvmode\vskip-3pt\else%
+\vskip\subsubsectskip\fi\else\vskip\subsubsectskip\fi\fi%
+{\def\\ {\vskip1sp}
+\noindent{\savenormalsize\boldmath\subsubsectionfont\thesubsubsubsection\hskip8pt%
+#1}\vskip\belowsubsubsectskip}\global\everymath={}%
+\ignorespaces}
+
+\def\ssubsubsubsection#1#2{%
+\ifsectionon\global\sectiononfalse\ifvmode\vskip-3pt\else
+\vskip\subsubsectskip\fi\else%
+\ifsubsectionon\global\subsectiononfalse\ifvmode\vskip-3pt 
+\else\vskip\subsubsectskip\fi\else\vskip\subsubsectskip\fi\fi%
+\noindent{\savenormalsize\boldmath\subsubsectionfont#2}\vskip\belowsubsubsectskip}
+
+\def\paragraph#1{\vskip1sp
+\indent{\savenormalsize\boldmath\paragraphfont #1:\hskip8pt\relax}\ignorespaces}
+
+
+
+%%%%%%
+%% 9) Captions
+
+\centermultiplelinestrue
+\centersinglelinefalse
+\centersingletablinefalse
+
+\let\captionsize\small
+\abovefigcaptionskip=6pt %
+
+\abovetabcaptionskip=1pt
+\abovetableskip=-9pt
+
+\newdimen\captionwidth
+\newdimen\widecaptionwidth
+\newdimen\landscapecaptionwidth
+
+\captionwidth=\mycolumnwidth
+\widecaptionwidth=35pc
+\landscapecaptionwidth=57pc
+
+%%%%%%
+%% 10) Table settings
+
+%% (make no op because they are not applied consistently)
+\def\thetablelines{}%\hrule width \hsize\vskip1sp}%
+                  
+\belowtabcaptionskip=6pt
+\fullwidthtablefalse
+\lineabovetabcaptionfalse
+\linebelowtabcaptiontrue
+
+\abovetabularskip=0pt
+\belowtabularskip=0pt
+
+%%%%%%%%%
+%% 11) Footnotes
+
+\def\footnoterule{\kern -3\p@ \hrule 
+width 4pc %%<=== change this dimen to change width of footnote rule line
+\kern 2.6\p@}
+
+\let\footnote\endnotes
+
+\newtoks\@temptokenb
+\def\authaddr at list{}
+\def\authoraddress#1{\par
+\@temptokena={\ifjdraft\large\else\footnotesize\fi\par\noindent\vrule height 8.5pt width0pt
+\hskip.15in\relax#1\vskip1sp}
+\@temptokenb=\expandafter{\authaddr at list}
+\xdef\authaddr at list{\the\@temptokenb\the\@temptokena}}
+\let\authoraddr=\authoraddress
+
+%%%%%%%%
+%% 12) References
+
+%% this def not used
+\def\references{\notes
+\vskip12pt
+\goodbreak
+\noindent{\sectionfont References}
+\vskip6pt
+\bgroup
+\referencesize\itemsep=1pt
+\list{\@biblabel{\arabic{enumiv}}}
+{\settowidth\labelwidth{\@biblabel{10.}}%
+    \leftmargin\labelwidth
+%    \advance\leftmargin\labelsep
+    \usecounter{enumiv}%
+    \let\p at enumiv\@empty
+    \def\theenumiv{\arabic{enumiv}}}%
+    \def\newblock{\hskip .11em plus.33em minus.07em}%
+    \sloppy\clubpenalty4000\widowpenalty4000 \frenchspacing
+    \sfcode`\.=\@m}
+
+% same as \references, except for #1 which doesn't get used, in
+% case author supplies \thebibliography{10}, which now will not be used.
+\def\bibreferences#1{\notes
+%\goodbreak
+%\vskip12pt
+\section*{References}
+\bgroup
+\referencesize\itemsep=1pt
+\list{\@biblabel{\arabic{enumiv}}}
+{\settowidth\labelwidth{\@biblabel{10.}}%
+    \leftmargin\labelwidth
+%    \advance\leftmargin\labelsep
+    \usecounter{enumiv}%
+    \let\p at enumiv\@empty
+    \def\theenumiv{\arabic{enumiv}}}%
+    \def\newblock{\hskip .11em plus.33em minus.07em}%
+    \sloppy\clubpenalty4000\widowpenalty4000 \frenchspacing
+    \sfcode`\.=\@m}
+
+\def\references{\thebibliography{}}
+\def\endreferences{\endthebibliography}
+\let\endbibreferences\endreferences
+
+%% default def:
+\def\bibitem{\@ifnextchar[\@lbibitem at bibitem}
+\def\@lbibitem[#1]#2{\item[\@biblabel{#1}\hfill]\if at filesw
+      {\let\protect\noexpand\immediate
+       \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
+\def\@bibitem#1{\item\if at filesw \immediate\write\@auxout
+       {\string\bibcite{#1}{\the\value{\@listctr}}}\fi\ignorespaces}
+
+%% default def, except conditional to avoid vskips for first bibitem
+%% relevant?
+\def\@donoparitem{\@noparitemfalse
+   \global\setbox\@labels\hbox{\hskip -\leftmargin
+                               \unhbox\@labels
+                                \hskip \leftmargin}\if at minipage\else
+\ifstartofbib\else
+  \@tempskipa\lastskip
+  \vskip -\lastskip \advance\@tempskipa\@outerparskip
+  \advance\@tempskipa -\parskip \vskip\@tempskipa
+\fi\fi}
+%%
+\def\@item[#1]{\if at noparitem \@donoparitem
+  \else  \if at inlabel \indent \par \fi
+         \ifhmode \unskip\unskip \par \fi
+         \if at newlist \if at nobreak \@nbitem \else
+  \ifstartofbib\else
+                      \addpenalty\@beginparpenalty
+                   \addvspace\@topsep \addvspace{-\parskip}
+\fi
+\fi
+           \else 
+\ifstartofbib\else
+\addpenalty\@itempenalty 
+\addvspace\itemsep 
+\fi
+          \fi
+    \global\@inlabeltrue
+\fi
+\everypar{\@minipagefalse
+          \global\@newlistfalse
+          \if at inlabel
+            \global\@inlabelfalse
+           {\setbox\z@\lastbox}%
+            \box\@labels
+            \penalty\z@
+          \fi
+          \if at nobreak
+            \@nobreakfalse
+            \clubpenalty \@M
+          \else
+            \clubpenalty \@clubpenalty
+            \everypar{}%
+          \fi}%
+\if at noitemarg \@noitemargfalse \if at nmbrlist
+      \refstepcounter\@listctr\fi \fi
+\sbox\@tempboxa{\makelabel{#1}}%
+\global\setbox\@labels
+ \hbox{\unhbox\@labels \hskip \itemindent
+       \hskip -\labelwidth \hskip -\labelsep
+       \ifdim \wd\@tempboxa >\labelwidth
+                \box\@tempboxa
+          \else \hbox to\labelwidth {\unhbox\@tempboxa}\fi
+       \hskip \labelsep}\global\startofbibfalse
+\ignorespaces}
+
+\newif\ifbibtonextpage
+\def\bibtonextpage{\global\bibtonextpagetrue}
+\newif\ifstartofbib
+
+\def\thebibliography#1{\vskip1sp
+\global\startofbibtrue
+\notes
+\ifgalley
+\ifjdraft
+\else
+\setonecolboxesandredefine
+\ifdim\ht\endcolsavetopinsert>1pt
+\unvbox\endcolsavetopinsert\fi
+\ifdim\ht\endcolsavebotinsert>1pt
+\unvbox\endcolsavebotinsert
+\fi\fi\fi
+%%
+\ifbibtonextpage\global\bibtonextpagefalse\eject\fi
+\vskip12pt
+\section*{References}
+\nobreak\bgroup
+\ifjdraft\large\else\footnotesize\fi%
+\list{\null}{\leftmargin .15in\labelwidth\z@\itemsep\z@\parsep\z@
+\labelsep\z@\itemindent -.15in\usecounter{enumi}
+\itemsep=0pt plus 1pt
+}
+\def\refpar{\relax}
+\def\newblock{\hskip .11em plus .33em minus .07em}
+\sloppy\clubpenalty4000\widowpenalty4000
+\sfcode`\.=1000\relax}
+
+\def\endthebibliography{
+\vskip1sp\spendlist\egroup%
+\ifjdraft\else\@sluginfo\fi}
+\def\@biblabel#1{\relax}
+
+\newif\iftriplecol
+\def\threecolthebibliography#1{\global\triplecoltrue
+\global\startofbibtrue
+\notes
+\ifgalley
+\section*{References}
+  \hsize\columnwidth \advance\hsize\columnsep
+  \advance\hsize-3\columnsep
+  \divide\hsize3
+  \linewidth\hsize 
+\else
+\ifjdraft
+\section*{References}
+\else
+\endtwocolumns
+\vskip12pt
+\columnwidth=\textwidth
+\threecolumns[\section*{References}]
+\fi\fi%% end ifgalley, end ifjdraft
+\bgroup\ifjdraft\large\else\footnotesize\fi%
+\list{\null}{\leftmargin .15in\labelwidth\z@\itemsep\z@\parsep\z@
+\labelsep\z@\itemindent -.15in\usecounter{enumi}
+\itemsep=0pt plus 1pt}
+\def\refpar{\relax}
+\def\newblock{\hskip .11em plus .33em minus .07em}
+\sloppy\clubpenalty4000\widowpenalty4000
+\sfcode`\.=1000\relax}
+
+\def\endthreecolthebibliography{\vskip1sp\spendlist\egroup%
+\ifjdraft\else\@sluginfo\fi
+\ifgalley\else
+\ifjdraft\else
+\endthreecolumns\fi\fi
+\xdef\doitnow{\write\@auxout{\string\expandafter%
+\string\gdef\string\csname\space 
+endpage\the\c at chapter\endcsname{\the\c at page}}}
+\doitnow
+\newpage
+}
+
+\def\reference{\relax\refpar}
+\def\markcite#1{#1\relax}
+
+%%%%%% Article Bibliography Using BibTeX
+
+\def\bblname#1{\def\currentfilename{#1}}
+
+\def\include#1{\relax\ifnum\@auxout=\@partaux 
+\@latex at error {\string \include \space cannot be nested}\@eha 
+\else\gdef\currfile{#1} \@include #1 \fi } 
+
+\def\articlebibliography#1{%
+{\let\thebibliography\references
+\let\endthebibliography\endreferences
+\@input {\currfile.bbl}}
+}
+
+%% 14) Acknowledgements
+
+\ackskip=6pt
+
+\def\acknowledgments{\goodbreak\vskip\ackskip
+\ifjdraft\large\else\footnotesize\fi{\bf Acknowledgments.}%
+\hskip6pt\relax\ignorespaces}%
+
+\let\acknowledgements\acknowledgments
+\let\acknowledgement\acknowledgments
+\let\acknowledgment\acknowledgments
+
+\def\endacknowledgment{\vskip1sp}
+\let\endacknowledgments\endacknowledgment
+\let\endacknowledgement\endacknowledgment
+\let\endacknowledgements\endacknowledgment
+
+%C&G 8/1/2001 addition to process @pubdate & place \published after the rec, rev, acc dates
+%
+\def\@dates{{\footnotesize
+{\rm Received}\space%
+\ifx\@recvdate\@empty\@rcvaccrule\else\@recvdate\fi%
+\ifx\@revisedate\@empty\relax\else%
+; \space{\rm revised}\space\@revisedate; \fi%
+\ifx\@accptdate\@empty\else
+\ifx\@revisedate\@empty;\fi\space{\rm accepted}\space\@accptdate\fi%
+\ifx\@pubdate\@empty.\else%
+; \space{\rm published}\space\@pubdate.\fi%
+\vskip-2pt}}
+
+
+\def\@authaddrs{\ifx\authaddr at list\@empty\relax
+\else
+{\noindent\parindent=.15in 
+\ifjdraft\large\else\small\fi\authaddr at list\vskip1sp}
+\gdef\authaddr at list{}
+\fi}
+
+\newskip\beforeendskip
+\beforeendskip=9pt plus 2pt minus 6pt
+\def\@sluginfo{\ifjdraft\else\vskip\beforeendskip
+\hrule width 4pc\fi
+\nobreak%
+{\ifjdraft\large\else\footnotesize\fi
+\clubpenalty=3000 \widowpenalty=3000
+\parskip=0pt % plus 1pt %% amyh
+\@authaddrs\par
+\ifjdraft\else
+\ifrog\else
+%\vskip\beforeendskip
+%\noindent\@dates
+\fi\fi}}
+
+\let\makecenterlines\noindent
+\let\onecolumn\newpage
+
+%%%%%%%%%%%%%%%%%%%%%%%
+
+% jgrga JOURNAL OF GEOPHYSICAL RESEARCH
+% gbc   GLOBAL BIOCHEMICAL CYCLES
+% tec   TECTONICS
+% grl   GEOPHYSICAL RESEARCH LETTERS
+% pal   PALEOCEANOGRAPHY
+% ras   RADIO SCIENCE
+% rog   REVIEWS OF GEOPHYSICS
+% wrr   Water Resources Research
+% sw    SPACE WEATHER - no cccline
+% gc	GEOCHEMISTRY, GEOPHYSICS, GEOSYSTEMS
+
+\def\shortyear#1#2#3#4{#3#4}
+\def\thecccline{%
+\ifjgrga 0148-0227\else%
+\ifgbc 0886-6236\else
+\iftec 0278-7407\else%
+\ifgrl 0094-8276\else
+\ifpal 0883-8305\else
+\ifras 0048-6604\else
+\ifrog 8755-1209\else
+\ifwrr 0043-1397
+\fi\fi\fi\fi\fi\fi\fi\fi/\expandafter\shortyear\the\year/%
+\thepaperidnumber\ifrog\else\string$\fi
+\ifjgrga9.00\else%
+\ifgbc12.00\else
+\iftec12.00\else%
+\ifgrl5.00\else
+\ifpal 12.00\else
+\ifras 11.00\else
+\ifrog\footlineitalic
+\string$15.00\else
+\ifwrr 9.00\fi\fi\fi\fi\fi\fi\fi\fi}
+
+\def\ccc#1{\xdef\thiscccline{\thecccline}
+\typeout{
+^^J^^J
+===========================================================
+^^J^^J
+ It is no longer necessary
+to type the command \string\ccc\space since ^^J
+the ccc line is automatically set for each journal.^^J^^J
+Use \string\specialccc{<new CCC line>}\space only 
+if you need to overwrite^^J
+the default CCC line
+which you can see below:^^J
+}
+\show\thiscccline
+\typeout{^^J^^J
+===========================================================
+^^J^^J}
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Using AGUTeX class options:
+%% Settings for particular journals
+%%
+%% Journals:
+%
+% jgrga JOURNAL OF GEOPHYSICAL RESEARCH
+% gbc   GLOBAL BIOCHEMICAL CYCLES
+% tec   TECTONICS
+% grl   GEOPHYSICAL RESEARCH LETTERS
+% pal   PALEOCEANOGRAPHY
+% ras   RADIO SCIENCE
+% rog   REVIEWS OF GEOPHYSICS
+% wrr   Water Resources Research
+% sw    Space Weather
+% gc	GEOCHEMISTRY, GEOPHYSICS, GEOSYSTEMS
+
+\def\NoJournalError{^^J^^J
+Please supply a journal style option:^^J
+\documentclass[<journal>]{agutex}^^J
+^^J
+Your choices are^^J
+jgrga for  JOURNAL OF GEOPHYSICAL RESEARCH^^J
+gbc  for  GLOBAL BIOCHEMICAL CYCLES^^J
+grl  for  GEOPHYSICAL RESEARCH LETTERS^^J
+pal  for  PALEOCEANOGRAPHY^^J
+ras  for  RADIO SCIENCE^^J
+rog  for  REVIEWS OF GEOPHYSICS^^J
+tec  for  TECTONICS^^J
+wrr  for WATER RESOURCES RESEARCH^^J^^J
+sw   for SPACE WEATHER^^J^^J
+gc   for GEOCHEMISTRY, GEOPHYSICS, GEOSYSTEMS^^J^^J}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+\ifjgrga %%%%%%%% Journal of Geophysical Research
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\stylecurrversion{October 1, 2001}
+\def\journalname{\uppercase{Journal of Geophysical Research}}
+
+\landscapecaptionwidth=35pc
+\skip\footins=30pt
+
+\typeout{^^J^^J
+JGRGA style option,
+\stylecurrversion,^^J
+\string\documentclass[jgrga]{AGUTeX}^^J
+``Journal of Geophysical Research'', ^^J
+Published by American Geophysical Union^^J^^J}
+
+\topmargin=-32pt
+
+\ifjdraft
+\advance\textheight-.75in 
+\footskip=.25in
+\fi
+
+\else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+\ifsw %%%%%%%% Space Weather
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\stylecurrversion{September 11, 2003}
+\def\journalname{\uppercase{Space Weather}}
+
+\landscapecaptionwidth=35pc
+\skip\footins=30pt
+
+\typeout{^^J^^J
+SW style option,
+\stylecurrversion,^^J
+\string\documentclass[sw]{AGUTeX}^^J
+``Space Weather'', ^^J
+Published by American Geophysical Union^^J^^J}
+
+\topmargin=-32pt
+
+\ifjdraft
+\advance\textheight-.75in 
+\footskip=.25in
+\fi
+
+\def\@slug{\ifgalley\hsize=\mycolumnwidth\fi
+\@makeslugcmmnt
+\vskip11pt
+\noindent
+\ifcase\@cprtype
+   \relax
+\or
+   Copyright \cpr at year\space by the \cpr at holder.
+\or
+   This paper is not subject to U.S. copyright.
+   Published in \cpr at year\space by the \cpr at holder.
+\or
+   Published in \cpr at year\space by the \cpr at holder.
+\or
+   No copyright is claimed for this article.
+\fi
+%\vskip 11\p@\noindent
+%Paper number \thepaperidnumber.
+\relax}
+
+\else
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+\ifgc %%%%%%%% Geochemistry, Geophysics, Geosystems
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\stylecurrversion{September 11, 2003}
+\def\journalname{\uppercase{Geochemistry, Geophysics, Geosystems}}
+
+\landscapecaptionwidth=35pc
+\skip\footins=30pt
+
+\typeout{^^J^^J
+SW style option,
+\stylecurrversion,^^J
+\string\documentclass[sw]{AGUTeX}^^J
+``Geochemistry, Geophysics, Geosystems'', ^^J
+Published by American Geophysical Union^^J^^J}
+
+\topmargin=-32pt
+
+\ifjdraft
+\advance\textheight-.75in 
+\footskip=.25in
+\fi
+
+\def\@slug{\ifgalley\hsize=\mycolumnwidth\fi
+\@makeslugcmmnt
+\vskip11pt
+\noindent
+\ifcase\@cprtype
+   \relax
+\or
+   Copyright \cpr at year\space by the \cpr at holder.
+\or
+   This paper is not subject to U.S. copyright.
+   Published in \cpr at year\space by the \cpr at holder.
+\or
+   Published in \cpr at year\space by the \cpr at holder.
+\or
+   No copyright is claimed for this article.
+\fi
+%\vskip 11\p@\noindent
+%Paper number \thepaperidnumber.
+\relax}
+
+\else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifgbc %%%%%%%% Global Biogochemical Cycles
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+\def\stylecurrversion{October 1, 2001}
+
+\skip\footins  26pt % 
+\landscapecaptionwidth=35pc % ??
+
+\centersinglelinetrue
+\centersingletablinetrue
+
+\textheight=692pt
+\def\journalname{\uppercase{Global Biogeochemical Cycles}}
+
+\ifjdraft
+\advance\textheight-.75in 
+\footskip=.25in
+\fi
+
+\headsep   20pt
+\columnsep=1.25pc %% other styles are 1pc, this may be mistaken
+\topmargin=-32pt
+
+\typeout{^^J^^J
+GBC style option,
+\stylecurrversion,^^J
+\string\documentclass[gbc]{AGUTeX}^^J
+``Global Biogeochemical Cycles'', ^^J
+Published by American Geophysical Union^^J^^J}
+
+\long\def\xprinttitle{\global\titletrue
+\vspace*{9pt}
+{\hsize=33pc %in specs
+\raggedright \hyphenpenalty=10000
+\parindent=0pt
+\let\thanks\titlethanks
+\def\\ {\vskip1sp}%
+\Large\baselineskip=\titlebaseline\ifjdraft\LARGE\bf\else\titlefont \fi
+\theprinttitle\vrule depth\belowtitleskip
+width0pt height 0pt
+\vskip1sp}%
+\setbox1=\hbox{\let\\ \relax\let\thanks\titlemaketemp \theprinttitle}
+\ifjdraft\large\else\normalsize\fi}
+
+\else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\iftec %%%%%%%% Tectonics
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+\def\stylecurrversion{October 1, 2001}
+
+\oddsidemargin=-10pt
+\evensidemargin=-12pt
+
+\textheight=672pt 
+\topmargin=-26pt
+\centersinglelinetrue
+\centersingletablinetrue
+
+\ifjdraft
+\advance\textheight-.75in 
+\footskip=.25in
+\fi
+
+\landscapecaptionwidth=\textheight
+\advance\landscapecaptionwidth by-\topskip
+
+
+\newskip\nostretchskip
+\nostretchskip=1sp
+\def\@dates{{\footnotesize\parskip=0pt
+\let\rm\rmreferencefont\rm
+\let\it\itreferencefont \let\bf\bfreferencefont
+({\rm Received}\space%
+\ifx\@recvdate\@empty\@rcvaccrule\else\@recvdate;%
+\vskip\nostretchskip\noindent\fi%
+\ifx\@revisedate\@empty\relax\else%
+{\rm revised}\space\@revisedate;\vskip\nostretchskip\noindent\fi%
+\ifx\@accptdate\@empty\else
+\ifx\@revisedate\@empty\fi{\rm accepted}\space%
+\@accptdate\fi%% below added oct 2, 2001
+\ifx\@pubdate\@empty.\else%
+;\vskip\nostretchskip\noindent{\rm published}\space\@pubdate.\fi)%
+}}
+
+\def\journalname{\uppercase{TECTONICS}}
+
+\typeout{^^J^^J
+TEC class option,
+\stylecurrversion,^^J
+\string\documentclass[tec]{AGUTeX}^^J
+``TECTONICS'', ^^J
+Published by American Geophysical Union^^J^^J}
+
+\belowabstractskip=6pt
+
+%% tectonics version!!!
+\def\article{\global\firstpagetrue
+\refstepcounter{chapter} % resets fig. etc. counters with
+                                      % each article. We never actually
+                                      % use the chapter counter.
+%%
+\global\saveparskip=\parskip
+\gdef\applett{}
+\global\c at appendnum=0 \global\appendonfalse
+\vskip1sp
+%%%%%%
+\ifnum\totalaffils>0
+\global\setbox\altaffilbox=\vbox{
+\ifjdraft\large\else
+\footnotesize\fi
+\hyphenpenalty=10000
+\raggedright
+\doaltaffils}
+\fi
+%%%%%%
+\ifnum\dothanks>0
+\dothanks=0
+\ifnum\thanksnum>0 \global\thanksnum=0
+\global\setbox\thanksbox=\vbox{%
+\ifjdraft\large\fi
+\parindent=6pt
+\hsize=21pc
+\loop
+\vskip1pt
+\ifnum\thanksnum<\thankscounter
+\global\advance\thanksnum by1\relax
+\vskip1sp
+\noindent\vrule height 8.5pt width0pt%
+\hskip\parindent
+\csname tempthanks\the\thanksnum\endcsname
+\vskip1sp
+\repeat
+}% end \thanksbox
+\fi\fi%
+ \ifnum\titlethanksnum>0 \global\titlethanksnum=0 
+\global\setbox\titlethanksbox=\vbox{%
+\ifjdraft\large\else\footnotesize\fi
+\raggedright
+\hyphenpenalty=10000
+\hsize=\mycolumnwidth
+\loop\ifnum\titlethanksnum<\titlethankscounter
+ \global\advance\titlethanksnum by1\relax
+\vskip1pt
+\noindent\hskip\saveparindent$^{\hbox{\footnotesize\dotitlethankssymbol}}$% 
+\csname temptitlethanks\the\titlethanksnum\endcsname
+ \repeat
+ \global\titlethanksnum=0 \global\titlethankscounter=0
+\vskip1sp
+}
+\fi %% end titlethanksnum
+\global\thanksnum=0 \global\thankscounter=0
+\global\setbox\barticle=\vbox{
+\ifjdraft\large\fi
+\hsize=\mycolumnwidth
+%
+\ifvoid\altaffilbox\else
+\unvbox\altaffilbox\vskip8pt\fi
+%
+\ifvoid\thanksbox\else
+\unvbox\thanksbox\vskip3pt\fi
+%
+\ifvoid\titlethanksbox
+\else
+\unvbox\titlethanksbox\vskip3pt\fi
+%
+\vskip1sp
+}
+\global\dothanks=0 \global\thanksnum=0
+\normalsize
+\ifdocumentationextraspace
+\vskip12pt\fi
+\vbox to6pt{\vfill}
+\vskip24pt
+\ifjdraft\draftcolumns\else
+\ifgalley\galleycolumns
+\vglue-8pt
+\else
+\global\firstsectiontrue\everypar={\global\firstsectionfalse\everypar={}}
+\twocolumns\fi\fi
+%% normal abstract
+\ifjdraft\else
+\ifx\theabstract\empty
+\else
+\vskip\aboveabstractskip%\vtop
+{\parindent=\saveparindent
+\abstractsize
+{\abstractnamefont 
+\noindent
+Abstract.}\hskip1em \relax\ifdim\belowabstractnameskip>0pt
+\vskip\belowabstractnameskip\noindent\fi
+\abstractfont
+\theabstract%
+\vskip\belowabstractskip
+}
+\fi
+%% end normal abstract
+\fi %% end ifjdraft
+%%
+\ifgalley
+\ifdim\ht\barticle<2pt
+\let\footnoterule\relax
+\skip\footins=16pt
+\savefootnotetext{
+\footnotesize
+\@slug
+}
+\else
+\skip\footins=24pt
+\savefootnotetext{\vskip-4pt
+\unvbox\barticle
+\vskip-6pt
+\footnotesize
+\@slug
+}
+\fi
+\else
+\ifjdraft
+\savefootnotetext{\large\slug at comment
+\@sluginfo}
+\ifvoid\barticle\else
+\savefootnotetext{%\vbox
+{\vskip-6pt
+\unvbox\barticle}}
+\fi
+\else
+\begin{figure}[b]
+\ifvoid\barticle
+\else
+\ifdim\ht\barticle>1pt
+\hrule width 48pt height .5pt
+\vskip1pt
+\unvbox\barticle\fi\fi
+\footnotesize
+\@slug 
+\end{figure}
+\fi% end normal
+\fi% end ifgalley
+\ifjdraft
+\global\let\normalsize\large
+\global\let\savenormalsize\large \large\fi
+%% draft abstract
+\ifjdraft
+\ifx\theabstract\empty
+\else
+\newpage
+\vskip\aboveabstractskip%\vtop
+{\parindent=\saveparindent
+\hfuzz=12pt
+\spaceskip=4pt
+\xspaceskip\spaceskip
+\hsize=\abstractwidth 
+\advance\hsize by-14pt % to compensate for hfuzz being 12pt, and a bit more
+\abstractsize
+{\abstractnamefont 
+\noindent
+Abstract.}\hskip1em \relax\ifdim\belowabstractnameskip>0pt %
+\vskip\belowabstractnameskip\noindent\fi
+\abstractfont
+\baselineskip=28pt
+\theabstract%
+\vskip\belowabstractskip
+}
+\newpage
+\fi\fi%\fi%% AH, Jan 15, 2008, added another \fi here 
+}
+
+\def\threecolthebibliography#1{%amyh feb 2002
+\global\triplecoltrue
+\global\startofbibtrue
+\notes
+\ifgalley
+\section*{References}
+  \hsize\columnwidth \advance\hsize\columnsep
+  \advance\hsize-3\columnsep
+  \divide\hsize3
+  \linewidth\hsize 
+\else
+\ifjdraft
+\section*{References}
+\else
+\endtwocolumns
+\vskip1sp
+\columnwidth=\textwidth
+\threecolumns[\section*{References}]
+\fi\fi%% end ifgalley, end ifjdraft
+\bgroup
+\ifjdraft\large\else\footnotesize\fi%
+\baselineskip=9.5pt plus .01pt minus .5pt
+\let\rm\rmreferencefont\rm
+\let\it\itreferencefont \let\bf\bfreferencefont
+\list{\null}{\leftmargin .15in\labelwidth\z@\itemsep\z@\parsep\z@
+\labelsep\z@\itemindent -.15in\usecounter{enumi}
+\itemsep=0pt plus 1pt}
+\def\refpar{\relax}
+\def\newblock{\hskip .11em plus .33em minus .07em}
+\sloppy\clubpenalty4000\widowpenalty4000
+\sfcode`\.=1000\relax}
+
+\def\endthreecolthebibliography{\vskip1sp\spendlist\egroup%
+\let\rm\rmreferencefont\rm
+\let\it\itreferencefont \let\bf\bfreferencefont
+\ifjdraft\else\@sluginfo\fi
+\ifgalley\else
+\ifjdraft\else
+\endthreecolumns\fi\fi
+\xdef\doitnow{\write\@auxout{\string\expandafter%
+\string\gdef\string\csname\space 
+endpage\the\c at chapter\endcsname{\the\c at page}}}
+\doitnow
+\newpage
+}
+
+\def\authoraddress#1{\par
+\@temptokena={\ifjdraft\large\else\footnotesize
+\let\rm\rmreferencefont\rm
+\let\it\itreferencefont \let\bf\bfreferencefont\fi
+\par\noindent\vrule height 8.5pt width0pt
+\hskip.15in\relax#1\vskip1sp}
+\@temptokenb=\expandafter{\authaddr at list}
+\xdef\authaddr at list{\the\@temptokenb\the\@temptokena}}
+\let\authoraddr=\authoraddress
+
+\let\thebibliography\threecolthebibliography
+\let\endthebibliography\endthreecolthebibliography
+
+\def\jfootline{\hbox to\textwidth{%
+\iftitle\global\titlefalse%
+\vtop to0pt{\vskip10pt
+\hbox to\textwidth{\hfill
+\foliofootfont\PutCommaIntoNumber{\c at page}\hfill}
+\vss}%
+\else\hfill\fi% end iftitle
+}% end hbox to textwidth
+}
+
+\def\endacknowledgment{\vskip-2pt}
+
+\let\endacknowledgments\endacknowledgment
+\let\endacknowledgement\endacknowledgment
+\let\endacknowledgements\endacknowledgment
+
+\else
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifwrr %%%%%%%% Water Resources Research
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
+\def\stylecurrversion{October 1, 2001}
+
+\def\journalname{\uppercase{Water Resources Research}}
+
+\topmargin=-38pt
+\oddsidemargin-6pt
+\evensidemargin=-18pt
+
+\aboveabstractskip=4pt
+\belowabstractskip=19pt
+
+\aboveauthorskip=10pt 
+
+\ackskip=18pt
+
+\ifjdraft
+\advance\textheight-.75in 
+\footskip=.25in
+\fi
+
+\typeout{^^J^^J
+WRR class option,
+\stylecurrversion,^^J
+\string\documentclass[wrr]{AGUTeX}^^J
+``Water Resources Research'', ^^J
+Published by American Geophysical Union^^J^^J}
+
+\def\thebibliography#1{\vskip1sp
+\global\startofbibtrue
+\notes
+\ifgalley
+  \ifjdraft
+  \else
+  \setonecolboxesandredefine
+      \ifdim\ht\endcolsavetopinsert>1pt
+      \unvbox\endcolsavetopinsert%
+      \fi
+           \ifdim\ht\endcolsavebotinsert>1pt
+            \unvbox\endcolsavebotinsert
+            \fi
+  \fi
+\fi
+%%
+  \ifbibtonextpage\global\bibtonextpagefalse\eject\fi
+\vskip1sp
+\section*{References}
+\nobreak\bgroup
+  \ifjdraft\large\else\footnotesize\fi%
+\list{\null}{\leftmargin .15in\labelwidth\z@\itemsep\z@\parsep\z@
+\labelsep\z@\itemindent -.15in\usecounter{enumi}
+\itemsep=0pt plus 1pt
+}
+\def\refpar{\relax}
+\def\newblock{\hskip .11em plus .33em minus .07em}
+\sloppy\clubpenalty4000\widowpenalty4000
+\sfcode`\.=1000\relax}
+
+\else
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifgrl %%  GEOPHYSICAL RESEARCH LETTERS
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+\def\stylecurrversion{October 1, 2001}
+
+\def\journalname{\uppercase{GEOPHYSICAL RESEARCH LETTERS}}
+
+% 11/2/01 C&G reinstate top margin 
+% Reset topmargin in-house when necessary
+\topmargin=-32pt
+
+% C&G OK!
+% amyh: Moved the change below to GRL section, since I didn't
+% know if 41pc was the width for all styles
+% C&G 7/12/01 \widecaptionwidth=35pc should be 41pc
+\widecaptionwidth=41pc
+
+
+\oddsidemargin-6pt
+\evensidemargin=-18pt
+
+% MLK - change GRL pagestats
+\textheight=681pt
+\textwidth=41pc
+
+
+\skip\footins=30pt
+
+\ifjdraft
+\advance\textheight-.75in 
+\footskip=.25in
+\fi
+
+\typeout{^^J^^J
+GRL class option,
+\stylecurrversion,^^J
+\string\documentclass[grl]{AGUTeX}^^J
+``Geophysical Research Letters'', ^^J
+Published by American Geophysical Union^^J^^J}
+
+\def\article{\global\firstpagetrue
+\refstepcounter{chapter} % resets fig. etc. counters with
+                                      % each article. We never actually
+                                      % use the chapter counter.
+%%
+\global\saveparskip=\parskip
+\gdef\applett{}
+\global\c at appendnum=0 \global\appendonfalse
+\vskip1sp
+%%%%%%
+\ifnum\totalaffils>0
+\global\setbox\altaffilbox=\vbox{
+\ifjdraft\large\else
+\footnotesize\fi
+\hyphenpenalty=10000
+\raggedright
+\doaltaffils}
+\fi
+%%%%%%
+\ifnum\dothanks>0
+\dothanks=0
+\ifnum\thanksnum>0 \global\thanksnum=0
+\global\setbox\thanksbox=\vbox{%
+\ifjdraft\large\fi
+\parindent=6pt
+\hsize=21pc
+\loop
+\vskip1pt
+\ifnum\thanksnum<\thankscounter
+\global\advance\thanksnum by1\relax
+\vskip1sp
+\noindent\vrule height 8.5pt width0pt%
+\hskip\parindent
+\csname tempthanks\the\thanksnum\endcsname
+\vskip1sp
+\repeat
+}% end \thanksbox
+\fi\fi%
+ \ifnum\titlethanksnum>0 \global\titlethanksnum=0 
+\global\setbox\titlethanksbox=\vbox{%
+\ifjdraft\large\else\footnotesize\fi
+\raggedright
+\hyphenpenalty=10000
+\hsize=\mycolumnwidth
+\loop\ifnum\titlethanksnum<\titlethankscounter
+ \global\advance\titlethanksnum by1\relax
+\vskip1pt
+\noindent\hskip\saveparindent$^{\hbox{\footnotesize\dotitlethankssymbol}}$% 
+\csname temptitlethanks\the\titlethanksnum\endcsname
+ \repeat
+ \global\titlethanksnum=0 \global\titlethankscounter=0
+\vskip1sp
+}
+\fi %% end titlethanksnum
+\global\thanksnum=0 \global\thankscounter=0
+\global\setbox\barticle=\vbox{
+\ifjdraft\large\fi
+\hsize=\mycolumnwidth
+%
+\ifvoid\altaffilbox\else
+\unvbox\altaffilbox\vskip8pt\fi
+%
+\ifvoid\thanksbox\else
+\unvbox\thanksbox\vskip3pt\fi
+%
+\ifvoid\titlethanksbox
+\else
+\unvbox\titlethanksbox\vskip3pt\fi
+%
+\vskip1sp
+}
+\global\dothanks=0 \global\thanksnum=0
+\normalsize
+\ifdocumentationextraspace
+\vskip12pt\fi
+\vbox to6pt{\vfill}
+%%
+%%
+\vskip12pt
+\ifjdraft\draftcolumns\else
+\ifgalley\galleycolumns
+\vglue-6pt\else
+\twocolumns\fi\fi
+%% normal abstract
+\ifjdraft\else
+\ifx\theabstract\empty
+\else
+\vskip\aboveabstractskip%\vtop
+{\parindent=\saveparindent
+\hbadness5000
+\tolerance5000
+\abstractsize
+%{\abstractnamefont 
+%\noindent
+%Abstract.}\hskip1em 
+\relax\ifdim\belowabstractnameskip>0pt
+\vskip\belowabstractnameskip\noindent\fi
+\abstractfont
+\theabstract%
+\vskip\belowabstractskip
+}
+\fi
+%% end normal abstract
+\fi %% end ifjdraft
+%
+\global\firstsectiontrue\everypar={\global\firstsectionfalse\everypar={}}
+\ifgalley
+\skip\footins=26pt
+\global\firstsectionfalse
+\ifdim\ht\barticle<2pt
+\let\footnoterule\relax
+\savefootnotetext{\vskip-4pt
+\footnotesize 
+\@slug
+}
+\else
+\savefootnotetext{\vskip-4pt
+\unvbox\barticle
+\vskip-6pt
+\footnotesize
+\@slug
+}
+\fi
+\else
+\ifjdraft
+\savefootnotetext{\large\slug at comment
+\@sluginfo}
+\ifvoid\barticle\else
+\savefootnotetext{%\vbox
+{\vskip-6pt
+\unvbox\barticle}}
+\fi
+\else
+\begin{figure}[b]
+\ifvoid\barticle
+\else
+\ifdim\ht\barticle>1pt
+\hrule width 48pt height .5pt
+\vskip1pt
+\unvbox\barticle\fi\fi
+\footnotesize
+\@slug 
+\end{figure}
+\fi\fi% end ifgalley
+\ifjdraft
+\global\let\normalsize\large
+\global\let\savenormalsize\large \large\else
+\global\let\normalsize\small \small\fi
+%% draft abstract
+\ifjdraft
+\ifx\theabstract\empty
+\else
+\newpage
+\vskip\aboveabstractskip%\vtop
+{\parindent=\saveparindent
+\hfuzz=12pt
+\spaceskip=4pt
+\xspaceskip\spaceskip
+\hsize=\abstractwidth 
+\advance\hsize by-14pt % to compensate for hfuzz being 12pt, and a bit more
+\abstractsize
+%{\abstractnamefont 
+%\noindent
+%Abstract.}\hskip1em 
+\relax\ifdim\belowabstractnameskip>0pt %
+\vskip\belowabstractnameskip\noindent\fi
+\abstractfont
+\baselineskip=28pt
+\theabstract%
+\vskip\belowabstractskip
+}
+\newpage
+\fi\fi
+}
+
+\belowabstractskip=12pt
+\else
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifpal %%  PALEOCEANOGRAPHY
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+\def\stylecurrversion{October 1, 2001}
+
+\def\journalname{\uppercase{PALEOCEANOGRAPHY}}
+
+\topmargin=-3pc
+\textheight=679pt
+\skip\footins=30pt
+
+\ifjdraft
+\advance\textheight-.75in 
+\footskip=.25in
+\fi
+
+\landscapecaptionwidth=\textheight
+\advance\landscapecaptionwidth by-\topskip
+\typeout{^^J^^J
+PAL class option,
+\stylecurrversion,^^J
+\string\documentclass[pal]{AGUTeX}^^J
+``PALEOCEANOGRAPHY'', ^^J
+Published by American Geophysical Union^^J^^J}
+
+
+\def\article{\global\firstpagetrue
+\refstepcounter{chapter} % resets fig. etc. counters with
+                                      % each article. We never actually
+                                      % use the chapter counter.
+%%
+\global\saveparskip=\parskip
+\gdef\applett{}
+\global\c at appendnum=0 \global\appendonfalse
+\vskip1sp
+%%%%%%
+\ifnum\totalaffils>0
+\global\setbox\altaffilbox=\vbox{
+\ifjdraft\large\else
+\footnotesize\fi
+\hyphenpenalty=10000
+\raggedright
+\doaltaffils}
+\fi
+%%%%%%
+\ifnum\dothanks>0
+\dothanks=0
+\ifnum\thanksnum>0 \global\thanksnum=0
+\global\setbox\thanksbox=\vbox{%
+\ifjdraft\large\fi
+\parindent=6pt
+\hsize=21pc
+\loop
+\vskip1pt
+\ifnum\thanksnum<\thankscounter
+\global\advance\thanksnum by1\relax
+\vskip1sp
+\noindent\vrule height 8.5pt width0pt%
+\hskip\parindent
+\csname tempthanks\the\thanksnum\endcsname
+\vskip1sp
+\repeat
+}% end \thanksbox
+\fi\fi%
+ \ifnum\titlethanksnum>0 \global\titlethanksnum=0 
+\global\setbox\titlethanksbox=\vbox{%
+\ifjdraft\large\else\footnotesize\fi
+\raggedright
+\hyphenpenalty=10000
+\hsize=\mycolumnwidth
+\loop\ifnum\titlethanksnum<\titlethankscounter
+ \global\advance\titlethanksnum by1\relax
+\vskip1pt
+\noindent\hskip\saveparindent$^{\hbox{\footnotesize\dotitlethankssymbol}}$% 
+\csname temptitlethanks\the\titlethanksnum\endcsname
+ \repeat
+ \global\titlethanksnum=0 \global\titlethankscounter=0
+\vskip1sp
+}
+\fi %% end titlethanksnum
+\global\thanksnum=0 \global\thankscounter=0
+\global\setbox\barticle=\vbox{
+\ifjdraft\large\fi
+\hsize=\mycolumnwidth
+%
+\ifvoid\altaffilbox\else
+\unvbox\altaffilbox\vskip8pt\fi
+%
+\ifvoid\thanksbox\else
+\unvbox\thanksbox\vskip3pt\fi
+%
+\ifvoid\titlethanksbox
+\else
+\unvbox\titlethanksbox\vskip3pt\fi
+%
+\vskip1sp
+}
+\global\dothanks=0 \global\thanksnum=0
+\normalsize
+\ifdocumentationextraspace
+\vskip12pt\fi
+\vbox to6pt{\vfill}
+%%
+%%
+\ifjdraft\draftcolumns\else
+%% normal abstract
+\ifx\theabstract\empty
+\else
+\vskip\aboveabstractskip%\vtop
+{\parindent=\saveparindent
+\hbadness5000
+\tolerance5000
+\hsize=\textwidth
+\abstractsize
+%{\abstractnamefont 
+%\noindent
+%Abstract.}\hskip1em 
+\relax\ifdim\belowabstractnameskip>0pt
+\vskip\belowabstractnameskip\noindent\fi
+\abstractfont
+\theabstract%
+\vskip\belowabstractskip
+}
+\fi
+%% end normal abstract
+\ifgalley\galleycolumns
+\vglue-14pt
+\else
+\global\firstsectiontrue\everypar={\global\firstsectionfalse\everypar={}}
+\twocolumns\fi\fi
+\ifgalley
+\ifdim\ht\barticle<2pt
+\skip\footins=18pt
+\let\footnoterule\relax
+\savefootnotetext{\vskip-4pt
+\footnotesize
+\@slug
+}
+\else
+\skip\footins=30pt
+\def\footnoterule{\kern -3\p@ \hrule 
+width 4pc %%<=== change this dimen to change width of footnote rule line
+\kern -2.6\p@}
+\savefootnotetext{\unvbox\barticle
+\vskip-6pt
+\footnotesize
+\@slug
+\vspace*{-3pt}
+}
+\fi
+\else
+\ifjdraft
+\savefootnotetext{\large\slug at comment
+%\vskip-24pt
+\@sluginfo}
+\ifvoid\barticle\else
+\savefootnotetext{%\vbox
+{\vskip-6pt
+\unvbox\barticle}}
+\fi
+\else
+\begin{figure}[b]
+\ifvoid\barticle
+\else
+\ifdim\ht\barticle>1pt
+\hrule width 48pt height .5pt
+\vskip1pt
+\unvbox\barticle\fi\fi
+\footnotesize
+\@slug 
+\end{figure}
+\fi\fi% end ifgalley
+\ifjdraft
+\global\let\normalsize\large
+\global\let\savenormalsize\large \large\else
+\global\let\normalsize\small \small\fi
+%% draft abstract
+\ifjdraft
+\ifx\theabstract\empty
+\else
+\newpage
+\vskip\aboveabstractskip%\vtop
+{\parindent=\saveparindent
+\hfuzz=12pt
+\spaceskip=4pt
+\xspaceskip\spaceskip
+\hsize=\abstractwidth 
+\advance\hsize by-14pt % to compensate for hfuzz being 12pt, and a bit more
+\abstractsize
+%{\abstractnamefont 
+%\noindent
+%Abstract.}\hskip1em 
+\relax\ifdim\belowabstractnameskip>0pt %
+\vskip\belowabstractnameskip\noindent\fi
+\abstractfont
+\baselineskip=28pt
+\theabstract%
+\vskip\belowabstractskip
+}
+\newpage
+\fi\fi
+}
+
+\newskip\nostretchskip
+\nostretchskip=1sp
+\def\@dates{{\footnotesize\parskip=0pt
+\let\rm\rmreferencefont\rm
+\let\it\itreferencefont \let\bf\bfreferencefont
+({\rm Received}\space%
+\ifx\@recvdate\@empty\@rcvaccrule\else\@recvdate;%
+\vskip\nostretchskip\noindent\fi%
+\ifx\@revisedate\@empty\relax\else%
+{\rm revised}\space\@revisedate;\vskip\nostretchskip\noindent\fi%
+\ifx\@accptdate\@empty\else
+\ifx\@revisedate\@empty\fi{\rm accepted}\space%
+\@accptdate\fi% added below oct 2, 2001
+\ifx\@pubdate\@empty.\else%
+;\vskip\nostretchskip\noindent{\rm published}\space\@pubdate.\fi)%
+
+}}
+
+\long\def\printtitle{\global\titletrue
+\vspace*{22pt}
+{\hsize=33pc %in specs
+\raggedright \hyphenpenalty=10000
+\parindent=0pt
+\let\thanks\titlethanks
+\def\\ {\vskip1sp}%
+\Large\baselineskip=\titlebaseline\ifjdraft\LARGE\bf\else\titlefont \fi
+\theprinttitle\vrule depth\belowtitleskip
+width0pt height 0pt
+\vskip1sp}%
+\setbox1=\hbox{\let\\ \relax\let\thanks\titlemaketemp \theprinttitle}
+\ifjdraft\large\else\normalsize\fi}
+
+\def\authoraddress#1{\par
+\@temptokena={\ifjdraft\large\else\footnotesize
+\let\rm\rmreferencefont\rm
+\let\it\itreferencefont \let\bf\bfreferencefont\fi
+\par\noindent\vrule height 8.5pt width0pt
+\hskip.15in\relax#1\vskip1sp}
+\@temptokenb=\expandafter{\authaddr at list}
+\xdef\authaddr at list{\the\@temptokenb\the\@temptokena}}
+\let\authoraddr=\authoraddress
+
+\def\threecolthebibliography#1{% amyh feb 2002
+\global\triplecoltrue
+\global\startofbibtrue
+\notes
+\ifgalley
+\section*{References}
+  \hsize\columnwidth \advance\hsize\columnsep
+  \advance\hsize-3\columnsep
+  \divide\hsize3
+  \linewidth\hsize 
+\else
+\ifjdraft
+\section*{References}%
+\else
+\endtwocolumns
+\vskip1sp
+\columnwidth=\textwidth
+\threecolumns[\section*{References}]%
+\fi\fi%% end ifgalley, end ifjdraft
+\bgroup
+\ifjdraft\large\else\footnotesize\fi%
+\let\rm\rmreferencefont\rm
+\let\it\itreferencefont \let\bf\bfreferencefont
+\list{\null}{\leftmargin .15in\labelwidth\z@\itemsep\z@\parsep\z@
+\labelsep\z@\itemindent -.15in\usecounter{enumi}
+\itemsep=0pt plus 1pt}
+\def\refpar{\relax}
+\def\newblock{\hskip .11em plus .33em minus .07em}
+\sloppy\clubpenalty4000\widowpenalty4000
+\sfcode`\.=1000\relax}
+
+\def\endthreecolthebibliography{\vskip1sp\spendlist
+\egroup%
+\let\rm\rmreferencefont\rm
+\let\it\itreferencefont \let\bf\bfreferencefont
+\ifjdraft\else\@sluginfo\fi
+\ifgalley\else
+\ifjdraft\else%
+\endthreecolumns\fi\fi
+\xdef\doitnow{\write\@auxout{\string\expandafter%
+\string\gdef\string\csname\space 
+endpage\the\c at chapter\endcsname{\the\c at page}}}
+\doitnow
+\newpage
+}
+
+\let\thebibliography\threecolthebibliography
+\let\endthebibliography\endthreecolthebibliography
+
+
+\def\endacknowledgment{\vskip-2pt}
+
+\let\endacknowledgments\endacknowledgment
+\let\endacknowledgement\endacknowledgment
+\let\endacknowledgements\endacknowledgment
+
+\else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifras %%  RADIO SCIENCE
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+\def\stylecurrversion{October 1, 2001}
+
+\def\journalname{Radio Science}
+
+\topmargin=-13pt
+\textheight=614pt
+
+\landscapecaptionwidth=\textheight
+\advance\landscapecaptionwidth by-\topskip
+
+\oddsidemargin=2pc
+\evensidemargin=-27pt
+
+\sectskip=17pt %plus .001pt minus2pt
+
+\typeout{^^J^^J
+RAS class option,
+\stylecurrversion,^^J
+\string\documentclass[ras]{AGUTeX}^^J
+``RADIO SCIENCE'', ^^J
+Published by American Geophysical Union^^J^^J}
+
+\textwidth=39pc
+\mycolumnwidth=19pc
+\linewidth=\mycolumnwidth
+\captionwidth=\mycolumnwidth
+\widecaptionwidth=33pc
+
+\def\acknowledgments{\goodbreak\vskip\ackskip
+\ifjdraft\large\else\small\fi{\bf Acknowledgments.}%
+\hskip6pt\relax\ignorespaces}%
+
+\def\article{\global\firstpagetrue
+\refstepcounter{chapter} % resets fig. etc. counters with
+                                      % each article. We never actually
+                                      % use the chapter counter.
+%%
+\global\saveparskip=\parskip
+\gdef\applett{}
+\global\c at appendnum=0 \global\appendonfalse
+\vskip1sp
+%%%%%%
+\ifnum\totalaffils>0
+\global\setbox\altaffilbox=\vbox{
+\ifjdraft\large\else
+\small\fi
+\hyphenpenalty=10000
+\raggedright
+\doaltaffils}
+\fi
+%%%%%%
+\ifnum\dothanks>0
+\dothanks=0
+\ifnum\thanksnum>0 \global\thanksnum=0
+\global\setbox\thanksbox=\vbox{%
+\ifjdraft\large\else\small\fi
+\parindent=6pt
+\hsize=21pc
+\loop
+\vskip1pt
+\ifnum\thanksnum<\thankscounter
+\global\advance\thanksnum by1\relax
+\vskip1sp
+\noindent\vrule height 8.5pt width0pt%
+\hskip\parindent
+\csname tempthanks\the\thanksnum\endcsname
+\vskip1sp
+\repeat
+}% end \thanksbox
+\fi\fi%
+ \ifnum\titlethanksnum>0 \global\titlethanksnum=0 
+\global\setbox\titlethanksbox=\vbox{%
+\ifjdraft\large\else\small\fi
+\raggedright
+\hyphenpenalty=10000
+\hsize=\mycolumnwidth
+\loop\ifnum\titlethanksnum<\titlethankscounter
+ \global\advance\titlethanksnum by1\relax
+\vskip1pt
+\noindent\hskip\saveparindent$^{\hbox{\footnotesize\dotitlethankssymbol}}$% 
+\csname temptitlethanks\the\titlethanksnum\endcsname
+ \repeat
+ \global\titlethanksnum=0 \global\titlethankscounter=0
+\vskip1sp
+}
+\fi %% end titlethanksnum
+\global\thanksnum=0 \global\thankscounter=0
+\global\setbox\barticle=\vbox{
+\ifjdraft\large\else\small\fi
+\hsize=\mycolumnwidth
+%
+\ifvoid\altaffilbox\else
+\unvbox\altaffilbox\vskip8pt\fi
+%
+\ifvoid\thanksbox\else
+\unvbox\thanksbox\vskip3pt\fi
+%
+\ifvoid\titlethanksbox
+\else
+\unvbox\titlethanksbox\vskip3pt\fi
+%
+\vskip1sp
+}
+\global\dothanks=0 \global\thanksnum=0
+\normalsize
+\ifdocumentationextraspace
+\vskip12pt\fi
+\vbox to6pt{\vfill}
+%%
+%%
+\ifjdraft\draftcolumns\else
+%% normal abstract
+\ifx\theabstract\empty
+\else
+\vskip\aboveabstractskip%\vtop
+{\parindent=\saveparindent
+\hbadness5000
+\tolerance5000
+\hsize=\abstractwidth \raggedright
+\abstractsize
+%{\abstractnamefont \noindent
+%Abstract.}\hskip1em 
+\relax %
+\abstractfont%
+\theabstract%
+\vskip\belowabstractskip
+}
+\begin{figure*}[b]
+\vskip-16pt
+\end{figure*}
+\fi
+%% end normal abstract
+\ifgalley\galleycolumns
+\vglue-14pt
+\else
+\twocolumns
+\global\firstsectiontrue\everypar={\global\firstsectionfalse\everypar={}}
+\fi\fi
+\ifgalley%% RAS
+\skip\footins=18pt
+\ifdim\ht\barticle < 2pt
+\let\footnoterule\relax
+\savefootnotetext{
+\footnotesize
+\@slug
+}
+\else
+\skip\footins=24pt
+\def\footnoterule{\kern -3\p@ \hrule 
+width 4pc %%<=== change this dimen to change width of footnote rule line
+\kern -2.6\p@}
+\savefootnotetext{
+\unvbox\barticle
+\footnotesize
+\@slug
+\vspace*{-12pt}
+}
+\fi
+\else
+\ifjdraft
+\savefootnotetext{\large\slug at comment
+%\vskip-24pt
+\@sluginfo}
+\ifvoid\barticle\else
+\savefootnotetext{%\vbox
+{\vskip-6pt
+\unvbox\barticle}}
+\fi
+\else
+\begin{figure}[b]
+\ifvoid\barticle
+\else
+\ifdim\ht\barticle>1pt
+\vbox{\vskip-6pt}
+\hrule width 48pt height .5pt
+\vskip1pt
+\unvbox\barticle\fi\fi
+\small
+\@slug 
+\end{figure}
+%
+\fi% end if normal
+\fi% end ifgalley
+\ifjdraft
+\global\let\normalsize\large
+\global\let\savenormalsize\large \large\fi
+%% draft abstract
+\ifjdraft
+\ifx\theabstract\empty
+\else
+\newpage
+\vskip\aboveabstractskip%\vtop
+{\parindent=\saveparindent
+\hfuzz=12pt
+\spaceskip=4pt
+\xspaceskip\spaceskip
+\hsize=\abstractwidth 
+\advance\hsize by-14pt % to compensate for hfuzz being 12pt, and a bit more
+\abstractsize
+%{\abstractnamefont 
+%\noindent
+%Abstract.}\hskip1em 
+\relax\ifdim\belowabstractnameskip>0pt %
+\vskip\belowabstractnameskip\noindent\fi
+\abstractfont
+\baselineskip=28pt
+\theabstract%
+\vskip\belowabstractskip
+}
+\newpage
+\fi\fi
+\ifdraft\else
+\abovedisplayskip 6\p@ \@plus.005\p@ \@minus1\p@
+\belowdisplayskip=\abovedisplayskip
+\fi
+}
+
+\def\jheadline{\hbox to\textwidth{\iftitle%
+\hfill\titlepageheadlinefont
+{\small\it\journalname}, Volume~\thevolume, Number~\thenumber,
+Pages \PutCommaIntoNumber{\the\c at page}\lastpage, \jourdate\hfill%
+\else\ifodd\c at page
+{\hfill\headlinesize\headtextfont\theauthors:\ \ \thetitle}%
+\hfill\llap{\foliofont\PutCommaIntoNumber{\the\c at page}}%
+\else\rlap{\foliofont\PutCommaIntoNumber{\the\c at page}}\hfill%
+{\headlinesize\headtextfont\theauthors:\ \ \thetitle}%
+\hfill\fi\fi}}
+
+\long\def\printtitle{\global\titletrue
+%
+\vspace*{7pt}
+{\hsize=33pc %in specs
+\raggedright \hyphenpenalty=10000
+\parindent=0pt
+\let\thanks\titlethanks
+\def\\ {\vskip1sp}%
+\Large\baselineskip=\titlebaseline\ifjdraft\LARGE\bf\else\titlefont \fi
+\theprinttitle\vrule depth\belowtitleskip
+width0pt height 0pt
+\vskip1sp}%
+\setbox1=\hbox{\let\\ \relax\let\thanks\titlemaketemp \theprinttitle}
+\ifjdraft\large\else\normalsize\fi}
+
+\def\thebibliography#1{\vskip1sp
+\global\startofbibtrue
+\notes
+\ifgalley
+\ifjdraft
+\else
+\setonecolboxesandredefine
+\ifdim\ht\endcolsavetopinsert>1pt
+\unvbox\endcolsavetopinsert\fi
+\ifdim\ht\endcolsavebotinsert>1pt
+\unvbox\endcolsavebotinsert
+\fi\fi\fi
+%%
+\ifbibtonextpage\global\bibtonextpagefalse\eject\fi
+\vskip3pt
+\vskip1sp
+\section*{References\relax}
+\nobreak\bgroup
+\ifjdraft\large\else\small\fi%
+\list{\null}{\leftmargin .15in\labelwidth\z@\itemsep\z@\parsep\z@
+\labelsep\z@\itemindent -.15in\usecounter{enumi}
+\itemsep=0pt plus 1pt
+}
+\def\refpar{\relax}
+\def\newblock{\hskip .11em plus .33em minus .07em}
+\sloppy\clubpenalty4000\widowpenalty4000
+\sfcode`\.=1000\relax}
+
+\def\endthebibliography{\small
+\vskip1sp\spendlist\egroup%
+\ifjdraft\else\small\@sluginfo\fi}
+\def\@biblabel#1{\relax}
+
+\def\@sluginfo{\ifjdraft\else\vskip\beforeendskip
+\hrule width 4pc\fi
+\nobreak%
+{\ifjdraft\large\else\small\fi
+\clubpenalty=3000 \widowpenalty=3000
+\parskip=0pt %plus 1pt %% amyh
+\@authaddrs\par
+\ifjdraft\else
+\vskip\beforeendskip
+\noindent\@dates\fi}}
+
+\def\@dates{{\small
+({\rm Received}\space%
+\ifx\@recvdate\@empty\@rcvaccrule\else\@recvdate\fi%
+\ifx\@revisedate\@empty\relax\else%
+; \space{\rm revised}\space\@revisedate;\\ \fi%
+\ifx\@accptdate\@empty\else
+\ifx\@revisedate\@empty;\fi\space{\rm accepted}\space%
+\@accptdate\fi
+\ifx\@pubdate\@empty.\else%
+; \space{\rm published}\space\@pubdate.\fi)%
+\vskip-2pt}}
+
+\def\@authaddrs{\ifx\authaddr at list\@empty\relax
+\else
+{\noindent\parindent=.15in 
+\ifjdraft\large\else\small\fi\authaddr at list\vskip1sp}
+\gdef\authaddr at list{}
+\fi}
+
+\def\authoraddress#1{\par
+\@temptokena={\ifjdraft\large\else\small\fi\par
+\noindent\vrule height 8.5pt width0pt
+\hskip.15in\relax#1\vskip1sp}
+\@temptokenb=\expandafter{\authaddr at list}
+\xdef\authaddr at list{\the\@temptokenb\the\@temptokena}}
+\let\authoraddr=\authoraddress
+
+%%%% end RAS
+
+\else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifrog %%  REVIEWS OF GEOPHYSICS
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+\def\stylecurrversion{Feb 9, 2008}
+%\def\stylecurrversion{November 3, 2003}
+\renewcommand\tablename{TABLE}
+\topmargin=-3pc
+\textheight=701pt
+\aboveabstractskip=27pt
+\belowabstractskip=25pt
+\belowsectionskip17pt 
+\belowsubsectskip=1pt
+
+\ifjdraft
+\advance\textheight-.75in 
+\footskip=.25in
+\fi
+
+\belowtabcaptionskip=9pt
+
+\clubpenalty=10000
+\widowpenalty=10000
+
+\def\journalname{\uppercase{REVIEWS OF GEOPHYSICS}}
+
+\def\acknowledgments{\goodbreak\vskip\ackskip
+\ifjdraft\large\else\small\baselineskip=11pt\fi%
+{\acknowledgfont ACKNOWLEDGMENTS.}%
+\acknowledgtextfont\hskip6pt\relax\ignorespaces}%
+
+\def\authorrunninghead#1{\def\theauthors{#1}}
+\let\lefthead\authorrunninghead
+
+\typeout{^^J^^J
+ROG class option,
+\stylecurrversion,^^J
+\string\documentclass[rog]{AGUTeX}^^J
+``REVIEWS OF GEOPHYSICS'', ^^J
+Published by American Geophysical Union^^J^^J}
+
+\def\jheadline{\hbox to\textwidth{\iftitle%
+\else\ifodd\c at page
+{\headlinesize\headtextfont
+%\thevolume, \thenumber\ / 
+% REVIEWS OF GEOPHYSICS
+\hfill 
+\theauthors:\ \ \thetitle}%
+\ \ {\small$\bullet$}\rlap{\ \ \foliofont\PutCommaIntoNumber{\the\c at page}}%
+\else% even numbered page
+\llap{\foliofont\PutCommaIntoNumber{\the\c at page}\ \ }{\small$\bullet$}\ \ %
+{\headlinesize\headtextfont
+\theauthors:\ \ \thetitle\hfill%\thevolume, \thenumber\ / %
+%REVIEWS OF GEOPHYSICS%
+}%
+\fi\fi}}
+
+\headsep   16pt
+
+\def\jfootline{\hbox to\textwidth{%
+\iftitle\global\titlefalse%
+\vtop to 12pt{\vss
+\hrule height 1pt
+\baselineskip=12pt
+\vskip5pt
+\hbox to\textwidth{\foliofootfont Copyright \cpr at year\ by the American
+Geophysical Union.\hfill Reviews of Geophysics, 
+\thevolume, \thenumber\ / \footlineitalic \jourdate}
+\vskip1sp
+\hbox to\textwidth{\hfill\foliofootfont
+pages \PutCommaIntoNumber{\the\c at page}\lastpage}
+\vskip1sp
+\hbox to\textwidth{\foliofootfont
+\ifx\thecccline\empty\else
+\thecccline\fi
+\hfill Paper number \thepaperidnumber
+}
+\vskip1pt
+\hbox to\textwidth{\hfill{$\bullet$}\ %
+\foliofootfont\PutCommaIntoNumber{\c at page}\ {$\bullet$}\hfill}
+}%
+\else\hfill\fi% end iftitle
+}% end hbox to textwidth
+}
+
+\def\paragraph#1{\vskip1sp
+\indent{\savenormalsize\boldmath\paragraphfont #1:\hskip12pt\relax}
+\ignorespaces}
+
+\aboveaffilskip=1pt
+\long\def\affil#1{%
+\vskip\aboveaffilskip
+\noindent\hskip\parindent\vtop{\parindent=0pt
+\hyphenpenalty=10000
+\raggedright
+\hsize=.28\textwidth
+{\let\thanks\smalltitlethanks\frenchspacing
+\ifjdraft\large\else\affilsize\affilfont\fi#1
+\vskip1sp}}
+\setbox1=\hbox{\let\thanks\titlemaketemp#1}\vskip1sp}
+
+\def\reviewauthors{\vskip\aboveauthorskip\vskip-6pt\bgroup\parindent=0pt
+\baselineskip=12pt
+\def\\ {\egroup\hbox\bgroup\affilfont\relax}
+\everycr={\noalign{\vskip12pt}}
+\halign to\hsize\bgroup
+\vtop{\ifjdraft\large\bf\else\authorfont\fi
+\hbox\bgroup##\egroup}
+\tabskip=0pt plus 1fil
+&
+\vtop{\ifjdraft\large\bf\else\authorfont\fi
+\hbox\bgroup##\egroup}
+&
+\tabskip=0pt plus 1fil
+\vtop{\ifjdraft\large\bf\else\authorfont\fi
+\hbox\bgroup##\egroup}
+\tabskip=0pt
+\cr
+}
+
+
+\def\endreviewauthors{\crcr\egroup\egroup}
+
+%% Review authors no longer to be used, instead to be handled
+%% the same as jgrga. The command below is just to disable it
+%% in case an author uses it.
+
+\let\endreviewauthors\relax
+
+\long\def\reviewauthors#1\end#2{%
+\show\reviewauthorsError
+\end{#2}}
+
+\def\reviewauthorsError{^^J^^J
+=====================================
+^^J
+\begin{reviewauthors}...\end{reviewauthors} is no longer used!
+^^J^^J
+Please use^^J^^J \authors{<authorname>%
+\altaffilmark{<number>}^^J (repeated for each author)^^J
+}^^J followed by matching 
+\altafilltext{<number>}{Affiliation Text}^^J 
+as used for the other AGU journal styles.%
+^^J
+=====================================
+^^J^^J}
+
+%%%+++
+\long\def\author#1{%
+\vskip\aboveauthorskip{
+\vskip6pt
+\noindent\hskip\parindent\vtop{\hsize=\textwidth
+\baselineskip=11pt
+\raggedright
+\hyphenpenalty=10000
+\let\thanks\smalltitlethanks
+\frenchspacing\ifjdraft\large\bf\else\authorfont\fi\noindent 
+#1\vrule width0pt depth\belowauthorskip\hss}
+\setbox1=\hbox{\let\\ \relax \let\thanks\titlemaketemp #1}}\vskip-2pt}
+
+\let\authors\author
+%% ROG
+\def\article{\global\firstpagetrue
+\refstepcounter{chapter} % resets fig. etc. counters with
+                                      % each article. We never actually
+                                      % use the chapter counter.
+%%
+\global\saveparskip=\parskip 
+\gdef\applett{}
+\global\c at appendnum=0 \global\appendonfalse
+\vskip1sp
+%%%%%%
+\ifnum\totalaffils>0
+\global\setbox\altaffilbox=\vbox{
+\ifjdraft\large\else
+\savenormalsize\fi
+\baselineskip=11pt 
+\hyphenpenalty=10000
+\raggedright
+\doaltaffils}
+\fi
+%%%%%%
+\ifnum\dothanks>0
+\dothanks=0
+\ifnum\thanksnum>0 \global\thanksnum=0
+\global\setbox\thanksbox=\vbox{%
+\ifjdraft\large\fi
+\parindent=6pt
+\hsize=21pc
+\loop
+\vskip1pt
+\ifnum\thanksnum<\thankscounter
+\global\advance\thanksnum by1\relax
+\vskip1sp
+\noindent\vrule height 8.5pt width0pt%
+\hskip\parindent
+\csname tempthanks\the\thanksnum\endcsname
+\vskip1sp
+\repeat
+}% end \thanksbox
+\fi\fi%
+ \ifnum\titlethanksnum>0 \global\titlethanksnum=0 
+\global\setbox\titlethanksbox=\vbox{%
+\ifjdraft\large\else\savenormalsize\fi
+\raggedright
+\hyphenpenalty=10000
+\hsize=\mycolumnwidth
+\loop\ifnum\titlethanksnum<\titlethankscounter
+ \global\advance\titlethanksnum by1\relax
+\vskip1pt
+\noindent\hskip\saveparindent$^{\hbox{\footnotesize\dotitlethankssymbol}}$% 
+\csname temptitlethanks\the\titlethanksnum\endcsname
+ \repeat
+ \global\titlethanksnum=0 \global\titlethankscounter=0
+\vskip1sp 
+}
+\fi %% end titlethanksnum
+\global\thanksnum=0 \global\thankscounter=0
+\global\setbox\barticle=\vbox{
+\ifjdraft\large\fi
+\hsize=\mycolumnwidth
+%
+\ifvoid\altaffilbox\else
+\unvbox\altaffilbox
+\fi
+%
+\ifvoid\thanksbox\else
+\unvbox\thanksbox\fi
+%
+\ifvoid\titlethanksbox
+\else
+\unvbox\titlethanksbox\fi
+%
+\vskip1sp %<===
+}
+\global\dothanks=0 \global\thanksnum=0
+\normalsize
+\ifdocumentationextraspace
+\vskip12pt\fi
+\vbox to6pt{\vfill}
+%%
+%%
+\ifjdraft\draftcolumns\else
+%% normal abstract
+\ifx\theabstract\empty
+\else
+\vskip\aboveabstractskip
+\twocolumns
+{\parindent=\saveparindent
+\hbadness5000
+\tolerance5000
+\abstractsize
+%{\normalsize
+%\abstractnamefont 
+%\noindent
+%Abstract.}\hskip1em%
+\baselineskip=11pt  plus .01pt %minus 1pt
+\abstractfont
+\ignorespaces\theabstract
+
+}
+\endtwocolumns
+\vskip8pt
+\hbox to\textwidth{\hfill\vrule width 3.5in height 1pt\hfill}
+\vskip\belowabstractskip
+\fi
+%% end normal abstract
+\ifgalley\galleycolumns %%ROG
+\vspace*{-17pt}
+\advance\@colroom by -48pt %% 
+\else
+\twocolumns
+\advance\@colroom by -60pt %% 
+\global\firstsectiontrue\everypar={\global\firstsectionfalse\everypar={}}
+\fi\fi
+\ifgalley%%ROG
+\ifdim\ht\barticle < 2pt
+\let\footnoterule\relax
+\else
+\skip\footins=42pt
+\savefootnotetext{\vskip-4pt
+\unvbox\barticle}%
+\fi
+\else
+\ifjdraft
+\savefootnotetext{\large\slug at comment
+\@sluginfo}
+\ifvoid\barticle\else
+\savefootnotetext{%\vbox
+{\vskip-6pt
+\unvbox\barticle}}
+\fi
+\else
+\ifdim\ht\barticle>2pt
+\begin{figure}[b]
+\vskip8pt
+\hrule width 48pt height .5pt
+\vskip2pt 
+\unvbox\barticle\vskip-1pt
+\end{figure}
+\fi% barticle has some contents
+\fi% end if normal
+\fi% end ifgalley
+\ifjdraft
+\global\let\normalsize\large
+\global\let\savenormalsize\large \large
+\else
+\global\let\normalsize\bignormalsize
+\bignormalsize
+\parskip=0pt %plus .001pt
+\fi
+%% draft abstract
+\ifjdraft
+\ifx\theabstract\empty
+\else
+\newpage
+\vskip\aboveabstractskip%\vtop
+{\parindent=\saveparindent
+\hfuzz=12pt
+\spaceskip=4pt
+\xspaceskip\spaceskip
+\hsize=\abstractwidth 
+\advance\hsize by-14pt % to compensate for hfuzz being 12pt, and a bit more
+\abstractsize
+%{\abstractnamefont 
+%\noindent
+%Abstract.}\hskip1em 
+\relax\ifdim\belowabstractnameskip>0pt %
+\vskip\belowabstractnameskip\noindent\fi
+\abstractfont
+\baselineskip=28pt
+\theabstract%
+\vskip\belowabstractskip
+}
+\newpage
+\fi\fi
+\ifjdraft\else
+\baselineskip=12pt plus .01 pt
+\fi
+}
+
+\def\title#1{\gdef\theprinttitle{\uppercase{#1}}%
+\setbox1=\hbox{\let\\ \relax\let\thanks\titlemaketemp #1}%
+\printtitle}
+
+%\def\title#1{\gdef\theprinttitle{#1}\printtitle}
+
+\long\def\printtitle{\global\titletrue
+\vglue-47pt
+{\ifjdraft\hsize=37pc\else \hsize=35pc\fi %in specs 33pc
+\raggedright \hyphenpenalty=10000
+\parindent=0pt
+\let\thanks\titlethanks
+\def\\ {\vskip1sp}%
+\LARGE
+\baselineskip=24pt\ifjdraft\LARGE\bf\else\titlefont \let\it\titleitalicfont\fi
+\theprinttitle\vrule depth\belowtitleskip
+width0pt height 0pt
+\vskip1sp}%
+\ifjdraft\large\else\normalsize\fi}
+
+\def\xxsection#1{\vskip\sectskip
+\global\sectionontrue
+\refstepcounter{section}
+\def\@currentlabel{\ifappendon\Alph{section}\else\the\c at section\fi}
+\ifsendcontents\else%
+        % hack so contents will only be sent for article with \contents
+{\let\\ \ 
+\addcontentsline{toc}{section}{\string\vskip-1pt
+\ifappendon\applett.\fi\the\c at section.\string\ \string\ {%
+\string\affilfont\space #1.}}}\fi
+% is this intentional?
+%\iffirstsection \vspace*{-6pt}\global\firstsectionfalse%
+%\else\goodbreak\vskip\sectskip\fi%
+\vtop{\hyphenpenalty=10000 
+\savenormalsize\baselineskip=12pt
+\boldmath %% makes 10pt bold math
+\noindent
+\sectionfont\ifappendon APPENDIX \Alph{section}\def\xone{#1}\ifx\xone\empty
+\else:\fi\else\thesection.\fi\nobreak\hskip8pt\relax%
+\uppercase{#1}\vskip\belowsectionskip}%
+\nobreak\global\everymath={}%
+\everypar={\global\sectiononfalse\everypar={}}\ignorespaces}
+
+\def\ssection#1#2{\vskip\sectskip\global\sectionontrue%
+\ifappendon\refstepcounter{section}\fi 
+        %% above, so that \appendix \section*{Appendix} sets equation and
+        %% figure number to A
+\vtop{\hyphenpenalty=10000 
+\savenormalsize
+\ifjdraft\baselineskip=22pt\else\baselineskip=12pt\fi
+\boldmath %% makes 10pt bold math
+\noindent\sectionfont\uppercase{#2}\vskip\belowsectionskip}%
+\nobreak\everypar={\global\sectiononfalse\everypar={}}}
+
+\def\thebibliography#1{\vskip1sp
+\global\startofbibtrue
+\notes
+\ifgalley
+\ifjdraft
+\else
+\setonecolboxesandredefine
+\ifdim\ht\endcolsavetopinsert>1pt
+\unvbox\endcolsavetopinsert\fi
+\ifdim\ht\endcolsavebotinsert>1pt
+\unvbox\endcolsavebotinsert
+\fi\fi\fi
+%%
+\ifbibtonextpage\global\bibtonextpagefalse\eject\fi
+\vskip12pt
+\section*{References}
+\nobreak\bgroup
+\ifjdraft\large\else\small\fi%
+\list{\null}{\leftmargin .15in\labelwidth\z@\itemsep\z@\parsep\z@
+\labelsep\z@\itemindent -.15in\usecounter{enumi}
+\itemsep=0pt plus 1pt
+}
+\def\refpar{\relax}
+\def\newblock{\hskip .11em plus .33em minus .07em}
+\sloppy\clubpenalty4000\widowpenalty4000
+\sfcode`\.=1000\relax}
+
+\def\endthebibliography{
+\vskip1sp\spendlist\egroup%
+\ifjdraft\else\acknowledgtextfont\baselineskip11pt plus .01pt\@sluginfo\fi}
+\def\@biblabel#1{\relax}
+
+\def\authoraddress#1{\par
+\@temptokena={\ifjdraft\large\else\small\acknowledgtextfont\fi\par\noindent\vrule height 8.5pt width0pt depth2.5pt
+\hskip.15in\relax#1\vskip1sp}
+\@temptokenb=\expandafter{\authaddr at list}
+\xdef\authaddr at list{\acknowledgtextfont\the\@temptokenb\the\@temptokena}}
+\let\authoraddr=\authoraddress
+
+\def\@sluginfo{\ifjdraft\else\vskip\beforeendskip
+\hrule width 4pc\fi
+\nobreak%
+\ifjdraft\large\else\baselineskip=11pt\acknowledgfont\fi
+\clubpenalty=3000 \widowpenalty=3000
+\parskip=0pt 
+\@authaddrs\vskip-.7pt
+}
+
+\else%% No journal style has been specified:
+\show\NoJournalError
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+
+
+%%%%%%%%%%%% 
+%% 2) Fonts
+%%    Computer Modern font information
+%%    (PostScript Font information is found in agups.sty)
+
+
+%%% Font Changes, also made in AGU-PS
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+%%
+
+%%%%%
+\def\cmtimes{cmr10 }%% used to test to see if PS fonts are
+%% being used. For sample pages and documentation.
+
+%% Computer Modern Default Fonts:
+%%
+\def\timesroman{cmr10 }
+\def\timesitalic{cmti10 }
+\def\timesbold{cmbx10 }
+\def\timesbolditalic{cmbx10 }
+\def\helvetica{cmss10 } 
+\def\helveticabold{cmssbx10 } 
+\def\helveticaboldoblique{cmssbx10 } 
+\def\optima{cmr10 }
+\def\optimaoblique{cmti10 }
+\def\optimabold{cmbx10 }
+\def\optimaboldoblique{cmbx10 } 
+\def\smallcaps{cmcsc10 }
+\def\courier{cmtt10 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%
+
+%%  Fonts For Particular Use:
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+%%
+
+\font\tenbit= \timesbolditalic at 10pt
+\font\ninebit=\timesbolditalic at 9pt
+\font\eightbit=\timesbolditalic at 8pt
+
+%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%
+\ifrog %% Reviews of Geophysics
+%% headline
+\def\headlinesize{\small}
+\font\foliofont= \optima at 9pt
+\font\headtextfont= \optima at 9pt %running head text
+\font\titlepageheadlinefont=\optima at 9pt
+\font\cccfont=\optima at 10pt
+
+%% footline
+\font\footlinefont=\optima at 9pt
+\font\footlineitalic=\optimaoblique at 9pt
+\font\foliofootfont= \optima at 9pt
+
+\let\footnotefont\rm 
+
+%% titlepage
+\def\titlebaseline{21pt}
+\newdimen\titlesize
+\titlesize=20pt %% for boldmath in title
+\font\titlefont=\optima at 18pt
+\font\titleitalicfont=\optimaoblique at 18pt
+\font\subtitlefont=\optima at 14pt
+\font\specialsectionfont=\optimabold at 16pt
+\font\authorfont=\optima at 10pt
+
+\def\affilsize{\footnotesize}
+\font\affilfont=\optimaoblique at 10pt
+\font\communicatedfont=\optimaoblique at 8pt
+\font\receivedfont=\timesroman at 8pt
+\font\dedicationfont=cmcsc10 at 8pt
+\font\titlethanksfont=\helvetica at 10pt
+\font\subtitlethanksfont=\helvetica at 8pt
+
+\def\abstractsize{\bignormalsize}
+\font\abstractfont=tir at 10.5pt
+\font\xabstractnamefont=\optimabold at 10pt
+\def\abstractnamefont{\ifjdraft\large\bf\else\xabstractnamefont\fi}
+
+\font\keywordnamefont=\timesbolditalic at 9pt
+\font\keywordfont=\timesbold at 9pt
+
+%% section heads
+\font\xsectionfont=\optimabold at 10pt % 
+\font\xsubsectionfont=\optimabold at 11pt
+\font\xsubsubsectionfont=\optimabold at 11pt %
+\font\xparagraphfont=\optimabold at 11pt
+
+\def\sectionfont{\ifjdraft\large\unskip\bf\else\xsectionfont\fi}
+\def\subsectionfont{\ifjdraft\large\unskip\bf\else\xsubsectionfont\fi}
+\def\subsubsectionfont{\ifjdraft\large\unskip\bf\else\xsubsubsectionfont\fi}
+\def\paragraphfont{\ifjdraft\large\unskip\bf\else\xparagraphfont\fi}
+
+%% caption fonts
+\gdef\captionnamefont{\ifjdraft\large\bf\else\small\bf\fi}
+\gdef\captiontextfont{\ifjdraft\large\else\small\baselineskip=10pt\fi\rm}
+\gdef\tablenamefont{\ifjdraft\large\bf\else\small\bf\fi}
+\gdef\tabletextfont{\ifjdraft\large\baselineskip=28pt\else%
+\small\baselineskip=10pt\fi\bf}
+\gdef\tabletextsize{\ifjdraft\large\baselineskip=28pt
+\def\arraystretch{2}
+\else\footnotesize\fi\rm}
+\gdef\tablenotefont{\ifjdraft\large\else\footnotesize\fi\rm}
+
+%%
+\font\acknowledgfont=\optimabold at 9pt
+\font\acknowledgtextfont=\optima at 9pt
+%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%
+\else %% Not Reviews of Geophysics, all other styles
+
+%% headline
+\def\headlinesize{\small}
+\font\foliofont= \timesroman at 10pt
+\ifwrr
+\font\headtextfont=\timesroman at 8pt
+\else
+\font\headtextfont= \timesroman at 9pt %running head text
+\fi
+\font\titlepageheadlinefont=\timesroman at 9pt
+\font\cccfont=\timesroman at 7pt
+
+%% footline
+\font\footlinefont=\helvetica at 8pt
+\font\foliofootfont= \timesroman at 10pt
+
+\let\footnotefont\rm 
+
+%% titlepage
+\def\titlebaseline{18pt}
+\newdimen\titlesize
+\titlesize=18pt %% for boldmath in title
+\font\titlefont=\timesbold at 14pt
+\font\subtitlefont=\helvetica at 12pt
+\font\specialsectionfont=\helvetica at 16pt
+\font\authorfont=\timesroman at 11pt
+
+\def\affilsize{\footnotesize}
+\font\affilfont=\timesroman at 8pt
+\font\communicatedfont=\timesitalic at 8pt
+\font\receivedfont=\timesroman at 8pt
+\font\dedicationfont=cmcsc10 at 8pt
+\font\titlethanksfont=\helvetica at 10pt
+\font\subtitlethanksfont=\helvetica at 8pt
+
+\iftec
+\font\rmreferencefont=\timesroman at 7.5pt
+\font\itreferencefont=\timesitalic at 7.5pt
+\font\bfreferencefont=\timesbold at 7.5pt
+\font\titlepageheadlinefont= \timesroman at 9pt %running head text
+\def\headlinesize{\small}
+\font\headtextfont= \timesroman at 9pt %running head text
+\def\abstractsize{\normalsize\ifjdraft\large\baselineskip=22pt\fi\relax}
+\def\abstractfont{\normalsize\ifjdraft\large\baselineskip=22pt\fi\relax}
+\def\abstractnamefont{\ifjdraft\large\bf\else\normalsize\bf\fi}
+
+\else
+\ifgrl
+
+%C&G 6/26/01 Note that abstractsize For GRL is small i.e. 9 over 11
+%NB not the Case For any other journals as remaining cases set abstractsize=normalsize 
+%(i.e. 10/12 unless defined again in code)
+\def\abstractsize{\small\ifjdraft\large\baselineskip=22pt
+\else\baselineskip=11pt\fi\relax}
+\def\abstractfont{\small\ifjdraft\large\baselineskip=22pt
+\else\baselineskip=11pt\fi\relax}
+\font\xabstractnamefont=\timesbold at 9.5pt
+\def\abstractnamefont{\ifjdraft\large\bf\else\xabstractnamefont\fi}
+
+\else
+\def\abstractsize{\normalsize\ifjdraft\large\baselineskip=22pt
+\else\baselineskip=11pt\fi\relax}
+\def\abstractfont{\normalsize\ifjdraft\large\baselineskip=22pt
+\else\baselineskip=11pt\fi\relax}
+\font\xabstractnamefont=\timesbold at 9.5pt
+\def\abstractnamefont{\ifjdraft\large\bf\else\xabstractnamefont\fi}
+
+\fi
+
+\fi%end iftec
+
+\ifpal
+\ifjdraft
+\font\rmreferencefont=\timesroman at 12pt
+\font\itreferencefont=\timesitalic at 12pt
+\font\bfreferencefont=\timesbold at 12pt
+\else
+\font\rmreferencefont=\timesroman at 7.5pt
+\font\itreferencefont=\timesitalic at 7.5pt
+\font\bfreferencefont=\timesbold at 7.5pt
+\fi
+\fi
+
+\font\keywordnamefont=\timesbolditalic at 9pt
+\font\keywordfont=\timesbold at 9pt
+
+%% section heads
+\ifras %% 
+\font\xsectionfont=\timesbold at 12pt % 
+\else
+\font\xsectionfont=\timesbold at 11pt % 
+\fi
+\font\xsubsectionfont=\timesbold at 9pt
+\font\xsubsubsectionfont=\timesbold at 9pt %
+\font\xparagraphfont=\timesbold at 9pt
+
+\def\sectionfont{\ifjdraft\large\unskip\bf\else\xsectionfont\fi}
+\def\subsectionfont{\ifjdraft\large\unskip\bf\else\xsubsectionfont\fi}
+\def\subsubsectionfont{\ifjdraft\large\unskip\bf\else\xsubsubsectionfont\fi}
+\def\paragraphfont{\ifjdraft\large\unskip\bf\else\xparagraphfont\fi}
+
+%% caption fonts
+\gdef\captionnamefont{\ifjdraft\large\bf\else\small\bf\fi}
+\gdef\captiontextfont{\ifjdraft\large\else\small\baselineskip=10pt\fi\rm}
+\gdef\tablenamefont{\ifjdraft\large\bf\else\small\bf\fi}
+% C&G 6/26/01 changes font Size from small to footnotesize (8/9) For table text
+%\gdef\tabletextfont{\ifjdraft\large\baselineskip=24pt\else\small\fi\rm}
+\gdef\tabletextfont{\ifjdraft\large\baselineskip=28pt\else\footnotesize\fi\rm}
+\gdef\tabletextsize{\ifjdraft\large\baselineskip=28pt
+\def\arraystretch{2}
+\else\footnotesize\fi\rm}
+\gdef\tablenotefont{\ifjdraft\large\else\footnotesize\fi\rm}
+
+\fi %% end test, is Reviews of Geophysics, or All other styles
+
+%% appendix
+\let\appendixfont\sectionfont
+
+%% Uppercase appendix caption?
+\global\upperappendfalse
+
+%% documentation
+\font\elevenbit=\timesbolditalic at 11pt
+%%% end of special use fonts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%% Below:
+%% Copyright 1993-1999 Patrick W Daly
+%% Max-Planck-Institut f\"ur Aeronomie
+%% Max-Planck-Str. 2
+%% D-37191 Katlenburg-Lindau
+%% Germany
+%% E-mail: daly at linmpi.mpg.de
+\def\ModuleVersion#1[#2]{}
+    \ModuleVersion{natbib}
+        [1999/05/28 7.0 (PWD)]
+\newcommand\NAT at open{[} \newcommand\NAT at close{]}
+\newcommand\NAT at sep{;} \newcommand\NAT at cmt{, }
+\newcommand\NAT at aysep{,} \newcommand\NAT at yrsep{,~}
+\def\NAT at sort{0}
+\def\NAT at nmfmt#1{{\NAT at up#1}}
+\renewcommand\@cite%
+    [3]{\ifNAT at swa\NAT@@open\if*#2*\else#2\ \fi
+        #1\if*#3*\else\NAT at cmt#3\fi\NAT@@close\else#1\fi\endgroup}
+\providecommand\@firstofone[1]{#1}
+\let\citenumfont=\relax
+\def\@citex%
+  [#1][#2]#3{%
+  \NAT at sort@cites{#3}%
+  \let\@citea\@empty
+  \@cite{\let\NAT at nm\@empty\let\NAT at year\@empty
+    \@for\@citeb:=\NAT at cite@list\do
+    {\edef\@citeb{\expandafter\@firstofone\@citeb}%
+     \if at filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
+     \@ifundefined{b@\@citeb\@extra at b@citeb}{\@citea%
+       {\reset at font\bfseries ?}\NAT at citeundefined
+                 \PackageWarning{natbib}%
+       {Citation `\@citeb' on page \thepage \space undefined}\def\NAT at date{}}%
+     {\let\NAT at last@nm=\NAT at nm\let\NAT at last@yr=\NAT at year
+     \NAT at parse{\@citeb}%
+     \ifNAT at full\let\NAT at nm\NAT at all@names\else
+       \let\NAT at nm\NAT at name\fi
+     \ifNAT at swa\ifcase\NAT at ctype
+       \if\relax\NAT at date\relax
+         \@citea\hyper at natlinkstart{\@citeb\@extra at b@citeb}%
+         \NAT at nmfmt{\NAT at nm}\NAT at date\hyper at natlinkend
+       \else
+         \ifx\NAT at last@nm\NAT at nm\NAT at yrsep
+            \ifx\NAT at last@yr\NAT at year
+              \hyper at natlinkstart{\@citeb\@extra at b@citeb}\NAT at exlab
+              \hyper at natlinkend
+            \else\unskip\
+              \hyper at natlinkstart{\@citeb\@extra at b@citeb}\NAT at date
+              \hyper at natlinkend
+            \fi
+         \else\@citea\hyper at natlinkstart{\@citeb\@extra at b@citeb}%
+           \NAT at nmfmt{\NAT at nm}%
+           \hyper at natlinkbreak{\NAT at aysep\ }{\@citeb\@extra at b@citeb}%
+           \NAT at date\hyper at natlinkend
+         \fi
+       \fi
+     \or\@citea\hyper at natlinkstart{\@citeb\@extra at b@citeb}%
+         \NAT at nmfmt{\NAT at nm}\hyper at natlinkend
+     \or\@citea\hyper at natlinkstart{\@citeb\@extra at b@citeb}%
+         \NAT at date\hyper at natlinkend
+     \or\@citea\hyper at natlinkstart{\@citeb\@extra at b@citeb}%
+         \NAT at alias\hyper at natlinkend
+     \fi \def\@citea{\NAT at sep\ }%
+     \else\ifcase\NAT at ctype
+        \if\relax\NAT at date\relax
+          \@citea\hyper at natlinkstart{\@citeb\@extra at b@citeb}%
+          \NAT at nmfmt{\NAT at nm}\hyper at natlinkend
+        \else
+         \ifx\NAT at last@nm\NAT at nm\NAT at yrsep
+            \ifx\NAT at last@yr\NAT at year
+              \hyper at natlinkstart{\@citeb\@extra at b@citeb}\NAT at exlab
+              \hyper at natlinkend
+            \else\unskip\
+              \hyper at natlinkstart{\@citeb\@extra at b@citeb}\NAT at date
+              \hyper at natlinkend
+            \fi
+         \else\@citea\hyper at natlinkstart{\@citeb\@extra at b@citeb}%
+           \NAT at nmfmt{\NAT at nm}%
+           \hyper at natlinkbreak{\ \NAT@@open\if*#1*\else#1\ \fi}%
+              {\@citeb\@extra at b@citeb}%
+           \NAT at date\hyper at natlinkend\fi
+        \fi
+       \or\@citea\hyper at natlinkstart{\@citeb\@extra at b@citeb}%
+         \NAT at nmfmt{\NAT at nm}\hyper at natlinkend
+       \or\@citea\hyper at natlinkstart{\@citeb\@extra at b@citeb}%
+         \NAT at date\hyper at natlinkend
+       \or\@citea\hyper at natlinkstart{\@citeb\@extra at b@citeb}%
+         \NAT at alias\hyper at natlinkend
+       \fi \if\relax\NAT at date\relax\def\@citea{\NAT at sep\ }%
+           \else\def\@citea{\NAT@@close\NAT at sep\ }\fi
+     \fi
+     }}\ifNAT at swa\else\if*#2*\else\NAT at cmt#2\fi
+     \if\relax\NAT at date\relax\else\NAT@@close\fi\fi}{#1}{#2}}
+\newif\ifNAT at par \NAT at partrue
+\newcommand\NAT@@open{\ifNAT at par\NAT at open\fi}
+\newcommand\NAT@@close{\ifNAT at par\NAT at close\fi}
+\newcommand\NAT at alias{\@ifundefined{al@\@citeb\@extra at b@citeb}{%
+  {\reset at font\bfseries(alias?)}\PackageWarning{natbib}
+  {Alias undefined for citation `\@citeb'
+  \MessageBreak on page \thepage}}{\@nameuse{al@\@citeb\@extra at b@citeb}}}
+\let\NAT at up\relax
+\newcommand\NAT at Up[1]{{\let\protect\@unexpandable at protect\let~\relax
+  \expandafter\NAT at deftemp#1}\expandafter\NAT at UP\NAT at temp}
+\newcommand\NAT at deftemp[1]{\xdef\NAT at temp{#1}}
+\newcommand\NAT at UP[1]{\let\@tempa\NAT at UP\ifcat a#1\MakeUppercase{#1}%
+  \let\@tempa\relax\else#1\fi\@tempa}
+\renewcommand\@biblabel[1]{\hfill}
+\AtBeginDocument{\ifx\SK at def\@undefined\else
+\ifx\SK at cite\@empty\else
+  \SK at def\@citex[#1][#2]#3{\SK@\SK@@ref{#3}\SK@@citex[#1][#2]{#3}}\fi
+\ifx\SK at citeauthor\@undefined\def\HAR at checkdef{}\else
+  \let\citeauthor\SK at citeauthor
+  \let\citefullauthor\SK at citefullauthor
+  \let\citeyear\SK at citeyear\fi
+\fi}
+\newif\ifNAT at full\NAT at fullfalse
+\newif\ifNAT at swa
+\DeclareRobustCommand\citet
+   {\begingroup\NAT at swafalse\def\NAT at ctype{0}\NAT at partrue
+     \@ifstar{\NAT at fulltrue\NAT at citetp}{\NAT at fullfalse\NAT at citetp}}
+\newcommand\NAT at citetp{\@ifnextchar[{\NAT@@citetp}{\NAT@@citetp[]}}
+\newcommand\NAT@@citetp{}
+\def\NAT@@citetp[#1]{\@ifnextchar[{\@citex[#1]}{\@citex[][#1]}}
+\DeclareRobustCommand\citep
+   {\begingroup\NAT at swatrue\def\NAT at ctype{0}\NAT at partrue
+         \@ifstar{\NAT at fulltrue\NAT at citetp}{\NAT at fullfalse\NAT at citetp}}
+\DeclareRobustCommand\cite
+    {\begingroup\def\NAT at ctype{0}\NAT at partrue\NAT at swatrue
+      \@ifstar{\NAT at fulltrue\NAT at cites}{\NAT at fullfalse\NAT at cites}}
+\newcommand\NAT at cites{\@ifnextchar [{\NAT@@citetp}{%
+     \NAT at swafalse
+    \NAT@@citetp[]}}
+\DeclareRobustCommand\citealt
+   {\begingroup\NAT at swafalse\def\NAT at ctype{0}\NAT at parfalse
+         \@ifstar{\NAT at fulltrue\NAT at citetp}{\NAT at fullfalse\NAT at citetp}}
+\DeclareRobustCommand\citealp
+   {\begingroup\NAT at swatrue\def\NAT at ctype{0}\NAT at parfalse
+         \@ifstar{\NAT at fulltrue\NAT at citetp}{\NAT at fullfalse\NAT at citetp}}
+\DeclareRobustCommand\citeauthor
+   {\begingroup\NAT at swafalse\def\NAT at ctype{1}\NAT at parfalse
+    \@ifstar{\NAT at fulltrue\NAT at citetp}{\NAT at fullfalse\NAT at citetp}}
+\DeclareRobustCommand\Citet
+   {\begingroup\NAT at swafalse\def\NAT at ctype{0}\NAT at partrue
+     \let\NAT at up\NAT at Up
+     \@ifstar{\NAT at fulltrue\NAT at citetp}{\NAT at fullfalse\NAT at citetp}}
+\DeclareRobustCommand\Citep
+   {\begingroup\NAT at swatrue\def\NAT at ctype{0}\NAT at partrue
+     \let\NAT at up\NAT at Up
+         \@ifstar{\NAT at fulltrue\NAT at citetp}{\NAT at fullfalse\NAT at citetp}}
+\DeclareRobustCommand\Citeauthor
+   {\begingroup\NAT at swafalse\def\NAT at ctype{1}\NAT at parfalse
+     \let\NAT at up\NAT at Up
+    \@ifstar{\NAT at fulltrue\NAT at citetp}{\NAT at fullfalse\NAT at citetp}}
+\DeclareRobustCommand\citeyear
+   {\begingroup\NAT at swafalse\def\NAT at ctype{2}\NAT at parfalse\NAT at citetp}
+\DeclareRobustCommand\citeyearpar
+   {\begingroup\NAT at swatrue\def\NAT at ctype{2}\NAT at partrue\NAT at citetp}
+\newcommand\citetext[1]{\NAT at open#1\NAT at close}
+\DeclareRobustCommand\citefullauthor
+   {\citeauthor*}
+\newcommand\defcitealias[2]{%
+   \@ifundefined{al@#1\@extra at b@citeb}{}
+   {\PackageWarning{natbib}{Overwriting existing alias for citation #1}}
+   \@namedef{al@#1\@extra at b@citeb}{#2}}
+\DeclareRobustCommand\citetalias{\begingroup
+   \NAT at swafalse\def\NAT at ctype{3}\NAT at parfalse\NAT at citetp}
+\DeclareRobustCommand\citepalias{\begingroup
+   \NAT at swatrue\def\NAT at ctype{3}\NAT at partrue\NAT at citetp}
+\renewcommand\nocite[1]{\@bsphack
+  \@for\@citeb:=#1\do{%
+    \edef\@citeb{\expandafter\@firstofone\@citeb}%
+    \if at filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
+    \if*\@citeb\else
+    \@ifundefined{b@\@citeb\@extra at b@citeb}{%
+       \NAT at citeundefined \PackageWarning{natbib}%
+       {Citation `\@citeb' undefined}}{}\fi}%
+  \@esphack}
+\newcommand\NAT at parse[1]{{%
+     \let\protect=\@unexpandable at protect\let~\relax
+     \let\active at prefix=\@gobble
+     \xdef\NAT at temp{\csname b@#1\@extra at b@citeb\endcsname}}%
+     \expandafter\NAT at split\NAT at temp
+     \expandafter\NAT at parse@date\NAT at date??????@@%
+}
+\newcommand\NAT at split[4]{%
+  \gdef\NAT at num{#1}\gdef\NAT at name{#3}\gdef\NAT at date{#2}%
+  \gdef\NAT at all@names{#4}%
+  \ifx\NAT at noname\NAT at all@names \gdef\NAT at all@names{#3}\fi}
+\newcommand\NAT at parse@date{}
+\def\NAT at parse@date#1#2#3#4#5#6@@{%
+  \ifnum\the\catcode`#1=11\def\NAT at year{}\def\NAT at exlab{#1}\else
+  \ifnum\the\catcode`#2=11\def\NAT at year{#1}\def\NAT at exlab{#2}\else
+  \ifnum\the\catcode`#3=11\def\NAT at year{#1#2}\def\NAT at exlab{#3}\else
+  \ifnum\the\catcode`#4=11\def\NAT at year{#1#2#3}\def\NAT at exlab{#4}\else
+    \def\NAT at year{#1#2#3#4}\def\NAT at exlab{{#5}}\fi\fi\fi\fi}
+\newcommand\NAT at ifcmd{\futurelet\NAT at temp\NAT at ifxcmd}
+\newcommand\NAT at ifxcmd{\ifx\NAT at temp\relax\else\expandafter\NAT at bare\fi}
+\def\NAT at bare#1(#2)#3(@)#4\@nil#5{%
+  \stepcounter{NAT at ctr}%
+  \NAT at wrout{\arabic {NAT at ctr}}{#2}{#1}{#3}{#5}
+}
+\newcommand\NAT at wrout[5]{%
+\if at filesw
+      {\let\protect\noexpand\let~\relax
+       \immediate
+       \write\@auxout{\string\bibcite{#5}{{#1}{#2}{{#3}}{{#4}}}}}\fi
+\ignorespaces}
+\def\NAT at noname{{}}
+\renewcommand\bibitem{%
+  \@ifnextchar[{\@lbibitem}{%
+    \stepcounter{NAT at ctr}\@lbibitem[\arabic{NAT at ctr}]}}
+\def\@lbibitem[#1]#2{%
+  \if\relax\@extra at b@citeb\relax\else
+    \@ifundefined{br@#2\@extra at b@citeb}{}{%
+     \@namedef{br@#2}{\@nameuse{br@#2\@extra at b@citeb}}}\fi
+   \@ifundefined{b@#2\@extra at b@citeb}{\def\NAT at num{}}{\NAT at parse{#2}}%
+   \item[\hfil\hyper at natanchorstart{#2\@extra at b@citeb}\@biblabel{\NAT at num}%
+    \hyper at natanchorend]%
+    \NAT at ifcmd#1(@)(@)\@nil{#2}}
+\ifx\SK at lbibitem\@undefined\else
+   \let\SK at lbibitem\@lbibitem
+   \def\@lbibitem[#1]#2{%
+     \SK at lbibitem[#1]{#2}\SK@\SK@@label{#2}\ignorespaces}\fi
+\providecommand\bibcite{}
+\renewcommand\bibcite[2]{\@ifundefined{b@#1\@extra at binfo}\relax
+     {\NAT at citemultiple
+      \PackageWarningNoLine{natbib}{Citation `#1' multiply defined}}%
+  \global\@namedef{b@#1\@extra at binfo}{#2}}
+\AtEndDocument{\NAT at swatrue\let\bibcite\NAT at testdef}
+\newcommand\NAT at testdef[2]{%
+  \def\NAT at temp{#2}\expandafter \ifx \csname b@#1\@extra at binfo\endcsname
+    \NAT at temp \else \ifNAT at swa \NAT at swafalse
+       \PackageWarningNoLine{natbib}{Citation(s) may have
+          changed.\MessageBreak
+          Rerun to get citations correct}\fi\fi}
+\newcounter{NAT at ctr}
+\let\aguthebib=\thebibliography
+\def\thebibliography#1{\aguthebib{#1}}
+\providecommand\reset at font{\relax}
+\providecommand\bibname{Bibliography}
+\providecommand\refname{References}
+\newcommand\NAT at citeundefined{\gdef \NAT at undefined {%
+    \PackageWarningNoLine{natbib}{There were undefined citations}}}
+\let \NAT at undefined \relax
+\newcommand\NAT at citemultiple{\gdef \NAT at multiple {%
+    \PackageWarningNoLine{natbib}{There were multiply defined citations}}}
+\let \NAT at multiple \relax
+\AtEndDocument{\NAT at undefined\NAT at multiple}
+\providecommand\@mkboth[2]{}
+\providecommand\MakeUppercase{\uppercase}
+\providecommand{\@extra at b@citeb}{}
+\gdef\@extra at binfo{}
+\providecommand\hyper at natanchorstart[1]{}
+\providecommand\hyper at natanchorend{}
+\providecommand\hyper at natlinkstart[1]{}
+\providecommand\hyper at natlinkend{}
+\providecommand\hyper at natlinkbreak[2]{#1}
+\AtBeginDocument{\@ifundefined{bbl at redefine}{}{%
+\let\@citex\org@@citex
+\bbl at redefine\@citex[#1][#2]#3{%
+  \@safe at activestrue\org@@citex[#1][#2]{#3}\@safe at activesfalse}%
+\bbl at redefine\NAT at testdef#1#2{%
+  \@safe at activestrue\org at NAT@testdef{#1}{#2}\@safe at activesfalse}%
+\@ifundefined{org@@lbibitem}{%
+\bbl at redefine\@lbibitem[#1]#2{%
+  \@safe at activestrue\org@@lbibitem[#1]{#2}\@safe at activesfalse}}{}%
+}}
+\ifnum\NAT at sort>0
+\newcommand\NAT at sort@cites[1]{%
+\@tempcntb\m at ne
+\let\@celt\delimiter
+\def\NAT at num@list{}%
+\def\NAT at cite@list{}%
+\def\NAT at nonsort@list{}%
+\@for \@citeb:=#1\do{\NAT at make@cite at list}%
+\edef\NAT at cite@list{\NAT at cite@list\NAT at nonsort@list}%
+\edef\NAT at cite@list{\expandafter\NAT at xcom\NAT at cite@list @@}}
+\begingroup \catcode`\_=8
+\gdef\NAT at make@cite at list{%
+     \edef\@citeb{\expandafter\@firstofone\@citeb}%
+    \@ifundefined{b@\@citeb\@extra at b@citeb}{\def\NAT at num{A}}%
+    {\NAT at parse{\@citeb}}%
+      \ifcat _\ifnum\z@<0\NAT at num _\else A\fi
+       \@tempcnta\NAT at num \relax
+       \ifnum \@tempcnta>\@tempcntb
+          \edef\NAT at num@list{\NAT at num@list \@celt{\NAT at num}}%
+          \edef\NAT at cite@list{\NAT at cite@list\@citeb,}%
+          \@tempcntb\@tempcnta
+       \else
+          \let\NAT@@cite at list=\NAT at cite@list \def\NAT at cite@list{}%
+          \edef\NAT at num@list{\expandafter\NAT at num@celt \NAT at num@list \@gobble @}%
+          {\let\@celt=\NAT at celt\NAT at num@list}%
+       \fi
+    \else
+       \edef\NAT at nonsort@list{\NAT at nonsort@list\@citeb,}%
+ \fi}
+\endgroup
+\def\NAT at celt#1{\ifnum #1<\@tempcnta
+  \xdef\NAT at cite@list{\NAT at cite@list\expandafter\NAT at nextc\NAT@@cite at list @@}%
+  \xdef\NAT@@cite at list{\expandafter\NAT at restc\NAT@@cite at list}%
+ \else
+  \xdef\NAT at cite@list{\NAT at cite@list\@citeb,\NAT@@cite at list}\let\@celt\@gobble%
+ \fi}
+\def\NAT at num@celt#1#2{\ifx \@celt #1%
+     \ifnum #2<\@tempcnta
+        \@celt{#2}%
+        \expandafter\expandafter\expandafter\NAT at num@celt
+     \else
+        \@celt{\number\@tempcnta}\@celt{#2}%
+  \fi\fi}
+\def\NAT at nextc#1,#2@@{#1,}
+\def\NAT at restc#1,#2{#2}
+\def\NAT at xcom#1,@@{#1}
+\else
+ \newcommand\NAT at sort@cites[1]{\edef\NAT at cite@list{#1}}\fi
+
+%% Figbox due to Patrick Daly, orginally in aguplus.cls package
+
+\def\figbox{\@ifstar{\let\agubox\makebox\@figbox}
+  {\let\agubox\framebox\@figbox}}
+\def\@figbox#1#2#3{\hbox to \hsize{\hfil
+  \ifx!#1!\agubox{#3}\else
+  \agubox[#1][c]{\ifx!#2!#3\else\@tempdima#2\relax
+  \divide\@tempdima by2\relax
+  \advance\@tempdima by-\fboxsep \advance\@tempdima by-\fboxrule
+  \vrule\@height\@tempdima\@depth\@tempdima\@width\z@
+  \vbox to \z@{\vss\hbox{#3}\vss}\fi}\fi\hfil}}
+
+\newcommand{\btx}{\textsc{Bib}\TeX}
+
+%%%%%%%%%%%%%% End Code from Patrick Daly %%%%%%%%%%%%%%
+
+%% Reset default values
+
+\def\resetdefaults{%
+\def\theauthors{{\footnotesize !! Please write 
+{\tt\string\lefthead\string{\string<AUTHOR NAME(s)\string>\string}}
+in file !!}}
+\def\thetitle{{\footnotesize!! Please write 
+{\tt\string\righthead\string{\string<(Shortened) Article Title\string>%
+\string}} in file !!}}
+\yearofpublication{???}
+\monthofpublication{???}
+\volume{???}
+\received{}
+\revised{}
+\accepted{}
+\gdef\thededication{}
+\gdef\theeditor{}
+\global\dothanks=0
+\global\thanksnum=0
+\global\setbox\barticle=\vbox{}
+\gdef\theabstract{}
+\gdef\thecommline{}
+\global\c at figure=0
+\global\c at table=0
+\global\appendonfalse\relax
+}
+
+\resetdefaults
+
+\def\setlastpagenum#1{\def\lastpage{--#1}}
+
+%% To make tables that continue for several pages
+%% take the width of the widest terms in the table.
+\def\settabline{\noalign{\ifjdraft\vskip-24pt\else\vskip-2ex\fi}}
+\def\settab#1{\setbox0=\hbox{#1}\hbox to\wd0{\hfill}}
+
+\def\indexterms#1{\quad\hbox{\sl {\normalsize I}NDEX 
+{\normalsize T}ERMS:}\enskip #1} 
+
+\def\abscitation#1{\hbox{\bf Citation:}{\frenchspacing\enskip #1}}
+
+\endinput
+Feb 9, 2009
+Changed name and references to name from agu2001 to agutex;
+fixed font bug in references in Paleo draft;
+changed ROG to use full width of page for author/affil, like
+jgrga, and changed running heads to not use the journal name
+and volume number.
+
+Jan 15, 2008
+Fixed gc journal option, unsnarled error left from
+earlier changes.
+
+
+Aug 3, 2005
+C Kovalick, added "gc" journal option for G-Cubed
+
+Nov 3, 2003
+M Kelly, fixed noindent in subsubsubsection titles and for all sections in rog option
+
+Oct 2, 2003
+M Kelly, added "sw" journal option for Space Weather
+Disabled cccline for Space Weather. Fonts default (as jgr).
+
+Aug 26, 2003
+M Kelly, reinstated \newpage in \endgalley command
+
+
+May 26, 2003
+Added \indexterms and \abscitation
+
+Mar 21, 2003
+Changes by M Kelly to make 8 columns galley o/p text equivalent to 4 pages CRC Layout, in length ONLY
+
+
+July 31, 2002
+Made change to @@eqncr so that labelling works right in
+eqnarray
+
+July 14, 2002
+Made change to eqnarray labelling to prevent it from being
+confused with equation labelling.
+
+May 8, 2002
+Added \settabline and \settab{} for tables that extend
+over more than one page.
+
+
+March 22, 2002
+Built in \setkeys{Gin}{draft=false} to make .eps
+print when draft option is chosen.
+
+Feb 19, 2002
+Change to \threecolthebibliography (marked `amyh feb 2002')
+to make it work right when author uses \bibliography{xxx}
+
+Feb 5, 2002
+Made change to captions so that when draft is
+used, it is the width of the full text.
+Marked: Amy, 2/05/02
+
+November 9, 2001
+Maria Kelly 
+more changes for draft option
+Removed bold style from authornames l-1536
+Increased leading for abstract to 28pt also
+
+November 5, 2001
+Maria Kelly
+Increased baselineskip for draft option to 28pt
+
+October 3, 2001
+Improvement in spacing around eqnarray
+
+Sept 27, 2001
+New command: aguleftmath, makes first line of math on the
+left margin, second line indented by 1 paragraph indent.
+
+Eqnarray aligned on left margin
+
+Mathletters changed so that equation with a,b,c can
+follow another equation with a,b,c.
+
+August, 2001
+Changes by C&G
+
+%C&G newcommand \published placed below \accepted in the cls file
+\def\published#1{\gdef\@pubdate{#1}} \published{}
+
+%C&G - addition For newcommand \published place below the equivalent for accepted
+\newskip\abovepublishededskip
+
+%C&G addition to process @pubdate & place \published after the rec, rev, acc dates
+
+
+August 2, 2001
+amyh:
+
+\parskip=0pt will help with page makeup.
+
+August 1, 2001
+amyh:
+
+Put change to wide caption width in the GRL conditional area
+in case 41pc should not be the default when used in
+other journal styles.
+
+-------
+
+6/26/01
+CHANGES BY C&G
+
+Reduced the negative elasticity in the \newcommand{\small} font from
+ -1pt to -0.25pt to solve leading problems in GRL.
+%\baselineskip=11pt plus .001pt minus 0.25pt
+But this change now removed to production.sty
+
+Changed \newcommand{\footnotesize} leading from 8/9.5 to 8/9.
+
+Increased width of two-column caption: \widecaptionwidth=35pc to 41pc for GRL
+
+Reduced fontsize from small to footnotesize (8/9) in \tabletextfont
+
diff -r 6da349163758 -r 020cfc86ea0a agutmpl.tex
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/agutmpl.tex	Mon Mar 26 17:34:10 2012 -0700
@@ -0,0 +1,553 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% AGUtmpl.tex: this template file is for articles formatted with LaTeX2e,
+% Modified July 2011
+%
+% This template includes commands and instructions
+% given in the order necessary to produce a final output that will
+% satisfy AGU requirements.
+%
+% PLEASE DO NOT USE YOUR OWN MACROS
+% DO NOT USE \newcommand, \defcommand, or \renewcommand.
+%
+% FOR FIGURES, DO NOT USE \psfrag or \subfigure.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% All questions should be e-mailed to latex at agu.org.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Step 1: Set the \documentclass
+%
+% There are two options for article format: two column (default)
+% and draft.
+%
+% PLEASE USE THE DRAFT OPTION TO SUBMIT YOUR PAPERS.
+% The draft option produces double spaced output.
+%
+% Choose the journal abbreviation for the journal you are
+% submitting to:
+
+% jgrga JOURNAL OF GEOPHYSICAL RESEARCH
+% gbc   GLOBAL BIOCHEMICAL CYCLES
+% grl   GEOPHYSICAL RESEARCH LETTERS
+% pal   PALEOCEANOGRAPHY
+% ras   RADIO SCIENCE
+% rog   REVIEWS OF GEOPHYSICS
+% tec   TECTONICS
+% wrr   WATER RESOURCES RESEARCH
+% gc    GEOCHEMISTRY, GEOPHYSICS, GEOSYSTEMS
+% sw    SPACE WEATHER
+
+% (If you are submitting to a journal other than jgrga,
+% substitute the initials of the journal for "jgrga" below.)
+
+\documentclass[draft,jgrga]{AGUTeX}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% OPTIONAL:
+% To produce a two-columned version:
+% \documentclass[jgrga]{AGUTeX}
+
+% Two-columned format can be used to estimate the number of pages
+% for the final published PDF.
+
+% PLEASE USE THE DRAFT OPTION TO SUBMIT YOUR PAPERS.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% OPTIONAL:
+% To create numbered lines:
+
+% If you don't already have lineno.sty, you can download it from
+% http://www.ctan.org/tex-archive/macros/latex/contrib/ednotes/
+% (or search the internet for lineno.sty ctan), available at TeX Archive Network (CTAN).
+% Take care that you always use the latest version.
+
+% To activate the commands, uncomment \usepackage{lineno}
+% and \linenumbers*[1]command, below:
+
+% \usepackage{lineno}
+% \linenumbers*[1]
+
+%  To add line numbers to lines with equations:
+
+%  \begin{linenomath*}
+%  \begin{equation}
+%  \end{equation}
+%  \end{linenomath*}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Figures and Tables
+%
+% When submitting articles through the GEMS system:
+% COMMENT OUT ANY COMMANDS THAT INCLUDE GRAPHICS.
+% (See FIGURES section near the end of the file.)
+%
+% DO NOT USE \psfrag or \subfigure commands.
+%
+%  Figures and tables should be placed AT THE END OF THE ARTICLE,
+%  after the references.
+%
+%  Uncomment the following command to include .eps files
+%  (comment out this line for draft format):
+%  \usepackage[dvips]{graphicx}
+%
+%  Uncomment the following command to allow illustrations to print
+%   when using Draft:
+%  \setkeys{Gin}{draft=false}
+%
+% Substitute one of the following for [dvips] above
+% if you are using a different driver program and want to
+% proof your illustrations on your machine:
+%
+% [xdvi], [dvipdf], [dvipsone], [dviwindo], [emtex], [dviwin],
+% [pctexps],  [pctexwin],  [pctexhp],  [pctex32], [truetex], [tcidvi],
+% [oztex], [textures]
+%
+% See how to enter figures and tables at the end of the article, after
+% references.
+%
+%% ------------------------------------------------------------------------ %%
+%
+%  ENTER PREAMBLE
+%
+%% ------------------------------------------------------------------------ %%
+
+% Author names in capital letters:
+\authorrunninghead{BALES ET AL.}
+
+% Shorter version of title entered in capital letters:
+\titlerunninghead{SHORT TITLE}
+
+% Author mailing address: please repeat this command for
+% each author and alphabetize authors:
+
+%\authoraddr{R. C. Bales,
+%Department of Hydrology and Water Resources, University of
+%Arizona, Harshbarger Building 11, Tucson, AZ 85721, USA.
+%(roger at hwr.arizona.edu)}
+
+%\authoraddr{J. R. McConnell, Division of Hydrologic
+%Sciences, 123 Main Street, Desert Research Institute, Reno, NV
+%89512, USA.}
+
+%\authoraddr{E. Mosley-Thompson, Department of Geography,
+%Ohio State University, 123 Orange Boulevard, Columbus, OH 43210,
+%USA.}
+
+%\authoraddr{R. Williams, Department of Space Sciences, University of
+%Michigan, 123 Brown Avenue, Ann Arbor, MI 48109, USA.}
+
+%\authoraddr{Francesco Visconti, Dipartimento di Idraulica,
+%Trasporti ed Infrastrutture Civili, Politecnico di Torino,
+%Corso Duca degli Abruzzi 24, I-10129, Torino, Italy.
+
+\begin{document}
+
+%% ------------------------------------------------------------------------ %%
+%
+%  TITLE
+%
+%% ------------------------------------------------------------------------ %%
+
+
+\title{Title of article}
+%
+% e.g., \title{Terrestrial ring current:
+% Origin, formation, and decay $\alpha\beta\Gamma\Delta$}
+%
+
+%% ------------------------------------------------------------------------ %%
+%
+%  AUTHORS AND AFFILIATIONS
+%
+%% ------------------------------------------------------------------------ %%
+
+
+%Use \author{\altaffilmark{}} and \altaffiltext{}
+
+% \altaffilmark will produce footnote;
+% matching \altaffiltext will appear at bottom of page.
+
+% \authors{R. C. Bales,\altaffilmark{1}
+% E. Mosley-Thompson,\altaffilmark{2} R. Williams,\altaffilmark{3}
+% J. R. McConnell\altaffilmark{4}, and Francesco Visconti\altaffilmark{5}}
+
+%\altaffiltext{1}{Department of Hydrology and Water Resources,
+%University of Arizona, Tucson, Arizona, USA.}
+
+%\altaffiltext{2}{Department of Geography, Ohio State University,
+%Columbus, Ohio, USA.}
+
+%\altaffiltext{3}{Department of Space Sciences, University of
+%Michigan, Ann Arbor, Michigan, USA.}
+
+%\altaffiltext{4}{Division of Hydrologic Sciences, Desert Research
+%Institute, Reno, Nevada, USA.}
+
+%\altaffiltext{5}{Dipartimento di Idraulica, Trasporti ed
+%Infrastrutture Civili, Politecnico di Torino, Turin, Italy.}
+
+%% ------------------------------------------------------------------------ %%
+%
+%  ABSTRACT
+%
+%% ------------------------------------------------------------------------ %%
+
+% >> Do NOT include any \begin...\end commands within
+% >> the body of the abstract.
+
+\begin{abstract}
+(Type abstract here)
+\end{abstract}
+
+%% ------------------------------------------------------------------------ %%
+%
+%  BEGIN ARTICLE
+%
+%% ------------------------------------------------------------------------ %%
+
+% The body of the article must start with a \begin{article} command
+%
+% \end{article} must follow the references section, before the figures
+%  and tables.
+
+\begin{article}
+
+%% ------------------------------------------------------------------------ %%
+%
+%  TEXT
+%
+%% ------------------------------------------------------------------------ %%
+
+\section{Introduction}
+(Article text here)
+
+%%% End of body of article:
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Optional Appendix goes here
+%
+% \appendix resets counters and redefines section heads
+% but doesn't print anything.
+% After typing  \appendix
+%
+% \section{Here Is Appendix Title}
+% will show
+% Appendix A: Here Is Appendix Title
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Optional Glossary or Notation section, goes here
+%
+%%%%%%%%%%%%%%
+% Glossary is only allowed in Reviews of Geophysics
+% \section*{Glossary}
+% \paragraph{Term}
+% Term Definition here
+%
+%%%%%%%%%%%%%%
+% Notation -- End each entry with a period.
+% \begin{notation}
+% Term & definition.\\
+% Second term & second definition.\\
+% \end{notation}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  ACKNOWLEDGMENTS
+
+\begin{acknowledgments}
+(Text here)
+\end{acknowledgments}
+
+%% ------------------------------------------------------------------------ %%
+%%  REFERENCE LIST AND TEXT CITATIONS
+%
+% Either type in your references using
+% \begin{thebibliography}{}
+% \bibitem{}
+% Text
+% \end{thebibliography}
+%
+% Or,
+%
+% If you use BiBTeX for your references, please produce your .bbl
+% file and copy the contents into your paper here.
+%
+% Follow these steps:
+% 1. Run LaTeX on your LaTeX file.
+%
+% 2. Run BiBTeX on your LaTeX file.
+%
+% 3. Open the new .bbl file containing the reference list and
+%   copy all the contents into your LaTeX file here.
+%
+% 4. Comment out the old \bibliographystyle and \bibliography commands.
+%
+% 5. Run LaTeX on your new file before submitting.
+%
+% AGU DOES NOT WANT a .bib or a .bbl file. Please copy in the contents of your .bbl file here.
+
+\begin{thebibliography}{}
+
+%\bibitem[{\textit{Kilby}(2008)}]{jskilby}
+%Kilby, J. S. (2008), Invention of the integrated circuit, {\it IEEE
+%Trans. Electron Devices,} \textit{23}, 648--650.
+
+%\bibitem[{\textit{Kilby et al.}(2008)}]{jskilbye}
+%Kilby, J. S., S. Smith, and R. Jones (2008), Invention of the
+%integrated circuit, {\it IEEE Trans. Electron Devices,} \textit{23},
+%648--650.
+
+\end{thebibliography}
+
+%Reference citation examples:
+
+%...as shown by \textit{Kilby} [2008].
+%...as shown by {\textit  {Lewin}} [1976], {\textit  {Carson}} [1986], {\textit  {Bartholdy and Billi}} [2002], and {\textit  {Rinaldi}} [2003].
+%...has been shown [\textit{Kilby et al.}, 2008].
+%...has been shown [{\textit  {Lewin}}, 1976; {\textit  {Carson}}, 1986; {\textit  {Bartholdy and Billi}}, 2002; {\textit  {Rinaldi}}, 2003].
+
+
+%...as shown by \citet{jskilby}.
+%...as shown by \citet{lewin76}, \citet{carson86}, \citet{bartoldy02}, and \citet{rinaldi03}.
+%...has been shown \citep{jskilbye}.
+%...has been shown \citep{lewin76,carson86,bartoldy02,rinaldi03}.
+%
+% Please use ONLY \citet and \citep for reference citations.
+% DO NOT use other cite commands (e.g., \cite, \citeyear, \nocite, \citealp, etc.).
+
+%% ------------------------------------------------------------------------ %%
+%
+%  END ARTICLE
+%
+%% ------------------------------------------------------------------------ %%
+
+\end{article}
+
+%% Enter Figures and Tables here:
+
+% When submitting articles through the GEMS system:
+% COMMENT OUT ANY COMMANDS THAT INCLUDE GRAPHICS.
+%
+% FOR FIGURES, DO NOT USE \psfrag or \subfigure commands.
+%
+% Figure captions go below the figure.
+% Table titles go above tables; all other caption information
+%  should be placed in footnotes below the table.
+
+% DRAFT figure/table, including eps graphics
+%
+% \begin{figure}
+% \noindent\includegraphics[width=20pc]{samplefigure.eps}
+% \caption{Caption text here}
+% \end{figure}
+% \end{document}
+%
+% \begin{table}
+% \caption{}
+% \end{table}
+%
+% ---------------
+% TWO-COLUMN figure/table
+%
+% \begin{figure*}
+% \noindent\includegraphics[width=39pc]{samplefigure.eps}
+% \caption{Caption text here}
+% \end{figure*}
+%
+% \begin{table*}
+% \caption{Caption text here}
+% \end{table*}
+%
+% ---------------
+% EXAMPLE TABLE
+%
+%\begin{table}
+%\caption{Time of the Transition Between Phase 1 and Phase 2\tablenotemark{a}}
+%\centering
+%\begin{tabular}{l c}
+%\hline
+% Run  & Time (min)  \\
+%\hline
+%  $l1$  & 260   \\
+%  $l2$  & 300   \\
+%  $l3$  & 340   \\
+%  $h1$  & 270   \\
+%  $h2$  & 250   \\
+%  $h3$  & 380   \\
+%  $r1$  & 370   \\
+%  $r2$  & 390   \\
+%\hline
+%\end{tabular}
+%\tablenotetext{a}{Footnote text here.}
+%\end{table}
+
+% See below for how to make landscape/sideways figures or tables.
+
+\end{document}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+More Information and Advice:
+
+%% ------------------------------------------------------------------------ %%
+%
+%  SECTION HEADS
+%
+%% ------------------------------------------------------------------------ %%
+
+% Capitalize the first letter of each word (except for
+% prepositions, conjunctions, and articles that are
+% three or fewer letters).
+
+% AGU follows standard outline style; therefore, there cannot be a section 1 without
+% a section 2, or a section 2.3.1 without a section 2.3.2.
+% Please make sure your section numbers are balanced.
+% ---------------
+% Level 1 head
+%
+% Use the \section{} command to identify level 1 heads;
+% type the appropriate head wording between the curly
+% brackets, as shown below.
+%
+%An example:
+%\section{Level 1 Head: Introduction}
+%
+% ---------------
+% Level 2 head
+%
+% Use the \subsection{} command to identify level 2 heads.
+%An example:
+%\subsection{Level 2 Head}
+%
+% ---------------
+% Level 3 head
+%
+% Use the \subsubsection{} command to identify level 3 heads
+%An example:
+%\subsubsection{Level 3 Head}
+%
+%---------------
+% Level 4 head
+%
+% Use the \subsubsubsection{} command to identify level 3 heads
+% An example:
+%\subsubsubsection{Level 4 Head} An example.
+%
+%% ------------------------------------------------------------------------ %%
+%
+%  IN-TEXT LISTS
+%
+%% ------------------------------------------------------------------------ %%
+%
+% Do not use bulleted lists; enumerated lists are okay.
+% \begin{enumerate}
+% \item
+% \item
+% \item
+% \end{enumerate}
+%
+%% ------------------------------------------------------------------------ %%
+%
+%  EQUATIONS
+%
+%% ------------------------------------------------------------------------ %%
+
+% Single-line equations are centered.
+% Equation arrays will appear left-aligned.
+
+Math coded inside display math mode \[ ...\]
+ will not be numbered, e.g.,:
+ \[ x^2=y^2 + z^2\]
+
+ Math coded inside \begin{equation} and \end{equation} will
+ be automatically numbered, e.g.,:
+ \begin{equation}
+ x^2=y^2 + z^2
+ \end{equation}
+
+% IF YOU HAVE MULTI-LINE EQUATIONS, PLEASE
+% BREAK THE EQUATIONS INTO TWO OR MORE LINES
+% OF SINGLE COLUMN WIDTH (20 pc, 8.3 cm)
+% using double backslashes (\\).
+
+% To create multiline equations, use the
+% \begin{eqnarray} and \end{eqnarray} environment
+% as demonstrated below.
+\begin{eqnarray}
+  x_{1} & = & (x - x_{0}) \cos \Theta \nonumber \\
+        && + (y - y_{0}) \sin \Theta  \nonumber \\
+  y_{1} & = & -(x - x_{0}) \sin \Theta \nonumber \\
+        && + (y - y_{0}) \cos \Theta.
+\end{eqnarray}
+
+%If you don't want an equation number, use the star form:
+%\begin{eqnarray*}...\end{eqnarray*}
+
+% Break each line at a sign of operation
+% (+, -, etc.) if possible, with the sign of operation
+% on the new line.
+
+% Indent second and subsequent lines to align with
+% the first character following the equal sign on the
+% first line.
+
+% Use an \hspace{} command to insert horizontal space
+% into your equation if necessary. Place an appropriate
+% unit of measure between the curly braces, e.g.
+% \hspace{1in}; you may have to experiment to achieve
+% the correct amount of space.
+
+
+%% ------------------------------------------------------------------------ %%
+%
+%  EQUATION NUMBERING: COUNTER
+%
+%% ------------------------------------------------------------------------ %%
+
+% You may change equation numbering by resetting
+% the equation counter or by explicitly numbering
+% an equation.
+
+% To explicitly number an equation, type \eqnum{}
+% (with the desired number between the brackets)
+% after the \begin{equation} or \begin{eqnarray}
+% command.  The \eqnum{} command will affect only
+% the equation it appears with; LaTeX will number
+% any equations appearing later in the manuscript
+% according to the equation counter.
+%
+
+% If you have a multiline equation that needs only
+% one equation number, use a \nonumber command in
+% front of the double backslashes (\\) as shown in
+% the multiline equation above.
+
+%% ------------------------------------------------------------------------ %%
+%
+%  LANDSCAPE/SIDEWAYS FIGURE AND TABLE EXAMPLES
+%
+%% ------------------------------------------------------------------------ %%
+%
+% For figures, add \usepackage{lscape} to the file and the landscape.sty style file
+% to the paper folder.
+%
+% \begin{figure*}[p]
+% \begin{landscapefigure*}
+% Illustration here.
+% \caption{caption here}
+% \end{landscapefigure*}
+% \end{figure*}
+%
+% For tables, add \usepackage{rotating} to the paper and add the rotating.sty file to the folder.
+%
+% AGU prefers the use of {sidewaystable} over {landscapetable} as it causes fewer problems.
+%
+% \begin{sidewaystable}
+% \caption{}
+% \begin{tabular}
+% Table layout here.
+% \end{tabular}
+% \end{sidewaystable}
+%
+%
+
diff -r 6da349163758 -r 020cfc86ea0a bssa.cls
--- a/bssa.cls	Tue Oct 25 17:35:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,372 +0,0 @@
-%%
-%% bssa.cls       Style for BSSA articles
-%%
-%%
-%% Usage: \documentclass[linenumbers,draftstyle]{bssa}
-%%
-%% This class is based on the generic article class, and provides the 
-%% correct formatting for articles submitted to the Bulletin of the 
-%% Seismological Society of America
-%% 
-% ==================================================================
-\NeedsTeXFormat{LaTeX2e}[1994/06/01]
-\ProvidesClass{bssa}
-              [2000/02/23 v0.1 BSSA Article class]
-
-% ------------------------------------------------------------------
-% Define actions for style options
-\newif\ifdraftstyle
-\newif\iftwocolumn
-\newif\iflinenumbers
-\twocolumnfalse
-\linenumbersfalse
-\DeclareOption{draftstyle}{\draftstyletrue}
-\DeclareOption{linenumbers}{\linenumberstrue}
-\ProcessOptions*
-% ------------------------------------------------------------------
-% Load article class
-% Use 12pt font and oneside options
-\LoadClass[10pt,oneside]{article}
-%
-% ------------------------------------------------------------------
-% Basic formatting
-\setlength{\parindent}{0.25in}
-\setlength{\parskip}{0pt}
-%
-% ------------------------------------------------------------------
-% Bibliography
-\renewcommand{\refname}{References}
-\RequirePackage{chicagoComma}
-\bibliographystyle{chicagoAA}
-\renewcommand{\cite}{\shortcite}
-\renewcommand{\citeN}{\shortciteN}
-\renewcommand{\citeNP}{\shortciteNP}
-\renewcommand{\citeANP}{\shortciteANP}
-\newcommand{\bibfontsize}{\normalsize}
-%
-% ------------------------------------------------------------------
-% Short title
-\def\shorttitle#1{\gdef\@shorttitle{#1}}
-\def\@shorttitle{\@title}
-% Affiliation
-\newcommand{\makeaffiliation}{%
-  \vspace{\baselineskip}\noindent\bibfontsize\@affiliation\par\normalsize}
-\def\affiliation#1{\gdef\@affiliation{#1}}
-\def\@affiliation{\@latex at warning@no at line{No \noexpand\affiliation given}}
-% Bibliography
-\renewenvironment{thebibliography}[1]
-{\section*{\refname\@mkboth{\MakeUppercase{\refname}}
-    {\MakeUppercase{\refname}}}%
-  \list{{\@arabic{enumi}}}%
-  {\settowidth\labelwidth{#1}%
-    \leftmargin\labelwidth
-    \advance\leftmargin\bibindent
-    \itemindent -\bibindent
-    \listparindent \itemindent
-    \parsep \z@
-    \usecounter{enumi}}
-  \def\newblock{}
-  \sloppy
-  \sfcode`\.=1000\relax\bibfontsize}
-{\def\@noitemerr
-  {\@latex at warning{Empty `thebibliography' environment}}%
-  \endlist
-}
-%
-%
-% ------------------------------------------------------------------
-% Title page
-\newcommand{\makelongtitle}{%
-  {\noindent \LARGE \@title \par}%
-  \vspace*{18pt}%
-  {\noindent \Large \@author \par}%
-  \vspace*{2in}%
-  \newpage}  
-%
-% ------------------------------------------------------------------
-% Title on first page
-\newcommand{\makeshorttitle}{%
-  {\centering\LARGE \@title \par}%
-  \vspace{6pt}%
-  {\centering\Large by \@author \par}
-  \vspace{18pt}%
-  {\centering\Large \@date \par}%
-  {\centering\large For submission to BSSA \par}
-  \vspace{18pt}}
-%
-%
-% ------------------------------------------------------------------
-% Abstract
-\renewenvironment{abstract}{%
-  \begin{list}{}{
-      \setlength{\leftmargin}{0.9375in}
-      \setlength{\rightmargin}{0.875in}}
-  \item[]  {\Large Abstract}
-}
-  {\end{list}\vspace{12pt}}
-%
-% ------------------------------------------------------------------
-% Data and Resources
-\newenvironment{data}{%
-  \section{Data and Resources}\bibfontsize}{%
-  \par\normalsize}
-%
-% ------------------------------------------------------------------
-% Acknowledgments
-\newenvironment{acknowledgments}{%
-  \section{Acknowledgments}\bibfontsize}{%
-  \par\normalsize}
-%
-% ------------------------------------------------------------------
-% Section Headings
-%
-% don't number sections
-\setcounter{secnumdepth}{-2}
-%
-\renewcommand{\section}{\@startsection%
-  {section}% name
-  {1}% level
-  {0pt}% indent
-  {12pt}% beforeskip
-  {8pt}% afterskip
-  {\normalfont\large\centering}}
-%
-\renewcommand{\subsection}{\@startsection%
-  {subsection}% name
-  {2}% level
-  {\parindent}% indent
-  {12pt}% beforeskip
-  {6pt}% afterskip
-  {\normalfont\normalsize}}
-%
-\renewcommand{\subsubsection}{\@startsection%
-  {subsubsection}% name
-  {3}% level
-  {0pt}% indent
-  {12pt}% beforeskip
-  {0.01pt}% afterskip
-  {\normalfont\normalsize}}
-%
-\renewcommand{\paragraph}{\@startsection%
-  {paragraph}% name
-  {4}% level
-  {0pt}% indent
-  {12pt}% beforeskip
-  {0.01pt}% afterskip
-  {\normalfont\itshape\normalsize}}
-%
-% Appendices
-\newcommand{\appendixsec}[1]{\section*{Appendix\\#1}}
-%
-%
-\newcommand{\tabnotes}[1]{%
-  \vspace*{-6pt}
-  \begin{center}
-    \begin{minipage}{6.375in}
-      \sbox{\@tempboxa}{\small #1}%
-      \ifdim \wd\@tempboxa > \linewidth%
-        \begin{minipage}{\linewidth}{\small #1}\end{minipage}% more than one line
-      \else
-        {\small\centering #1}%
-      \fi
-      \vspace*{\belowcaptionskip}
-    \end{minipage}
-  \end{center}}
-%
-% ------------------------------------------------------------------
-% Figure captions
-\newcommand{\@makefigcaption}[2]{%
-  \begin{center}
-    \vspace*{\abovecaptionskip}
-    \begin{minipage}{6.375in}
-      \sbox{\@tempboxa}{{\normalsize #1.} {\small #2}}%
-      \ifdim \wd\@tempboxa > \linewidth%
-      {{\normalsize #1.} {\small #2}}\par % more than one line
-      \else
-      \begin{center}{\normalsize #1.} {\small #2}\end{center}%
-      \fi
-      \vspace*{-4pt}
-    \end{minipage}
-  \end{center}}
-% 
-% ------------------------------------------------------------------
-% Table captions
-\newcommand{\@maketabcaption}[2]{%
-  \begin{center}
-    \begin{minipage}{6.375in}
-      \sbox{\@tempboxa}{\small #2}%
-      \ifdim \wd\@tempboxa > \linewidth%
-      \begin{center}{\normalsize #1}\par\end{center}
-      {\small #2}\par% more than one line
-      \else
-      \begin{center}{\normalsize #1}\par{\small #2}\end{center}%
-      \fi
-    \end{minipage}
-    \vspace*{-6pt}
-  \end{center}}
-%
-%
-\ifdraftstyle
-% ==================================================================
-% DRAFTSTYLE
-% ------------------------------------------------------------------
-% Basic page layout
-\setlength{\textheight}{9.5in}
-\setlength{\textwidth}{17.5cm}
-\setlength{\topmargin}{-40pt}
-\setlength{\headheight}{16pt}
-\setlength{\headsep}{4pt}
-\setlength{\oddsidemargin}{-5.4mm}
-\setlength{\footskip}{18pt}
-%
-\setlength{\floatsep}{0pt}
-\setlength{\textfloatsep}{0pt}
-\setlength{\intextsep}{12pt}
-\setlength{\abovecaptionskip}{-8pt}
-\setlength{\belowcaptionskip}{6pt}
-%
-\setlength{\parindent}{6mm}
-\setlength{\parskip}{0pt}
-%
-% ------------------------------------------------------------------
-% Font Sizes
-\renewcommand{\LARGE}{\@setfontsize\LARGE{14.4}{18}}
-\renewcommand{\Large}{\@setfontsize\Large{12}{14.5}}
-\renewcommand{\large}{\@setfontsize\large{10.95}{13.6}}
-\renewcommand{\normalsize}{\@setfontsize\normalsize{10}{12}}
-\renewcommand{\small}{\@setfontsize\small{9}{10}}
-\renewcommand{\footnotesize}{\@setfontsize\footnotesize{8}{9.5}}
-%
-% ------------------------------------------------------------------
-% PS fonts
-\RequirePackage{times}
-\RequirePackage{mathptm}
-% ------------------------------------------------------------------
-% Title on first page
-\renewcommand{\maketitle}{\makeshorttitle\thispagestyle{plain}}
-% ------------------------------------------------------------------
-% Page Headings
-%
-\RequirePackage{fancyhdr}
-\renewcommand{\headrulewidth}{0pt}
-\lhead{\footnotesize\itshape \@shorttitle}
-\rhead{\footnotesize \thepage}
-\lfoot{\footnotesize For submission to BSSA}
-\rfoot{DRAFT \footnotesize \today}
-\cfoot{}
-\pagestyle{fancy}
-%
-% ------------------------------------------------------------------
-% Two Columns
-\renewenvironment{figure}{\@dblfloat{figure}}{\end at dblfloat}
-\renewenvironment{table}{\@dblfloat{table}}{\end at dblfloat}
-\RequirePackage{multicol}
-\twocolumntrue
-\setlength{\columnsep}{6mm}
-%
-% ------------------------------------------------------------------
-% Equation spacing
-\setlength{\abovedisplayskip}{6pt}
-\setlength{\belowdisplayskip}{6pt}
-\setlength{\abovedisplayshortskip}{6pt}
-\setlength{\belowdisplayshortskip}{6pt}
-%
-% ------------------------------------------------------------------
-% Figure captions
-\renewcommand{\figure}{\let\@makecaption\@makefigcaption\@dblfloat{figure}}
-%
-% ------------------------------------------------------------------
-% Table captions
-\renewcommand{\table}{\let\@makecaption\@maketabcaption\@dblfloat{table}}
-
-% ------------------------------------------------------------------
-% Reformat bibliography
-\renewcommand{\bibfontsize}{\footnotesize}
-%
-% END DRAFT STYLE
-\else
-% ==================================================================
-% SUBMISSION STYLE
-% ------------------------------------------------------------------
-% Basic page layout
-\setlength{\textheight}{9.0in}
-\setlength{\textwidth}{6.5in}
-\setlength{\topmargin}{0pt}
-\setlength{\headheight}{0pt}
-\setlength{\headsep}{0pt}
-\setlength{\oddsidemargin}{0.0in}
-%
-\setlength{\floatsep}{12pt}
-\setlength{\textfloatsep}{12pt}
-\setlength{\intextsep}{12pt}
-\setlength{\abovecaptionskip}{-6pt}
-\setlength{\belowcaptionskip}{12pt}
-%
-\setlength{\parindent}{0.25in}
-\setlength{\parskip}{6pt}
-%
-% ------------------------------------------------------------------
-% PS fonts
-\RequirePackage{times}
-\RequirePackage{mathptm}
-%
-% ------------------------------------------------------------------
-% Title on first page
-% Use title page and title on first page
-\renewcommand{\maketitle}{\makeshorttitle}
-\pagestyle{plain}
-%
-% ------------------------------------------------------------------
-% Abstract
-\renewenvironment{abstract}{%
-  \begin{list}{}{}
-  \item[]  {\Large Abstract}
-}
-  {\end{list}\vspace{12pt}}
-%
-% ------------------------------------------------------------------
-% Figure captions
-\renewcommand{\figure}{\let\@makecaption\@makefigcaption\@float{figure}}
-%
-% ------------------------------------------------------------------
-% Table captions
-\renewcommand{\table}{\let\@makecaption\@maketabcaption\@float{table}}
-%
-% ------------------------------------------------------------------
-% Floats at the end
-\RequirePackage[nolists,nomarkers,tablesfirst,noheads]{endfloat}
-\usepackage{morefloats}
-%
-\renewcommand{\efloatseparator}{\mbox{}}
-%
-\renewcommand{\topfraction}{1.0}
-\renewcommand{\bottomfraction}{1.0}
-\renewcommand{\textfraction}{0.0}
-\renewcommand{\floatpagefraction}{1.0}
-\setcounter{topnumber}{20}
-\setcounter{bottomnumber}{20}
-\setcounter{totalnumber}{40}
-%
-\renewcommand{\dbltopfraction}{1.0}
-\renewcommand{\dblfloatpagefraction}{1.0}
-\setcounter{dbltopnumber}{20}
-%
-% ------------------------------------------------------------------
-% Double spaced
-%\RequirePackage{setspace}
-\renewcommand{\baselinestretch}{1.667}
-\AtBeginDelayedFloats{\renewcommand{\baselinestretch}{1.0}}
-%
-\fi % FINALSTYLE
-
-\iflinenumbers
-% ==================================================================
-% LINE NUMBERS
-% ------------------------------------------------------------------
-\usepackage{lineno}
-\linenumbers
-\setrunninglinenumbers
-\fi
-
-% ------------------------------------------------------------------
-\endinput
diff -r 6da349163758 -r 020cfc86ea0a chicagoAA.bst
--- a/chicagoAA.bst	Tue Oct 25 17:35:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1710 +0,0 @@
-%%% ====================================================================
-%%%  @BibTeX-style-file{
-%%%     author          = "Brad Aagaard",
-%%%     version         = "1",
-%%%     date            = "11 August 1999",
-%%%     time            = "10:24:38 199",
-%%%     filename        = "chicagoaa.bst",
-%%%     address         = "",
-%%%     telephone       = "",
-%%%     FAX             = "",
-%%%     checksum        = "",
-%%%     email           = "",
-%%%     codetable       = "ISO/ASCII",
-%%%     keywords        = "",
-%%%     supported       = "no",
-%%%     abstract        = "Version of chicagoa with proper et al. format.",
-%%%     docstring       = "",
-%%%  }
-%%% ====================================================================
-%
-% "Chicago" BibTeX style, chicagoaa.bst - Chicago style with annotations
-% =====================================================================
-%
-% BibTeX `chicagoaa' style file for BibTeX version 0.99c, LaTeX version 2.09
-% Place it in a file called chicagoaa.bst in the BibTeX search path.
-% You need to include chicago.sty as a \documentstyle option.
-% (Placing it in the same directory as the LaTeX document should also work.)
-% This "chicago" style is based on newapa.bst (American Psych. Assoc.)
-% found at ymir.claremont.edu. Annotation support added 07/09/92.
-% Modifications are loosely based on Chicago Manual of Style.
-%
-%   Citation format: (author-last-name year)
-%             (author-last-name and author-last-name year)
-%             (author-last-name, author-last-name, and author-last-name year)
-%             (author-last-name et al. year)
-%             (author-last-name)
-%             author-last-name (year)
-%             (author-last-name and author-last-name)
-%             (author-last-name et al.)
-%             (year) or (year,year)
-%             year or year,year
-%
-%   Reference list ordering: alphabetical by author or whatever passes
-%    for author in the absence of one.
-%
-% This BibTeX style has support for abbreviated author lists and for
-%    year-only citations.  This is done by having the citations
-%    actually look like
-%
-%    \citeauthoryear{full-author-info}{abbrev-author-info}{year}
-%
-% The LaTeX style has to have the following (or similar)
-%
-%     \let\@internalcite\cite
-%     \def\fullcite{\def\citeauthoryear##1##2##3{##1, ##3}\@internalcite}
-%     \def\fullciteA{\def\citeauthoryear##1##2##3{##1}\@internalcite}
-%     \def\shortcite{\def\citeauthoryear##1##2##3{##2, ##3}\@internalcite}
-%     \def\shortciteA{\def\citeauthoryear##1##2##3{##2}\@internalcite}
-%     \def\citeyear{\def\citeauthoryear##1##2##3{##3}\@internalcite}
-%
-% These TeX macro definitions are found in chicago.sty. Additional
-% commands to manipulate different components of a citation can be defined
-% so that, for example, you can list author's names without parentheses
-% if using a citation as a noun or object in a sentence.
-%
-% This file was originally copied from newapa.bst at ymir.claremont.edu.
-%
-% Features of chicago.bst:
-% =======================
-%
-% - supports an "annotation" field for annotated bibliographies.
-% - full names used in citations, but abbreviated citations are available
-%   (see above)
-% - if an entry has a "month", then the month and year are also printed
-%   as part of that bibitem.
-% - all conjunctions use "and" instead of "\&"
-% - major modification from Chicago Manual of Style (13th ed.) is that
-%   only the first author in a reference appears last name first-
-%   additional authors appear as J. Q. Public.
-% - pages are listed as "pp. xx-xx" in all entry types except
-%   article entries.
-% - book, inbook, and manual use "location: publisher" (or organization)
-%   for address and publisher. All other types list publishers separately.
-% - "pp." are used to identify page numbers for all entry types except
-%   articles.
-% - organization is used as a citation label if neither author nor editor
-%   is present (for manuals).
-% - "et al." is used for long author and editor lists, or when "others"
-%   is used.
-%
-% Modifications and bug fixes from newapa.bst:
-% ===========================================
-%
-%   - added month, year to bib entries if month is present
-%   - fixed bug with In proceedings, added necessary comma after title
-%   - all conjunctions changed to "and" from "\&"
-%   - fixed bug with author labels in my.full.label: "et al." now is
-%        generated when "others" is an author name
-%   - major modification from Chicago Manual of Style (13th ed.) is that
-%     only the first author in a reference appears last name first-
-%     additional authors appear as J. Q. Public.
-%   - pages are listed as "pp. xx-xx" in all entry types except
-%     article entries. Unnecessary (IMHO) "()" around page numbers
-%     were removed, and page numbers now don't end with a period.
-%   - created chicago.sty for use with this bibstyle (required).
-%   - fixed bugs in FUNCTION {format.vol.num.pages} for missing volume,
-%     number, and /or pages. Renamed to format.jour.vol.
-%   - fixed bug in formatting booktitles: additional period an error if
-%     book has a volume.
-%   - fixed bug: editors usually given redundant period before next clause
-%     (format.editors.dot) removed.
-%   - added label support for organizations, if both author and editor
-%     are missing (from alpha.bst). If organization is too long, then
-%     the key field is used for abbreviated citations.
-%   - In proceedings or books of several volumes, no comma was written
-%     between the "Volume x" and the page numbers (this was intentional
-%     in newapa.bst). Fixed.
-%   - Some journals may not have volumes/numbers, only month/year (eg.
-%     IEEE Computer). Fixed bug in article style that assumed volume/number
-%     was always present.
-%
-% Original documentation for newapa.sty:
-% =====================================
-%
-% This version was made by modifying the master file made by
-% Oren Patashnik (PATASHNIK at SCORE.STANFORD.EDU), and the 'named' BibTeX
-% style of Peter F. Patel-Schneider.
-%
-% Copyright (C) 1985, all rights reserved.
-% Copying of this file is authorized only if either
-% (1) you make absolutely no changes to your copy, including name, or
-% (2) if you do make changes, you name it something other than 'newapa.bst'.
-% There are undoubtably bugs in this style.  If you make bug fixes,
-% improvements, etc.  please let me know.  My e-mail address is:
-%    spencer at cgrg.ohio.state.edu or 71160.3141 at compuserve.com
-%
-% This style was made from 'plain.bst', 'named.bst', and 'apalike.bst',
-% with lots of tweaking to make it look like APA style, along with tips
-% from Young Ryu and Brian Reiser's modifications of 'apalike.bst'.
-
-ENTRY
-  { address
-    annotation
-    author
-    booktitle
-    chapter
-    doi
-    edition
-    editor
-    howpublished
-    institution
-    journal
-    key
-    month
-    note
-    number
-    organization
-    pages
-    publisher
-    school
-    series
-    title
-    type
-    volume
-    year
-  }
-  {}
-  { label.year extra.label sort.year sort.label }
-
-INTEGERS { output.state before.all mid.sentence after.sentence after.block }
-
-FUNCTION {bibinfo.check}
-{ swap$
-  duplicate$ missing$
-    {
-      pop$ pop$
-      ""
-    }
-    { duplicate$ empty$
-        {
-          swap$ pop$
-        }
-        { swap$
-          pop$
-        }
-      if$
-    }
-  if$
-}
-
-FUNCTION {init.state.consts}
-{ #0 'before.all :=
-  #1 'mid.sentence :=
-  #2 'after.sentence :=
-  #3 'after.block :=
-}
-
-STRINGS { s t u }
-
-FUNCTION {output.nonnull}
-{ 's :=
-  output.state mid.sentence =
-    { ", " * write$ }
-    { output.state after.block =
-    { add.period$ write$
-      newline$
-      "\newblock " write$
-    }
-    { output.state before.all =
-        'write$
-        { add.period$ " " * write$ }
-      if$
-    }
-      if$
-      mid.sentence 'output.state :=
-    }
-  if$
-  s
-}
-
-% Use a colon to separate output. Used only for address/publisher
-% combination in book/inbook types, address/institution for manuals,
-% and organization:publisher for proceedings (inproceedings).
-%
-FUNCTION {output.nonnull.colon}
-{ 's :=
-  output.state mid.sentence =
-    { ": " * write$ }
-    { output.state after.block =
-    { add.period$ write$
-      newline$
-      "\newblock " write$
-    }
-    { output.state before.all =
-        'write$
-        { add.period$ " " * write$ }
-      if$
-    }
-      if$
-      mid.sentence 'output.state :=
-    }
-  if$
-  s
-}
-
-FUNCTION {output}
-{ duplicate$ empty$
-    'pop$
-    'output.nonnull
-  if$
-}
-
-FUNCTION {output.colon}
-{ duplicate$ empty$
-    'pop$
-    'output.nonnull.colon
-  if$
-}
-
-FUNCTION {output.check}
-{ 't :=
-  duplicate$ empty$
-    { pop$ "empty " t * " in " * cite$ * warning$ }
-    'output.nonnull
-  if$
-}
-
-FUNCTION {output.check.colon}
-{ 't :=
-  duplicate$ empty$
-    { pop$ "empty " t * " in " * cite$ * warning$ }
-    'output.nonnull.colon
-  if$
-}
-
-FUNCTION {output.year.check}
-{ year empty$
-     { "empty year in " cite$ * warning$ }
-     { write$
-        " (" year * extra.label *
-       month empty$
-          { ")" * }
-          { ", " * month * ")" * }
-       if$
-       mid.sentence 'output.state :=
-     }
-  if$
-}
-
-FUNCTION {format.doi}
-{ doi "doi" bibinfo.check
-  duplicate$ empty$ 'skip$
-    {
-      "doi: " swap$ * 
-    }
-  if$
-}
-
-FUNCTION {fin.entry}
-{ add.period$
-  write$
-  newline$
-}
-
-FUNCTION {new.block}
-{ output.state before.all =
-    'skip$
-    { after.block 'output.state := }
-  if$
-}
-
-FUNCTION {new.sentence}
-{ output.state after.block =
-    'skip$
-    { output.state before.all =
-    'skip$
-    { after.sentence 'output.state := }
-      if$
-    }
-  if$
-}
-
-FUNCTION {not}
-{   { #0 }
-    { #1 }
-  if$
-}
-
-FUNCTION {and}
-{   'skip$
-    { pop$ #0 }
-  if$
-}
-
-FUNCTION {or}
-{   { pop$ #1 }
-    'skip$
-  if$
-}
-
-FUNCTION {new.block.checka}
-{ empty$
-    'skip$
-    'new.block
-  if$
-}
-
-FUNCTION {new.block.checkb}
-{ empty$
-  swap$ empty$
-  and
-    'skip$
-    'new.block
-  if$
-}
-
-FUNCTION {new.sentence.checka}
-{ empty$
-    'skip$
-    'new.sentence
-  if$
-}
-
-FUNCTION {new.sentence.checkb}
-{ empty$
-  swap$ empty$
-  and
-    'skip$
-    'new.sentence
-  if$
-}
-
-FUNCTION {field.or.null}
-{ duplicate$ empty$
-    { pop$ "" }
-    'skip$
-  if$
-}
-
-%
-% Emphasize the top string on the stack.
-%
-FUNCTION {emphasize}
-{ duplicate$ empty$
-    { pop$ "" }
-    { "{\em " swap$ * "}" * }
-  if$
-}
-
-%
-% Emphasize the top string on the stack, but add a trailing space.
-%
-FUNCTION {emphasize.space}
-{ duplicate$ empty$
-    { pop$ "" }
-    { "{\em " swap$ * "\/}" * }
-  if$
-}
-
-INTEGERS { nameptr namesleft numnames }
-%
-% Format bibliographical entries with the first author last name first,
-% and subsequent authors with initials followed by last name.
-% All names are formatted in this routine.
-%
-FUNCTION {format.names}
-{ 's :=
-  #1 'nameptr :=               % nameptr = 1;
-  s num.names$ 'numnames :=    % numnames = num.name$(s);
-  numnames 'namesleft :=
-    { namesleft #0 > }
-
-    { nameptr #1 =
-        {s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := }
-        {s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
-      if$
-      nameptr #1 >
-        { namesleft #1 >
-              { ", " * t * }
-              { numnames #2 >
-                  { "," * }
-                  'skip$
-                if$
-                t "others" =
-                    { " \textit{et~al}." * }
-                    { " and " * t * } % from Chicago Manual of Style
-                  if$
-               }
-               if$
-             }
-            't
-        if$
-        nameptr #1 + 'nameptr :=          % nameptr += 1;
-        namesleft #1 - 'namesleft :=      % namesleft =- 1;
-    }
-  while$
-}
-
-FUNCTION {my.full.label}
-{ 's :=
-  #1 'nameptr :=               % nameptr = 1;
-  s num.names$ 'numnames :=    % numnames = num.name$(s);
-  numnames 'namesleft :=
-    { namesleft #0 > }
-
-    { s nameptr "{vv~}{ll}" format.name$ 't :=  % get the next name
-      nameptr #1 >
-        { namesleft #1 >
-              { ", " * t * }
-              { numnames #2 >
-                  { "," * }
-                  'skip$
-                if$
-                t "others" =
-                    { " \textit{et~al}." * }
-                    { " and " * t * } % from Chicago Manual of Style
-                  if$
-               }
-               if$
-             }
-            't
-        if$
-        nameptr #1 + 'nameptr :=          % nameptr += 1;
-        namesleft #1 - 'namesleft :=      % namesleft =- 1;
-    }
-  while$
-
-}
-
-FUNCTION {format.names.fml}
-%
-% Format names in "familiar" format, with first initial followed by
-% last name. Like format.names, ALL names are formatted.
-%
-{ 's :=
-  #1 'nameptr :=               % nameptr = 1;
-  s num.names$ 'numnames :=    % numnames = num.name$(s);
-  numnames 'namesleft :=
-    { namesleft #0 > }
-
-    { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
-
-      nameptr #1 >
-        { namesleft #1 >
-              { ", " * t * }
-               { numnames #2 >
-                    { "," * }
-                    'skip$
-                  if$
-                  t "others" =
-                        { " \textit{et~al}." * }
-                        { " and " * t * }
-%                       { " \& " * t * }
-                      if$
-                }
-               if$
-             }
-            't
-        if$
-        nameptr #1 + 'nameptr :=          % nameptr += 1;
-        namesleft #1 - 'namesleft :=      % namesleft =- 1;
-    }
-  while$
-}
-
-FUNCTION {format.annotation}
-{ annotation empty$
-	{ "" }
-	{ " \begin{quotation}\noindent "
-	  annotation
-	  * " \end{quotation} " *
-	}
-      if$
-}
-
-FUNCTION {format.authors}
-{ author empty$
-    { "" }
-    { author format.names }
-  if$
-}
-
-FUNCTION {format.key}
-{ empty$
-    { key field.or.null }
-    { "" }
-  if$
-}
-
-%
-% Format editor names for use in the "in" types: inbook, incollection,
-% inproceedings: first initial, then last names. When editors are the
-% LABEL for an entry, then format.editor is used which lists editors
-% by last name first.
-%
-FUNCTION {format.editors.fml}
-{ editor empty$
-    { "" }
-    { editor format.names.fml
-      editor num.names$ #1 >
-    { " (Eds.)" * }
-    { " (Ed.)" * }
-      if$
-    }
-  if$
-}
-
-%
-% Format editor names for use in labels, last names first.
-%
-FUNCTION {format.editors}
-{ editor empty$
-    { "" }
-    { editor format.names
-      editor num.names$ #1 >
-    { " (Eds.)" * }
-    { " (Ed.)" * }
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.title}
-{ title empty$
-    { "" }
-    { title "t" change.case$ }
-  if$
-}
-
-% Note that the APA style requres case changes
-% in article titles. The following does not
-% change cases. If you perfer it, uncomment the
-% following and comment out the above.
-
-%FUNCTION {format.title}
-%{ title empty$
-%    { "" }
-%    { title }
-%  if$
-%}
-
-FUNCTION {n.dashify}
-{ 't :=
-  ""
-    { t empty$ not }
-    { t #1 #1 substring$ "-" =
-    { t #1 #2 substring$ "--" = not
-        { "--" *
-          t #2 global.max$ substring$ 't :=
-        }
-        {   { t #1 #1 substring$ "-" = }
-        { "-" *
-          t #2 global.max$ substring$ 't :=
-        }
-          while$
-        }
-      if$
-    }
-    { t #1 #1 substring$ *
-      t #2 global.max$ substring$ 't :=
-    }
-      if$
-    }
-  while$
-}
-
-FUNCTION {format.btitle}
-{ edition empty$
-  { title emphasize }
-  { title empty$
-    { title emphasize }
-    { volume empty$     % gnp - check for volume, then don't need period
-       { "{\em " title * "\/} (" * edition * " ed.)" * "." * }
-       { "{\em " title * "\/} (" * edition * " ed.)" * }
-      if$
-    }
-    if$
-  }
-  if$
-}
-
-FUNCTION {format.emphasize.booktitle}
-{ edition empty$
-  { booktitle emphasize }
-  { booktitle empty$
-    { booktitle emphasize }
-    { volume empty$    % gnp - extra period an error if book has a volume
-        { "{\em " booktitle * "\/} (" * edition * " ed.)" * "." *}
-        { "{\em " booktitle * "\/} (" * edition * " ed.)" * }
-      if$
-      }
-    if$
-    }
-  if$
-  }
-
-
-FUNCTION {tie.or.space.connect}
-{ duplicate$ text.length$ #3 <
-    { "~" }
-    { " " }
-  if$
-  swap$ * *
-}
-
-FUNCTION {either.or.check}
-{ empty$
-    'pop$
-    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
-  if$
-}
-
-FUNCTION {format.bvolume}
-{ volume empty$
-    { "" }
-    { "Volume" volume tie.or.space.connect % gnp - changed to mixed case
-      series empty$
-        'skip$
-        { " of " * series emphasize * }
-      if$
-      "volume and number" number either.or.check
-    }
-  if$
-}
-
-FUNCTION {format.number.series}
-{ volume empty$
-    { number empty$
-    { series field.or.null }
-    { output.state mid.sentence =
-        { "Number" } % gnp - changed to mixed case always
-        { "Number" }
-      if$
-      number tie.or.space.connect
-      series empty$
-        { "there's a number but no series in " cite$ * warning$ }
-        { " in " * series * }
-      if$
-    }
-      if$
-    }
-    { "" }
-  if$
-}
-
-INTEGERS { multiresult }
-
-FUNCTION {multi.page.check}
-{ 't :=
-  #0 'multiresult :=
-    { multiresult not
-      t empty$ not
-      and
-    }
-    { t #1 #1 substring$
-      duplicate$ "-" =
-      swap$ duplicate$ "," =
-      swap$ "+" =
-      or or
-    { #1 'multiresult := }
-    { t #2 global.max$ substring$ 't := }
-      if$
-    }
-  while$
-  multiresult
-}
-
-FUNCTION {format.pages}
-{ pages empty$
-  { "" }
-  { pages multi.page.check
-	{ "pp.\ " pages n.dashify tie.or.space.connect } % gnp - removed ()
-	{ "pp.\ " pages tie.or.space.connect }
-    if$
-  }
-  if$
-}
-
-% By Young (and Spencer)
-% GNP - fixed bugs with missing volume, number, and/or pages
-%
-% Format journal, volume, number, pages for article types.
-%
-FUNCTION {format.jour.vol}
-{ journal empty$
-    { "no journal in " cite$ * warning$
-      "" }
-    { journal emphasize.space }
-    if$
-  number empty$
-    { volume empty$
-       { "no number and no volume in " cite$ * warning$
-         "" * }
-       { "~{\em " * Volume * "}" * }
-      if$
-    }
-    { volume empty$
-      {"no volume for " cite$ * warning$
-       "~(" * number * ")" * }
-      { "~" *
-        volume emphasize.space
-        "(" * number * ")" * * }
-      if$
-    }
-  if$
-  pages empty$
-    {"page numbers missing in " cite$ * warning$
-     "" * } % gnp - place a null string on the stack for output
-    { duplicate$ empty$
-      { pop$ format.pages }
-      { ", " *  pages n.dashify * } % gnp - removed pp. for articles
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.chapter.pages}
-{ chapter empty$
-    'format.pages
-    { type empty$
-        { "Chapter" } % gnp - changed to mixed case
-        { type "t" change.case$ }
-      if$
-      chapter tie.or.space.connect
-      pages empty$
-        {"page numbers missing in " cite$ * warning$} % gnp - added check
-        { ", " * format.pages * }
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.in.ed.booktitle}
-{ booktitle empty$
-  { "" }
-  { editor empty$
-    { "In " format.emphasize.booktitle * }
-    { "In " format.editors.fml * ", " * format.emphasize.booktitle * }
-    if$
-  }
-  if$
-}
-
-FUNCTION {format.thesis.type}
-{ type empty$
-    'skip$
-    { pop$
-      type "t" change.case$
-    }
-  if$
-}
-
-FUNCTION {format.tr.number}
-{ type empty$
-    { "Technical Report" }
-    'type
-  if$
-  number empty$
-    { "t" change.case$ }
-    { number tie.or.space.connect }
-  if$
-}
-
-FUNCTION {format.article.crossref}
-{ "See"
-  "\citeN{" * crossref * "}" *
-}
-
-FUNCTION {format.crossref.editor}
-{ editor #1 "{vv~}{ll}" format.name$
-  editor num.names$ duplicate$
-  #2 >
-    { pop$ " \textit{et~al}." * }
-    { #2 <
-    'skip$
-    { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
-        { " \textit{et~al}." * }
-        { " and " * editor #2 "{vv~}{ll}" format.name$ * }
-      if$
-    }
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.book.crossref}
-{ volume empty$
-    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
-      "In "
-    }
-    { "Volume" volume tie.or.space.connect % gnp - changed to mixed case
-      " of " *
-    }
-  if$
-  editor empty$
-  editor field.or.null author field.or.null =
-  or
-    { key empty$
-    { series empty$
-        { "need editor, key, or series for " cite$ * " to crossref " *
-          crossref * warning$
-          "" *
-        }
-        { "{\em " * series * "\/}" * }
-      if$
-    }
-    { key * }
-      if$
-    }
-    { format.crossref.editor * }
-  if$
-  " \citeN{" * crossref * "}" *
-}
-
-FUNCTION {format.incoll.inproc.crossref}
-{ "See"
-  " \citeN{" * crossref * "}" *
-}
-
-% format.lab.names:
-%
-% determines "short" names for the abbreviated author information.
-% "Long" labels are created in calc.label, using the routine my.full.label
-% to format author and editor fields.
-%
-% There are 4 cases for labels.   (n=3 in the example)
-% a) one author             Foo
-% b) one to n               Foo, Bar and Baz
-% c) use of "and others"    Foo, Bar et al.
-% d) more than n            Foo et al.
-%
-FUNCTION {format.lab.names}
-{ 's :=
-  s num.names$ 'numnames :=
-  numnames #2 >    % change number to number of others allowed before
-		   % forcing "et al".
-    { s #1 "{vv~}{ll}" format.name$ " \textit{et~al}." * }
-    {
-      numnames #1 - 'namesleft :=
-      #2 'nameptr :=
-      s #1 "{vv~}{ll}" format.name$
-	{ namesleft #0 > }
-	{ nameptr numnames =
-	    { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
-		{ " \textit{et~al}." * }
-		{ " and " * s nameptr "{vv~}{ll}" format.name$ * }
-	      if$
-	    }
-	    { ", " * s nameptr "{vv~}{ll}" format.name$ * }
-	  if$
-	  nameptr #1 + 'nameptr :=
-	  namesleft #1 - 'namesleft :=
-	}
-      while$
-    }
-  if$
-}
-
-FUNCTION {author.key.label}
-{ author empty$
-    { key empty$
-          { "no key, author in " cite$ * warning$
-            cite$ #1 #3 substring$ }
-         'key
-      if$
-    }
-    { author format.lab.names }
-  if$
-}
-
-FUNCTION {editor.key.label}
-{ editor empty$
-    { key empty$
-          { "no key, editor in " cite$ * warning$
-            cite$ #1 #3 substring$ }
-          'key
-        if$
-     }
-     { editor format.lab.names }
-  if$
-}
-
-FUNCTION {author.key.organization.label}
-%
-% added - gnp. Provide label formatting by organization if author is null.
-%
-{ author empty$
-    { organization empty$
-	{ key empty$
-	    { "no key, author or organization in " cite$ * warning$
-              cite$ #1 #3 substring$ }
-	    'key
-	  if$
-	}
-        { organization }
-      if$
-    }
-    { author format.lab.names }
-  if$
-}
-
-FUNCTION {editor.key.organization.label}
-%
-% added - gnp. Provide label formatting by organization if editor is null.
-%
-{ editor empty$
-    { organization empty$
-	{ key empty$
-	    { "no key, editor or organization in " cite$ * warning$
-              cite$ #1 #3 substring$ }
-	    'key
-	  if$
-	}
-        { organization }
-      if$
-    }
-    { editor format.lab.names }
-  if$
-}
-
-FUNCTION {author.editor.key.label}
-{ author empty$
-    { editor empty$
-          { key empty$
-               { "no key, author, or editor in " cite$ * warning$
-                 cite$ #1 #3 substring$ }
-             'key
-           if$
-         }
-          { editor format.lab.names }
-      if$
-    }
-    { author format.lab.names }
-  if$
-}
-
-FUNCTION {calc.label}
-%
-% Changed - GNP. See also author.organization.sort, editor.organization.sort
-% Form label for BibTeX entry. The classification of which fields are used
-% for which type of entry (book, inbook, etc.) are taken from alpha.bst.
-% The change here from newapa is to also include organization as a
-% citation label if author or editor is missing.
-%
-{ type$ "book" =
-  type$ "inbook" =
-  or
-    'author.editor.key.label
-    { type$ "proceedings" =
-	'editor.key.organization.label
-	{ type$ "manual" =
-	    'author.key.organization.label
-	    'author.key.label
-	  if$
-	}
-      if$
-    }
-  if$
-
-  author empty$  % generate the full label citation information.
-    { editor empty$
-        { organization empty$
-           { "no author, editor, or organization in " cite$ * warning$
-             "??" }
-           { organization }
-           if$
-        }
-        { editor my.full.label }
-        if$
-    }
-    { author my.full.label }
-  if$
-
-% leave label on the stack, to be popped when required.
-
-  "}{" * swap$ * "}{" *
-%  year field.or.null purify$ #-1 #4 substring$ *
-%
-% save the year for sort processing afterwards (adding a, b, c, etc.)
-%
-  year field.or.null purify$ #-1 #4 substring$
-  'label.year :=
-}
-
-FUNCTION {output.bibitem}
-{ newline$
-
-  "\bibitem[\protect\citeauthoryear{" write$
-  calc.label write$
-  sort.year write$
-  "}]{" write$
-
-  cite$ write$
-  "}" write$
-  newline$
-  ""
-  before.all 'output.state :=
-}
-
-FUNCTION {article}
-{ output.bibitem
-  format.authors
-  "author" output.check
-  author format.key output          % added
-  output.year.check                 % added
-  new.block
-  format.title
-  "title" output.check
-  new.block
-  crossref missing$
-    { format.jour.vol output
-    }
-    { format.article.crossref output.nonnull
-      format.pages output
-    }
-  if$
-  format.doi output
-  new.block
-  note output
-  fin.entry
-  format.annotation write$
-  newline$
-}
-
-FUNCTION {book}
-{ output.bibitem
-  author empty$
-    { format.editors
-	  "author and editor" output.check }
-    { format.authors
-	  output.nonnull
-      crossref missing$
-    	{ "author and editor" editor either.or.check }
-    	'skip$
-      if$
-    }
-  if$
-  output.year.check       % added
-  new.block
-  format.btitle
-  "title" output.check
-  crossref missing$
-    { format.bvolume output
-      new.block
-      format.number.series output
-      new.sentence
-      address output
-      publisher "publisher" output.check.colon
-    }
-    { new.block
-      format.book.crossref output.nonnull
-    }
-  if$
-  format.doi output
-  new.block
-  note output
-  fin.entry
-  format.annotation write$
-  newline$
-}
-
-FUNCTION {booklet}
-{ output.bibitem
-  format.authors output
-  author format.key output          % added
-  output.year.check                 % added
-  new.block
-  format.title
-  "title" output.check
-  new.block
-  howpublished output
-  address output
-  format.doi output
-  new.block
-  note output
-  fin.entry
-  format.annotation write$
-}
-
-FUNCTION {inbook}
-{ output.bibitem
-  author empty$
-    { format.editors
-      "author and editor" output.check
-    }
-    { format.authors output.nonnull
-      crossref missing$
-    { "author and editor" editor either.or.check }
-    'skip$
-      if$
-    }
-  if$
-  output.year.check                 % added
-  new.block
-  format.btitle
-  "title" output.check
-  crossref missing$
-    { format.bvolume output
-      format.chapter.pages
-      "chapter and pages" output.check
-      new.block
-      format.number.series output
-      new.sentence
-      address output
-      publisher
-      "publisher" output.check.colon
-    }
-    { format.chapter.pages "chapter and pages" output.check
-      new.block
-      format.book.crossref output.nonnull
-    }
-  if$
-  format.doi output
-  new.block
-  note output
-  fin.entry
-  format.annotation write$
-}
-
-FUNCTION {incollection}
-{ output.bibitem
-  format.authors
-  "author" output.check
-  author format.key output       % added
-  output.year.check              % added
-  new.block
-  format.title
-  "title" output.check
-  new.block
-  crossref missing$
-  { format.in.ed.booktitle
-    "booktitle" output.check
-    format.bvolume output
-    format.number.series output
-    format.chapter.pages output % gnp - was special.output.nonnull
-%                                 left out comma before page numbers
-    new.sentence
-    address output
-    publisher "publisher" output.check.colon
-  }
-  { format.incoll.inproc.crossref
-	output.nonnull
-    format.chapter.pages output
-  }
-  if$
-  format.doi output
-  new.block
-  note output
-  fin.entry
-  format.annotation write$
-}
-
-FUNCTION {inproceedings}
-{ output.bibitem
-  format.authors
-  "author" output.check
-  author format.key output            % added
-  output.year.check                   % added
-  new.block
-  format.title
-  "title" output.check
-  new.block
-  crossref missing$
-    { format.in.ed.booktitle
-	  "booktitle" output.check
-      format.bvolume output
-      format.number.series output
-      address output
-      format.pages output
-      new.sentence
-      organization output
-      publisher output.colon
-    }
-    { format.incoll.inproc.crossref output.nonnull
-      format.pages output
-    }
-  if$
-  format.doi output
-  new.block
-  note output
-  fin.entry
-  format.annotation write$
-}
-
-FUNCTION {conference} { inproceedings }
-
-FUNCTION {manual}
-{ output.bibitem
-  author empty$
-    { editor empty$
-      { organization "organization" output.check
-        organization format.key output }  % if all else fails, use key
-      { format.editors "author and editor" output.check }
-      if$
-    }
-    { format.authors output.nonnull }
-    if$
-  output.year.check                 % added
-  new.block
-  format.btitle
-  "title" output.check
-  organization address new.block.checkb
-% Reversed the order of "address" and "organization", added the ":".
-  address output
-  organization "organization" output.check.colon
-%  address output
-%  ":" output
-%  organization output
-  format.doi output
-  new.block
-  note output
-  fin.entry
-  format.annotation write$
-}
-
-FUNCTION {mastersthesis}
-{ output.bibitem
-  format.authors
-  "author" output.check
-  author format.key output          % added
-  output.year.check                 % added
-  new.block
-  format.title
-  "title" output.check
-  new.block
-  "Master's thesis" format.thesis.type output.nonnull
-  school "school" output.check
-  address output
-  format.doi output
-  new.block
-  note output
-  fin.entry
-  format.annotation write$
-}
-
-FUNCTION {misc}
-{ output.bibitem
-  format.authors output
-  author format.key output            % added
-  output.year.check                   % added
-  title howpublished new.block.checkb
-  format.title output
-  new.block
-  howpublished output
-  format.doi output
-  new.block
-  note output
-  fin.entry
-  format.annotation write$
-}
-
-FUNCTION {phdthesis}
-{ output.bibitem
-  format.authors
-  "author" output.check
-  author format.key output            % added
-  output.year.check                   % added
-  new.block
-  format.btitle
-  "title" output.check
-  new.block
-  "Ph.D. thesis" format.thesis.type output.nonnull
-  school "school" output.check
-  address output
-  format.doi output
-  new.block
-  note output
-  fin.entry
-  format.annotation write$
-}
-
-FUNCTION {proceedings}
-{ output.bibitem
-  editor empty$
-    { organization output
-      organization format.key output }  % gnp - changed from author format.key
-    { format.editors output.nonnull }
-  if$
-% author format.key output             % gnp - removed (should be either
-%                                        editor or organization
-  output.year.check                    % added (newapa)
-  new.block
-  format.btitle
-  "title" output.check
-  format.bvolume output
-  format.number.series output
-  address output
-  new.sentence
-  organization output
-  publisher output.colon
-  format.doi output
-  new.block
-  note output
-  fin.entry
-  format.annotation write$
-}
-
-FUNCTION {techreport}
-{ output.bibitem
-  format.authors
-  "author" output.check
-  author format.key output             % added
-  output.year.check                    % added
-  new.block
-  format.title
-  "title" output.check
-  new.block
-  format.tr.number output.nonnull
-  institution
-  "institution" output.check
-  address output
-  format.doi output
-  new.block
-  note output
-  fin.entry
-  format.annotation write$
-}
-
-FUNCTION {unpublished}
-{ output.bibitem
-  format.authors
-  "author" output.check
-  author format.key output              % added
-  output.year.check                      % added
-  new.block
-  format.title
-  "title" output.check
-  format.doi output
-  new.block
-  note "note" output.check
-  fin.entry
-  format.annotation write$
-}
-
-FUNCTION {default.type} { misc }
-
-MACRO {jan} {"January"}
-
-MACRO {feb} {"February"}
-
-MACRO {mar} {"March"}
-
-MACRO {apr} {"April"}
-
-MACRO {may} {"May"}
-
-MACRO {jun} {"June"}
-
-MACRO {jul} {"July"}
-
-MACRO {aug} {"August"}
-
-MACRO {sep} {"September"}
-
-MACRO {oct} {"October"}
-
-MACRO {nov} {"November"}
-
-MACRO {dec} {"December"}
-
-MACRO {acmcs} {"ACM Computing Surveys"}
-
-MACRO {acta} {"Acta Informatica"}
-
-MACRO {ai} {"Artificial Intelligence"}
-
-MACRO {cacm} {"Communications of the ACM"}
-
-MACRO {ibmjrd} {"IBM Journal of Research and Development"}
-
-MACRO {ibmsj} {"IBM Systems Journal"}
-
-MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
-
-MACRO {ieeetc} {"IEEE Transactions on Computers"}
-
-MACRO {ieeetcad}
- {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
-
-MACRO {ipl} {"Information Processing Letters"}
-
-MACRO {jacm} {"Journal of the ACM"}
-
-MACRO {jcss} {"Journal of Computer and System Sciences"}
-
-MACRO {scp} {"Science of Computer Programming"}
-
-MACRO {sicomp} {"SIAM Journal on Computing"}
-
-MACRO {tocs} {"ACM Transactions on Computer Systems"}
-
-MACRO {tods} {"ACM Transactions on Database Systems"}
-
-MACRO {tog} {"ACM Transactions on Graphics"}
-
-MACRO {toms} {"ACM Transactions on Mathematical Software"}
-
-MACRO {toois} {"ACM Transactions on Office Information Systems"}
-
-MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
-
-MACRO {tcs} {"Theoretical Computer Science"}
-
-READ
-
-FUNCTION {sortify}
-{ purify$
-  "l" change.case$
-}
-
-INTEGERS { len }
-
-FUNCTION {chop.word}
-{ 's :=
-  'len :=
-  s #1 len substring$ =
-    { s len #1 + global.max$ substring$ }
-    's
-  if$
-}
-
-
-
-FUNCTION {sort.format.names}
-{ 's :=
-  #1 'nameptr :=
-  ""
-  s num.names$ 'numnames :=
-  numnames 'namesleft :=
-    { namesleft #0 > }
-    { nameptr #1 >
-          { "   " * }
-         'skip$
-      if$
-      s nameptr "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}" format.name$ 't :=
-      nameptr numnames = t "others" = and
-          { " \textit{et~al}." * }
-          { t sortify * }
-      if$
-      nameptr #1 + 'nameptr :=
-      namesleft #1 - 'namesleft :=
-    }
-  while$
-}
-
-FUNCTION {sort.format.title}
-{ 't :=
-  "A " #2
-    "An " #3
-      "The " #4 t chop.word
-    chop.word
-  chop.word
-  sortify
-  #1 global.max$ substring$
-}
-
-FUNCTION {author.sort}
-{ author empty$
-    { key empty$
-         { "to sort, need author or key in " cite$ * warning$
-           "" }
-         { key sortify }
-      if$
-    }
-    { author sort.format.names }
-  if$
-}
-
-FUNCTION {editor.sort}
-{ editor empty$
-    { key empty$
-         { "to sort, need editor or key in " cite$ * warning$
-           ""
-         }
-         { key sortify }
-      if$
-    }
-    { editor sort.format.names }
-  if$
-}
-
-FUNCTION {author.editor.sort}
-{ author empty$
-    { "missing author in " cite$ * warning$
-      editor empty$
-         { key empty$
-             { "to sort, need author, editor, or key in " cite$ * warning$
-               ""
-             }
-             { key sortify }
-           if$
-         }
-         { editor sort.format.names }
-      if$
-    }
-    { author sort.format.names }
-  if$
-}
-
-FUNCTION {author.organization.sort}
-%
-% added - GNP. Stack author or organization for sorting (from alpha.bst).
-% Unlike alpha.bst, we need entire names, not abbreviations
-%
-{ author empty$
-    { organization empty$
-	{ key empty$
-	    { "to sort, need author, organization, or key in " cite$ * warning$
-	      ""
-	    }
-	    { key sortify }
-	  if$
-	}
-	{ organization sortify }
-      if$
-    }
-    { author sort.format.names }
-  if$
-}
-
-FUNCTION {editor.organization.sort}
-%
-% added - GNP. Stack editor or organization for sorting (from alpha.bst).
-% Unlike alpha.bst, we need entire names, not abbreviations
-%
-{ editor empty$
-    { organization empty$
-	{ key empty$
-	    { "to sort, need editor, organization, or key in " cite$ * warning$
-	      ""
-	    }
-	    { key sortify }
-	  if$
-	}
-	{ organization sortify }
-      if$
-    }
-    { editor sort.format.names }
-  if$
-}
-
-FUNCTION {presort}
-%
-% Presort creates the bibentry's label via a call to calc.label, and then
-% sorts the entries based on entry type. Chicago.bst adds support for
-% including organizations as the sort key; the following is stolen from
-% alpha.bst.
-%
-{ calc.label sortify % recalculate bibitem label
-  year field.or.null purify$ #-1 #4 substring$ * % add year
-  "    "
-  *
-  type$ "book" =
-  type$ "inbook" =
-  or
-    'author.editor.sort
-    { type$ "proceedings" =
-	'editor.organization.sort
-	{ type$ "manual" =
-	    'author.organization.sort
-	    'author.sort
-	  if$
-	}
-      if$
-    }
-  if$
-  #1 entry.max$ substring$        % added for newapa
-  'sort.label :=                  % added for newapa
-  sort.label                      % added for newapa
-  *
-  "    "
-  *
-  title field.or.null
-  sort.format.title
-  *
-  #1 entry.max$ substring$
-  'sort.key$ :=
-}
-
-ITERATE {presort}
-
-SORT             % by label, year, author/editor, title
-
-STRINGS { last.label next.extra }
-
-INTEGERS { last.extra.num }
-
-FUNCTION {initialize.extra.label.stuff}
-{ #0 int.to.chr$ 'last.label :=
-  "" 'next.extra :=
-  #0 'last.extra.num :=
-}
-
-FUNCTION {forward.pass}
-%
-% Pass through all entries, comparing current entry to last one.
-% Need to concatenate year to the stack (done by calc.label) to determine
-% if two entries are the same (see presort)
-%
-{ last.label
-  calc.label year field.or.null purify$ #-1 #4 substring$ * % add year
-  #1 entry.max$ substring$ =     % are they equal?
-     { last.extra.num #1 + 'last.extra.num :=
-       last.extra.num int.to.chr$ 'extra.label :=
-     }
-     { "a" chr.to.int$ 'last.extra.num :=
-       "" 'extra.label :=
-       calc.label year field.or.null purify$ #-1 #4 substring$ * % add year
-       #1 entry.max$ substring$ 'last.label := % assign to last.label
-     }
-  if$
-}
-
-FUNCTION {reverse.pass}
-{ next.extra "b" =
-    { "a" 'extra.label := }
-     'skip$
-  if$
-  label.year extra.label * 'sort.year :=
-  extra.label 'next.extra :=
-}
-
-EXECUTE {initialize.extra.label.stuff}
-
-ITERATE {forward.pass}
-
-REVERSE {reverse.pass}
-
-FUNCTION {bib.sort.order}
-{ sort.label
-  "    "
-  *
-  year field.or.null sortify
-  *
-  "    "
-  *
-  title field.or.null
-  sort.format.title
-  *
-  #1 entry.max$ substring$
-  'sort.key$ :=
-}
-
-ITERATE {bib.sort.order}
-
-SORT             % by sort.label, year, title --- giving final bib. order.
-
-FUNCTION {begin.bib}
-
-{ preamble$ empty$
-    'skip$
-    { preamble$ write$ newline$ }
-  if$
-  "\begin{thebibliography}{}" write$ newline$
-}
-
-
-EXECUTE {begin.bib}
-
-EXECUTE {init.state.consts}
-
-ITERATE {call.type$}
-
-FUNCTION {end.bib}
-{ newline$
-  "\end{thebibliography}" write$ newline$
-}
-
-EXECUTE {end.bib}
-
diff -r 6da349163758 -r 020cfc86ea0a chicagoComma.sty
--- a/chicagoComma.sty	Tue Oct 25 17:35:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,266 +0,0 @@
-% -*- LaTeX -*-
-%%% Modified by Brad Aagaard to place comma between authors and year in regular%%% citations
-%%%
-%%% ====================================================================
-%%%  @LaTeX-style-file{
-%%%     author          = "Glenn Paulley",
-%%%     version         = "4",
-%%%     date            = "31 August 1992",
-%%%     time            = "09:42:44 199",
-%%%     filename        = "chicago.sty",
-%%%     address         = "Data Structuring Group
-%%%                        Department of Computer Science
-%%%                        University of Waterloo
-%%%                        Waterloo, Ontario, Canada
-%%%                        N2L 3G1",
-%%%     telephone       = "(519) 885-1211",
-%%%     FAX             = "(519) 885-1208",
-%%%     checksum        = "44674 264 1050 10394",
-%%%     email           = "gnpaulle at bluebox.uwaterloo.ca",
-%%%     codetable       = "ISO/ASCII",
-%%%     keywords        = "",
-%%%     supported       = "yes",
-%%%     abstract        = "Contains the LaTeX style command definitions
-%%%                        for the Chicago BibTeX styles chicago.bst and
-%%%                        chicagoa.bst. For details, see below.",
-%%%     docstring       = "The checksum field above contains a CRC-16
-%%%                        checksum as the first value, followed by the
-%%%                        equivalent of the standard UNIX wc (word
-%%%                        count) utility output of lines, words, and
-%%%                        characters.  This is produced by Robert
-%%%                        Solovay's checksum utility.",
-%%%  }
-%%% ====================================================================
-%
-% chicago.sty: Style file for use with bibtex style chicago.bst, for
-% bibliographies formatted according to the 13th Edition of the Chicago
-% Manual of Style.
-%
-% 'newapa.bst' was made from 'plain.bst', 'named.bst', and 'apalike.bst',
-% with lots of tweaking to make it look like APA style, along with tips
-% from Young Ryu and Brian Reiser's modifications of 'apalike.bst'.
-% newapa.sty formed the basis of this style, chicago.sty. Author-date
-% references in newapa.bst formed the basis for chicago.bst. Chicagoa.bst
-% supports annotations.
-%
-% Version 4 (August, 1992):
-% - fixed chicago.bst and chicagoa.bst to handle long author lists in
-%   sorting
-% - fixed chicago.bst and chicagoa.bst so that missing page numbers in
-%   ``article'' entries are handled correctly
-% - modified chicago.sty to format entries with 2nd and subsequent lines
-%   indented.
-%
-%   Citation format: (author-last-name year)
-%             (author-last-name and author-last-name year)
-%             (author-last-name et al. year)
-%             (author-last-name)
-%             author-last-name
-%             author-last-name (year)
-%             (author-last-name and author-last-name)
-%             (author-last-name et al.)
-%             (year) or (year,year)
-%             year or year,year
-%
-%   Reference list ordering: alphabetical by author or whatever passes
-%    for author in the absence of one.
-%
-% This BibTeX style has support for abbreviated author lists and for
-%    year-only citations.  This is done by having the citations
-%    actually look like
-%
-%    \citeauthoryear{full-author-info}{abbrev-author-info}{year}
-%
-% The LaTeX style has to have the following (or similar)
-%
-%     \let\@internalcite\cite
-%     \def\fullcite{\def\citeauthoryear##1##2##3{##1, ##3}\@internalcite}
-%     \def\fullciteA{\def\citeauthoryear##1##2##3{##1}\@internalcite}
-%     \def\shortcite{\def\citeauthoryear##1##2##3{##2, ##3}\@internalcite}
-%     \def\shortciteA{\def\citeauthoryear##1##2##3{##2}\@internalcite}
-%     \def\citeyear{\def\citeauthoryear##1##2##3{##3}\@internalcite}
-%
-% -------------------------------------------------------------------------
-% This file implements citations for the ``chicago'' bibliography style.
-%  Place it in a file called chicago.sty in the TeX search path.
-%(Placing it in the same directory as the LaTeX document should also work.)
-%
-%    This file is a modification of the ``newapa'' LaTeX style,
-%    originally adapted by Steven Spencer from the ``apalike'' LaTeX style.
-%    It was originally modified by Stephen N. Spencer, with further
-%    modifications by Young U. Ryu.
-%
-% The ``chicago'' BibTeX bibliography style creates citations with labels:
-%       \citeauthoryear{author-info}{abbrev. author-info}{year}
-%
-% These labels are processed by the following LaTeX commands:
-%
-%  \cite{key}
-%    which produces citations with full author list and year.
-%    eg. (Brown 1978; Jarke, Turner, Stohl, et al. 1985)
-%  \citeNP{key}
-%    which produces citations with full author list and year, but without
-%    enclosing parentheses:
-%    eg. Brown 1978; Jarke, Turner and Stohl 1985
-%  \citeA{key}
-%    which produces citations with only the full author list.
-%    eg. (Brown; Jarke, Turner and Stohl)
-%  \citeANP{key}
-%    which produces citations with only the full author list, without
-%    parentheses eg. Brown; Jarke, Turner and Stohl
-%  \citeN{key}
-%    which produces citations with the full author list and year, but
-%    can be used as nouns in a sentence; no parentheses appear around
-%    the author names, but only around the year.
-%      eg. Shneiderman (1978) states that......
-%    \citeN should only be used for a single citation.
-%  \shortcite{key}
-%    which produces citations with abbreviated author list and year.
-%  \shortciteNP{key}
-%    which produces citations with abbreviated author list and year.
-%  \shortciteA{key}
-%    which produces only the abbreviated author list.
-%  \shortciteANP{key}
-%    which produces only the abbreviated author list.
-%  \shortciteN{key}
-%    which produces the abbreviated author list and year, with only the
-%    year in parentheses. Use with only one citation.
-%  \citeyear{key}
-%    which produces the year information only, within parentheses.
-%  \citeyearNP{key}
-%    which produces the year information only.
-%
-% Abbreviated author lists use the ``et al.'' construct.
-%
-% `NP' means `no parentheses'.
-%
-% This LaTeX style file must be used with the ``chicago'' or ``chicagoa''
-% (annotated chicago style) BibTeX styles.
-%
-\typeout{Using Chicago Manual of Style bibliography: 31 August 1992}
-%
-% -------------------------------------------------------------------------
-%
-% Citation macros.
-%
-\let\@internalcite\cite
-%
-\def\cite{\def\@citeseppen{-1000}%
-    \def\@cite##1##2{(##1\if at tempswa , ##2\fi)}%
-    \def\citeauthoryear##1##2##3{##1, ##3}\@internalcite}
-\def\citeNP{\def\@citeseppen{-1000}%
-    \def\@cite##1##2{##1\if at tempswa , ##2\fi}%
-    \def\citeauthoryear##1##2##3{##1 ##3}\@internalcite}
-\def\citeN{\def\@citeseppen{-1000}%
-    \def\@cite##1##2{##1\if at tempswa , ##2)\else{)}\fi}%
-    \def\citeauthoryear##1##2##3{##1 (##3}\@citedata}
-\def\citeA{\def\@citeseppen{-1000}%
-    \def\@cite##1##2{(##1\if at tempswa , ##2\fi)}%
-    \def\citeauthoryear##1##2##3{##1}\@internalcite}
-\def\citeANP{\def\@citeseppen{-1000}%
-    \def\@cite##1##2{##1\if at tempswa , ##2\fi}%
-    \def\citeauthoryear##1##2##3{##1}\@internalcite}
-%
-\def\shortcite{\def\@citeseppen{-1000}%
-    \def\@cite##1##2{(##1\if at tempswa , ##2\fi)}%
-    \def\citeauthoryear##1##2##3{##2, ##3}\@internalcite}
-\def\shortciteNP{\def\@citeseppen{-1000}%
-    \def\@cite##1##2{##1\if at tempswa , ##2\fi}%
-    \def\citeauthoryear##1##2##3{##2 ##3}\@internalcite}
-\def\shortciteN{\def\@citeseppen{-1000}%
-    \def\@cite##1##2{##1\if at tempswa , ##2)\else{)}\fi}%
-    \def\citeauthoryear##1##2##3{##2 (##3}\@citedata}
-\def\shortciteA{\def\@citeseppen{-1000}%
-    \def\@cite##1##2{(##1\if at tempswa , ##2\fi)}%
-    \def\citeauthoryear##1##2##3{##2}\@internalcite}
-\def\shortciteANP{\def\@citeseppen{-1000}%
-    \def\@cite##1##2{##1\if at tempswa , ##2\fi}%
-    \def\citeauthoryear##1##2##3{##2}\@internalcite}
-%
-\def\citeyear{\def\@citeseppen{-1000}%
-    \def\@cite##1##2{(##1\if at tempswa , ##2\fi)}%
-    \def\citeauthoryear##1##2##3{##3}\@citedata}
-\def\citeyearNP{\def\@citeseppen{-1000}%
-    \def\@cite##1##2{##1\if at tempswa , ##2\fi}%
-    \def\citeauthoryear##1##2##3{##3}\@citedata}
-
-%
-% \@citedata and \@citedatax:
-%
-% Place commas in-between citations in the same \citeyear, \citeyearNP,
-% \citeN, or \shortciteN command.
-% Use something like \citeN{ref1,ref2,ref3} and \citeN{ref4} for a list.
-%
-\def\@citedata{%
-        \@ifnextchar [{\@tempswatrue\@citedatax}%
-                                  {\@tempswafalse\@citedatax[]}%
-}
-
-\def\@citedatax[#1]#2{%
-\if at filesw\immediate\write\@auxout{\string\citation{#2}}\fi%
-  \def\@citea{}\@cite{\@for\@citeb:=#2\do%
-    {\@citea\def\@citea{, }\@ifundefined% by Young
-       {b@\@citeb}{{\bf ?}%
-       \@warning{Citation `\@citeb' on page \thepage \space undefined}}%
-{\csname b@\@citeb\endcsname}}}{#1}}%
-
-% don't box citations, separate with ; and a space
-% also, make the penalty between citations negative: a good place to break.
-%
-\def\@citex[#1]#2{%
-\if at filesw\immediate\write\@auxout{\string\citation{#2}}\fi%
-  \def\@citea{}\@cite{\@for\@citeb:=#2\do%
-    {\@citea\def\@citea{; }\@ifundefined% by Young
-       {b@\@citeb}{{\bf ?}%
-       \@warning{Citation `\@citeb' on page \thepage \space undefined}}%
-{\csname b@\@citeb\endcsname}}}{#1}}%
-
-% (from apalike.sty)
-% No labels in the bibliography.
-%
-\def\@biblabel#1{}
-
-% (from apalike.sty)
-% Set length of hanging indentation for bibliography entries.
-%
-\newlength{\bibhang}
-\setlength{\bibhang}{2em}
-
-% Indent second and subsequent lines of bibliographic entries. Stolen
-% from openbib.sty: \newblock is set to {}.
-
-\newdimen\bibindent
-\bibindent=1.5em
-\@ifundefined{refname}%
-   {\@ifundefined{chapter}%
-     {\newcommand{\refname}{References}}%
-     {\newcommand{\refname}{Bibliography}}%
-   }%
-   {}%
-\@ifundefined{chapter}%
- {\def\thebibliography#1{\section*{\refname\@mkboth
-   {\uppercase{\refname}}{\uppercase{\refname}}}\list
-   {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}
-   \leftmargin\labelwidth
-   \advance\leftmargin\labelsep
-   \advance\leftmargin\bibindent
-   \itemindent -\bibindent
-   \listparindent \itemindent
-   \parsep \z@
-   \usecounter{enumi}}
-   \def\newblock{}
-   \sloppy
-   \sfcode`\.=1000\relax}}
- {\def\thebibliography#1{\chapter*{\refname\@mkboth
-   {\uppercase{\refname}}{\uppercase{\refname}}}\list
-   {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}
-   \leftmargin\labelwidth
-   \advance\leftmargin\labelsep
-   \advance\leftmargin\bibindent
-   \itemindent -\bibindent
-   \listparindent \itemindent
-   \parsep \z@
-   \usecounter{enumi}}
-   \def\newblock{}
-   \sloppy
-   \sfcode`\.=1000\relax}}
diff -r 6da349163758 -r 020cfc86ea0a elsarticle-harv.bst
--- a/elsarticle-harv.bst	Tue Oct 25 17:35:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1544 +0,0 @@
-%%
-%% This is file `elsarticle-harv.bst',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% elsarticle.dtx  (with options: `harvard')
-%% 
-%% Copyright 2007, 2008 Elsevier Ltd.
-%% 
-%% This file is part of the 'Elsarticle Bundle'.
-%% -------------------------------------------
-%% 
-%% It may be distributed under the conditions of the LaTeX Project Public
-%% License, either version 1.2 of this license or (at your option) any
-%% later version.  The latest version of this license is in
-%%    http://www.latex-project.org/lppl.txt
-%% and version 1.2 or later is part of all distributions of LaTeX
-%% version 1999/12/01 or later.
-%% 
-%% The list of all files belonging to the 'Elsarticle Bundle' is
-%% given in the file `manifest.txt'.
-%% 
-
- %%-------------------------------------------------------------------
- %% This bibliography style file is intended for texts in ENGLISH
- %% This is an author-year citation style bibliography. As such, it is
- %% non-standard LaTeX, and requires a special package file
- %% to function properly.
- %% Such a package is    natbib.sty   by Patrick W. Daly
- %% The form of the \bibitem entries is
- %%   \bibitem[Jones et al.(1990)]{key}...
- %%   \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
- %% The essential feature is that the label (the part in brackets) consists
- %% of the author names, as they should appear in the citation, with the year
- %% in parentheses following. There must be no space before the opening
- %% parenthesis!
- %% With natbib v5.3, a full list of authors may also follow the year.
- %% In natbib.sty, it is possible to define the type of enclosures that is
- %% really wanted (brackets or parentheses), but in either case, there must
- %% be parentheses in the label.
- %% The \cite command functions as follows:
- %%   \citet{key} ==>>                Jones et al. (1990)
- %%   \citet*{key} ==>>               Jones, Baker, and Smith (1990)
- %%   \citep{key} ==>>                (Jones et al., 1990)
- %%   \citep*{key} ==>>               (Jones, Baker, and Smith, 1990)
- %%   \citep[chap. 2]{key} ==>>       (Jones et al., 1990, chap. 2)
- %%   \citep[e.g.][]{key} ==>>        (e.g. Jones et al., 1990)
- %%   \citep[e.g.][p. 32]{key} ==>>   (e.g. Jones et al., p. 32)
- %%   \citeauthor{key} ==>>           Jones et al.
- %%   \citeauthor*{key} ==>>          Jones, Baker, and Smith
- %%   \citeyear{key} ==>>             1990
- %%---------------------------------------------------------------------
-
-ENTRY
-  { address
-    author
-    booktitle
-    chapter
-    edition
-    editor
-    howpublished
-    institution
-    journal
-    key
-    month
-    note
-    number
-    organization
-    pages
-    publisher
-    school
-    series
-    title
-    type
-    url
-    volume
-    year
-  }
-  {}
-  { label extra.label sort.label short.list }
-
-INTEGERS { output.state before.all mid.sentence after.sentence after.block }
-
-FUNCTION {init.state.consts}
-{ #0 'before.all :=
-  #1 'mid.sentence :=
-  #2 'after.sentence :=
-  #3 'after.block :=
-}
-
-STRINGS { s t }
-
-FUNCTION {output.nonnull}
-{ 's :=
-  output.state mid.sentence =
-    { ", " * write$ }
-    { output.state after.block =
-        { add.period$ write$
-          newline$
-          "\newblock " write$
-        }
-        { output.state before.all =
-            'write$
-            { add.period$ " " * write$ }
-          if$
-        }
-      if$
-      mid.sentence 'output.state :=
-    }
-  if$
-  s
-}
-
-FUNCTION {output}
-{ duplicate$ empty$
-    'pop$
-    'output.nonnull
-  if$
-}
-
-FUNCTION {output.check}
-{ 't :=
-  duplicate$ empty$
-    { pop$ "empty " t * " in " * cite$ * warning$ }
-    'output.nonnull
-  if$
-}
-
-FUNCTION {fin.entry}
-{ add.period$
-  write$
-  newline$
-}
-
-FUNCTION {new.block}
-{ output.state before.all =
-    'skip$
-    { after.block 'output.state := }
-  if$
-}
-
-FUNCTION {new.sentence}
-{ output.state after.block =
-    'skip$
-    { output.state before.all =
-        'skip$
-        { after.sentence 'output.state := }
-      if$
-    }
-  if$
-}
-
-%%SP 2003/07/25
-%% No longer used
-FUNCTION {add.blank}
-{  " " * before.all 'output.state :=
-}
-
-FUNCTION {date.block}
-{
-  new.sentence
-}
-
-FUNCTION {not}
-{   { #0 }
-    { #1 }
-  if$
-}
-
-FUNCTION {and}
-{   'skip$
-    { pop$ #0 }
-  if$
-}
-
-FUNCTION {or}
-{   { pop$ #1 }
-    'skip$
-  if$
-}
-
-FUNCTION {new.block.checkb}
-{ empty$
-  swap$ empty$
-  and
-    'skip$
-    'new.block
-  if$
-}
-
-FUNCTION {field.or.null}
-{ duplicate$ empty$
-    { pop$ "" }
-    'skip$
-  if$
-}
-
-FUNCTION {emphasize}
-{ skip$ }
-
-FUNCTION {capitalize}
-{ "u" change.case$ "t" change.case$ }
-
-FUNCTION {space.word}
-{ " " swap$ * " " * }
-
- %% Here are the language-specific definitions for explicit words.
- %% Each function has a name bbl.xxx where xxx is the English word.
- %% The language selected here is ENGLISH
-FUNCTION {bbl.and}
-{ "and"}
-
-FUNCTION {bbl.etal}
-{ "et~al." }
-
-FUNCTION {bbl.editors}
-{ "Eds." }
-
-FUNCTION {bbl.editor}
-{ "Ed." }
-
-FUNCTION {bbl.edby}
-{ "edited by" }
-
-FUNCTION {bbl.edition}
-{ "Edition" }
-
-FUNCTION {bbl.volume}
-{ "Vol." }
-
-FUNCTION {bbl.of}
-{ "of" }
-
-FUNCTION {bbl.number}
-{ "no." }
-
-FUNCTION {bbl.nr}
-{ "no." }
-
-FUNCTION {bbl.in}
-{ "in" }
-
-FUNCTION {bbl.pages}
-{ "pp." }
-
-FUNCTION {bbl.page}
-{ "p." }
-
-FUNCTION {bbl.chapter}
-{ "Ch." }
-
-FUNCTION {bbl.techrep}
-{ "Tech. Rep." }
-
-FUNCTION {bbl.mthesis}
-{ "Master's thesis" }
-
-FUNCTION {bbl.phdthesis}
-{ "Ph.D. thesis" }
-
-FUNCTION {bbl.first}
-{ "1st" }
-
-FUNCTION {bbl.second}
-{ "2nd" }
-
-FUNCTION {bbl.third}
-{ "3rd" }
-
-FUNCTION {bbl.fourth}
-{ "4th" }
-
-FUNCTION {bbl.fifth}
-{ "5th" }
-
-FUNCTION {bbl.st}
-{ "st" }
-
-FUNCTION {bbl.nd}
-{ "nd" }
-
-FUNCTION {bbl.rd}
-{ "rd" }
-
-FUNCTION {bbl.th}
-{ "th" }
-
-MACRO {jan} {"Jan."}
-
-MACRO {feb} {"Feb."}
-
-MACRO {mar} {"Mar."}
-
-MACRO {apr} {"Apr."}
-
-MACRO {may} {"May"}
-
-MACRO {jun} {"Jun."}
-
-MACRO {jul} {"Jul."}
-
-MACRO {aug} {"Aug."}
-
-MACRO {sep} {"Sep."}
-
-MACRO {oct} {"Oct."}
-
-MACRO {nov} {"Nov."}
-
-MACRO {dec} {"Dec."}
-
-FUNCTION {eng.ord}
-{ duplicate$ "1" swap$ *
-  #-2 #1 substring$ "1" =
-     { bbl.th * }
-     { duplicate$ #-1 #1 substring$
-       duplicate$ "1" =
-         { pop$ bbl.st * }
-         { duplicate$ "2" =
-             { pop$ bbl.nd * }
-             { "3" =
-                 { bbl.rd * }
-                 { bbl.th * }
-               if$
-             }
-           if$
-          }
-       if$
-     }
-   if$
-}
-
-MACRO {acmcs} {"ACM Comput. Surv."}
-
-MACRO {acta} {"Acta Inf."}
-
-MACRO {cacm} {"Commun. ACM"}
-
-MACRO {ibmjrd} {"IBM J. Res. Dev."}
-
-MACRO {ibmsj} {"IBM Syst.~J."}
-
-MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
-
-MACRO {ieeetc} {"IEEE Trans. Comput."}
-
-MACRO {ieeetcad}
- {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
-
-MACRO {ipl} {"Inf. Process. Lett."}
-
-MACRO {jacm} {"J.~ACM"}
-
-MACRO {jcss} {"J.~Comput. Syst. Sci."}
-
-MACRO {scp} {"Sci. Comput. Programming"}
-
-MACRO {sicomp} {"SIAM J. Comput."}
-
-MACRO {tocs} {"ACM Trans. Comput. Syst."}
-
-MACRO {tods} {"ACM Trans. Database Syst."}
-
-MACRO {tog} {"ACM Trans. Gr."}
-
-MACRO {toms} {"ACM Trans. Math. Softw."}
-
-MACRO {toois} {"ACM Trans. Office Inf. Syst."}
-
-MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
-
-MACRO {tcs} {"Theoretical Comput. Sci."}
-
-FUNCTION {write.url}
-{ url empty$
-    { skip$ }
-    { "\newline\urlprefix\url{" url * "}" * write$ newline$ }
-  if$
-}
-
-INTEGERS { nameptr namesleft numnames }
-
-FUNCTION {format.names}
-{ 's :=
-  #1 'nameptr :=
-  s num.names$ 'numnames :=
-  numnames 'namesleft :=
-    { namesleft #0 > }
-    { s nameptr
-      "{vv~}{ll}{, jj}{, f.}" format.name$
-    't :=
-      nameptr #1 >
-        {
-          namesleft #1 >
-            { ", " * t * }
-            {
-              "," *
-              s nameptr "{ll}" format.name$ duplicate$ "others" =
-                { 't := }
-                { pop$ }
-              if$
-              t "others" =
-                {
-                  " " * bbl.etal *
-                }
-                { " " * t * }
-              if$
-            }
-          if$
-        }
-        't
-      if$
-      nameptr #1 + 'nameptr :=
-      namesleft #1 - 'namesleft :=
-    }
-  while$
-}
-FUNCTION {format.names.ed}
-{ format.names }
-FUNCTION {format.key}
-{ empty$
-    { key field.or.null }
-    { "" }
-  if$
-}
-
-FUNCTION {format.authors}
-{ author empty$
-    { "" }
-    { author format.names }
-  if$
-}
-
-FUNCTION {format.editors}
-{ editor empty$
-    { "" }
-    { editor format.names
-      editor num.names$ #1 >
-        { " (" * bbl.editors * ")" * }
-        { " (" * bbl.editor * ")" * }
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.in.editors}
-{ editor empty$
-    { "" }
-    { editor format.names.ed
-      editor num.names$ #1 >
-        { " (" * bbl.editors * ")" * }
-        { " (" * bbl.editor * ")" * }
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.note}
-{
- note empty$
-    { "" }
-    { note #1 #1 substring$
-      duplicate$ "{" =
-        'skip$
-        { output.state mid.sentence =
-          { "l" }
-          { "u" }
-        if$
-        change.case$
-        }
-      if$
-      note #2 global.max$ substring$ *
-    }
-  if$
-}
-
-FUNCTION {format.title}
-{ title empty$
-    { "" }
-    { title "t" change.case$
-    }
-  if$
-}
-
-FUNCTION {format.full.names}
-{'s :=
-  #1 'nameptr :=
-  s num.names$ 'numnames :=
-  numnames 'namesleft :=
-    { namesleft #0 > }
-    { s nameptr
-      "{vv~}{ll}" format.name$
-      't :=
-      nameptr #1 >
-        {
-          namesleft #1 >
-            { ", " * t * }
-            {
-              numnames #2 >
-                { "," * }
-                'skip$
-              if$
-              s nameptr "{ll}" format.name$ duplicate$ "others" =
-                { 't := }
-                { pop$ }
-              if$
-              t "others" =
-                {
-                  " " * bbl.etal *
-                }
-                { bbl.and
-                  space.word * t *
-                }
-              if$
-            }
-          if$
-        }
-        't
-      if$
-      nameptr #1 + 'nameptr :=
-      namesleft #1 - 'namesleft :=
-    }
-  while$
-}
-
-FUNCTION {author.editor.key.full}
-{ author empty$
-    { editor empty$
-        { key empty$
-            { cite$ #1 #3 substring$ }
-            'key
-          if$
-        }
-        { editor format.full.names }
-      if$
-    }
-    { author format.full.names }
-  if$
-}
-
-FUNCTION {author.key.full}
-{ author empty$
-    { key empty$
-         { cite$ #1 #3 substring$ }
-          'key
-      if$
-    }
-    { author format.full.names }
-  if$
-}
-
-FUNCTION {editor.key.full}
-{ editor empty$
-    { key empty$
-         { cite$ #1 #3 substring$ }
-          'key
-      if$
-    }
-    { editor format.full.names }
-  if$
-}
-
-FUNCTION {make.full.names}
-{ type$ "book" =
-  type$ "inbook" =
-  or
-    'author.editor.key.full
-    { type$ "proceedings" =
-        'editor.key.full
-        'author.key.full
-      if$
-    }
-  if$
-}
-
-FUNCTION {output.bibitem}
-{ newline$
-  "\bibitem[{" write$
-  label write$
-  ")" make.full.names duplicate$ short.list =
-     { pop$ }
-     { * }
-   if$
-  "}]{" * write$
-  cite$ write$
-  "}" write$
-  newline$
-  ""
-  before.all 'output.state :=
-}
-
-FUNCTION {n.dashify}
-{
-  't :=
-  ""
-    { t empty$ not }
-    { t #1 #1 substring$ "-" =
-        { t #1 #2 substring$ "--" = not
-            { "--" *
-              t #2 global.max$ substring$ 't :=
-            }
-            {   { t #1 #1 substring$ "-" = }
-                { "-" *
-                  t #2 global.max$ substring$ 't :=
-                }
-              while$
-            }
-          if$
-        }
-        { t #1 #1 substring$ *
-          t #2 global.max$ substring$ 't :=
-        }
-      if$
-    }
-  while$
-}
-
-FUNCTION {word.in}
-{ bbl.in capitalize
-  ":" *
-  " " * }
-
-FUNCTION {format.date}
-{ year duplicate$ empty$
-    { "empty year in " cite$ * "; set to ????" * warning$
-       pop$ "????" }
-    'skip$
-  if$
-  month empty$
-    'skip$
-    { month
-      " " * swap$ *
-    }
-  if$
-  extra.label *
-  before.all 'output.state :=
-  ", " swap$ *
-}
-
-FUNCTION {format.btitle}
-{ title
-}
-
-FUNCTION {tie.or.space.connect}
-{ duplicate$ text.length$ #3 <
-    { "~" }
-    { " " }
-  if$
-  swap$ * *
-}
-
-FUNCTION {either.or.check}
-{ empty$
-    'pop$
-    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
-  if$
-}
-
-FUNCTION {format.bvolume}
-{ volume empty$
-    { "" }
-    { bbl.volume volume tie.or.space.connect
-      series empty$
-        'skip$
-        { bbl.of space.word * series emphasize * }
-      if$
-      "volume and number" number either.or.check
-    }
-  if$
-}
-
-FUNCTION {format.number.series}
-{ volume empty$
-    { number empty$
-        { series field.or.null }
-        { output.state mid.sentence =
-            { bbl.number }
-            { bbl.number capitalize }
-          if$
-          number tie.or.space.connect
-          series empty$
-            { "there's a number but no series in " cite$ * warning$ }
-            { bbl.in space.word * series * }
-          if$
-        }
-      if$
-    }
-    { "" }
-  if$
-}
-
-FUNCTION {is.num}
-{ chr.to.int$
-  duplicate$ "0" chr.to.int$ < not
-  swap$ "9" chr.to.int$ > not and
-}
-
-FUNCTION {extract.num}
-{ duplicate$ 't :=
-  "" 's :=
-  { t empty$ not }
-  { t #1 #1 substring$
-    t #2 global.max$ substring$ 't :=
-    duplicate$ is.num
-      { s swap$ * 's := }
-      { pop$ "" 't := }
-    if$
-  }
-  while$
-  s empty$
-    'skip$
-    { pop$ s }
-  if$
-}
-
-FUNCTION {convert.edition}
-{ edition extract.num "l" change.case$ 's :=
-  s "first" = s "1" = or
-    { bbl.first 't := }
-    { s "second" = s "2" = or
-        { bbl.second 't := }
-        { s "third" = s "3" = or
-            { bbl.third 't := }
-            { s "fourth" = s "4" = or
-                { bbl.fourth 't := }
-                { s "fifth" = s "5" = or
-                    { bbl.fifth 't := }
-                    { s #1 #1 substring$ is.num
-                        { s eng.ord 't := }
-                        { edition 't := }
-                      if$
-                    }
-                  if$
-                }
-              if$
-            }
-          if$
-        }
-      if$
-    }
-  if$
-  t
-}
-
-FUNCTION {format.edition}
-{ edition empty$
-    { "" }
-    { output.state mid.sentence =
-        { convert.edition "l" change.case$ " " * bbl.edition * }
-        { convert.edition "t" change.case$ " " * bbl.edition * }
-      if$
-    }
-  if$
-}
-
-INTEGERS { multiresult }
-
-FUNCTION {multi.page.check}
-{ 't :=
-  #0 'multiresult :=
-    { multiresult not
-      t empty$ not
-      and
-    }
-    { t #1 #1 substring$
-      duplicate$ "-" =
-      swap$ duplicate$ "," =
-      swap$ "+" =
-      or or
-        { #1 'multiresult := }
-        { t #2 global.max$ substring$ 't := }
-      if$
-    }
-  while$
-  multiresult
-}
-
-FUNCTION {format.pages}
-{ pages empty$
-    { "" }
-    { pages multi.page.check
-        { bbl.pages pages n.dashify tie.or.space.connect }
-        { bbl.page pages tie.or.space.connect }
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.journal.pages}
-{ pages empty$
-    'skip$
-    { duplicate$ empty$
-        { pop$ format.pages }
-        {
-          ", " *
-          pages n.dashify *
-        }
-      if$
-    }
-  if$
-}
-
-%%SP 2001/01/23
-%% Only used in articles
-FUNCTION {format.vol.num.pages}
-{
-%%SP 2001/01/23
-%% Add the leading space only if there is a volume
-  %% volume field.or.null
-  " "
-  volume empty$
-    { pop$ "" }
-    { volume * }
-  if$
-  number empty$
-    'skip$
-    {
-      "~(" number * ")" * *
-      volume empty$
-        { "there's a number but no volume in " cite$ * warning$ }
-        'skip$
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.chapter.pages}
-{ chapter empty$
-    { "" }
-    { type empty$
-        { bbl.chapter }
-        { type "l" change.case$ }
-      if$
-      chapter tie.or.space.connect
-    }
-  if$
-}
-
-FUNCTION {format.in.ed.booktitle}
-{ booktitle empty$
-    { "" }
-    { editor empty$
-        { word.in booktitle * }
-        { word.in format.in.editors * ", " *
-          booktitle * }
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.thesis.type}
-{ type empty$
-    'skip$
-    { pop$
-      type "t" change.case$
-    }
-  if$
-}
-
-FUNCTION {format.tr.number}
-{ type empty$
-    { bbl.techrep }
-    'type
-  if$
-  number empty$
-    { "t" change.case$ }
-    { number tie.or.space.connect }
-  if$
-}
-
-FUNCTION {format.article.crossref}
-{
-  word.in
-  " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.book.crossref}
-{ volume empty$
-    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
-      word.in
-    }
-    { bbl.volume capitalize
-      volume tie.or.space.connect
-      bbl.of space.word *
-    }
-  if$
-  " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.incoll.inproc.crossref}
-{
-  word.in
-  " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.org.or.pub}
-{ 't :=
-  ""
-  address empty$ t empty$ and
-    'skip$
-    {
-      t empty$
-        { address empty$
-          'skip$
-          { address * }
-          if$
-        }
-        { t *
-          address empty$
-            'skip$
-            { ", " * address * }
-          if$
-        }
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.publisher.address}
-{ publisher empty$
-    { "empty publisher in " cite$ * warning$
-      ""
-    }
-    { publisher }
-  if$
-  format.org.or.pub
-}
-
-FUNCTION {format.organization.address}
-{ organization empty$
-    { "" }
-    { organization }
-  if$
-  format.org.or.pub
-}
-
-FUNCTION {article}
-{ output.bibitem
-  format.authors "author" output.check
-  author format.key output
-  format.date "year" output.check
-  date.block
-  format.title "title" output.check
-  new.sentence
-  crossref missing$
-    { journal
-      "journal" output.check
-%%SP 2001/01/23
-%% Add the space in format.vol.num.pages
-      %% add.blank
-  before.all 'output.state :=
-      format.vol.num.pages output
-    }
-    { format.article.crossref output.nonnull
-      format.pages output
-    }
-  if$
-  format.journal.pages
-  format.note output
-  fin.entry
-  write.url
-}
-
-FUNCTION {book}
-{ output.bibitem
-  author empty$
-    { format.editors "author and editor" output.check
-      editor format.key output
-    }
-    { format.authors output.nonnull
-      crossref missing$
-        { "author and editor" editor either.or.check }
-        'skip$
-      if$
-    }
-  if$
-  format.date "year" output.check
-  date.block
-  format.btitle "title" output.check
-  crossref missing$
-    { format.edition output
-      new.sentence
-  format.bvolume output
-      format.number.series output
-      new.sentence
-      format.publisher.address output
-    }
-    {
-  new.sentence
-      format.book.crossref output.nonnull
-    }
-  if$
-  format.note output
-  fin.entry
-  write.url
-}
-
-FUNCTION {booklet}
-{ output.bibitem
-  format.authors output
-  author format.key output
-  format.date "year" output.check
-  date.block
-  format.title "title" output.check
-  new.sentence
-  howpublished output
-  address output
-  format.note output
-  fin.entry
-  write.url
-}
-
-FUNCTION {inbook}
-{ output.bibitem
-  author empty$
-    { format.editors "author and editor" output.check
-      editor format.key output
-    }
-    { format.authors output.nonnull
-      crossref missing$
-        { "author and editor" editor either.or.check }
-        'skip$
-      if$
-    }
-  if$
-  format.date "year" output.check
-  date.block
-  format.btitle "title" output.check
-  crossref missing$
-    {
-      format.edition output
-      new.sentence
-      format.bvolume output
-      format.number.series output
-      new.sentence
-      format.publisher.address output
-      format.chapter.pages "chapter and pages" output.check
-    }
-    {
-      format.chapter.pages "chapter and pages" output.check
-  new.sentence
-      format.book.crossref output.nonnull
-    }
-  if$
-  format.pages "pages" output.check
-  format.note output
-  fin.entry
-  write.url
-}
-
-FUNCTION {incollection}
-{ output.bibitem
-  format.authors "author" output.check
-  author format.key output
-  format.date "year" output.check
-  date.block
-  format.title "title" output.check
-  new.sentence
-  crossref missing$
-    { format.in.ed.booktitle "booktitle" output.check
-      format.edition output
-      new.sentence
-      format.bvolume output
-      format.number.series output
-      new.sentence
-      format.publisher.address output
-      format.chapter.pages output
-    }
-    { format.incoll.inproc.crossref output.nonnull
-      format.chapter.pages output
-    }
-  if$
-  format.pages "pages" output.check
-  format.note output
-  fin.entry
-  write.url
-}
-
-FUNCTION {inproceedings}
-{ output.bibitem
-  format.authors "author" output.check
-  author format.key output
-  format.date "year" output.check
-  date.block
-  format.title "title" output.check
-  new.sentence
-  crossref missing$
-    { format.in.ed.booktitle "booktitle" output.check
-      format.edition output
-      new.sentence
-      format.bvolume output
-      format.number.series output
-      new.sentence
-      publisher empty$
-        { format.organization.address output }
-        { organization output
-          format.publisher.address output
-        }
-      if$
-%%SP 2001/01/23
-%%      format.pages output
-    }
-    { format.incoll.inproc.crossref output.nonnull
-%%SP 2001/01/23
-%%      format.pages output
-    }
-  if$
-%%SP 2001/01/23
-  format.pages "pages" output.check
-  format.note output
-  fin.entry
-  write.url
-}
-
-FUNCTION {conference} { inproceedings }
-
-FUNCTION {manual}
-{ output.bibitem
-  format.authors output
-  author format.key output
-  format.date "year" output.check
-  date.block
-  format.btitle "title" output.check
-  new.sentence
-  organization output
-  address output
-  format.edition output
-  format.note output
-  fin.entry
-  write.url
-}
-
-FUNCTION {mastersthesis}
-{ output.bibitem
-  format.authors "author" output.check
-  author format.key output
-  format.date "year" output.check
-  date.block
-  format.title "title" output.check
-  new.sentence
-  bbl.mthesis format.thesis.type output.nonnull
-  school "school" output.check
-  address output
-  format.note output
-  fin.entry
-  write.url
-}
-
-FUNCTION {misc}
-{ output.bibitem
-  format.authors output
-  author format.key output
-  format.date "year" output.check
-  date.block
-  format.title output
-  new.sentence
-  howpublished output
-  format.note output
-  fin.entry
-  write.url
-}
-
-FUNCTION {phdthesis}
-{ output.bibitem
-  format.authors "author" output.check
-  author format.key output
-  format.date "year" output.check
-  date.block
-  format.title "title" output.check
-  new.sentence
-  bbl.phdthesis format.thesis.type output.nonnull
-  school "school" output.check
-  address output
-  format.note output
-  fin.entry
-  write.url
-}
-
-FUNCTION {proceedings}
-{ output.bibitem
-  format.editors output
-  editor format.key output
-  format.date "year" output.check
-  date.block
-  format.btitle "title" output.check
-  new.sentence
-  format.bvolume output
-  format.number.series output
-  new.sentence
-  publisher empty$
-    { format.organization.address output }
-    { organization output
-      format.publisher.address output
-    }
-  if$
-  format.note output
-  fin.entry
-  write.url
-}
-
-FUNCTION {techreport}
-{ output.bibitem
-  format.authors "author" output.check
-  author format.key output
-  format.date "year" output.check
-  date.block
-  format.title "title" output.check
-  new.sentence
-  format.tr.number output.nonnull
-  institution "institution" output.check
-  address output
-  format.note output
-  fin.entry
-  write.url
-}
-
-FUNCTION {unpublished}
-{ output.bibitem
-  format.authors "author" output.check
-  author format.key output
-  format.date "year" output.check
-  date.block
-  format.title "title" output.check
-  format.note "note" output.check
-  fin.entry
-  write.url
-}
-
-FUNCTION {default.type} { misc }
-
-READ
-
-FUNCTION {sortify}
-{ purify$
-  "l" change.case$
-}
-
-INTEGERS { len }
-
-FUNCTION {chop.word}
-{ 's :=
-  'len :=
-  s #1 len substring$ =
-    { s len #1 + global.max$ substring$ }
-    's
-  if$
-}
-
-FUNCTION {format.lab.names}
-{ 's :=
-  s #1 "{vv~}{ll}" format.name$
-  s num.names$ duplicate$
-  #2 >
-    { pop$
-      " " * bbl.etal *
-    }
-    { #2 <
-        'skip$
-        { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
-            {
-              " " * bbl.etal *
-            }
-            { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
-              * }
-          if$
-        }
-      if$
-    }
-  if$
-}
-
-FUNCTION {author.key.label}
-{ author empty$
-    { key empty$
-        { cite$ #1 #3 substring$ }
-        'key
-      if$
-    }
-    { author format.lab.names }
-  if$
-}
-
-FUNCTION {author.editor.key.label}
-{ author empty$
-    { editor empty$
-        { key empty$
-            { cite$ #1 #3 substring$ }
-            'key
-          if$
-        }
-        { editor format.lab.names }
-      if$
-    }
-    { author format.lab.names }
-  if$
-}
-
-FUNCTION {editor.key.label}
-{ editor empty$
-    { key empty$
-        { cite$ #1 #3 substring$ }
-        'key
-      if$
-    }
-    { editor format.lab.names }
-  if$
-}
-
-FUNCTION {calc.short.authors}
-{ type$ "book" =
-  type$ "inbook" =
-  or
-    'author.editor.key.label
-    { type$ "proceedings" =
-        'editor.key.label
-        'author.key.label
-      if$
-    }
-  if$
-  'short.list :=
-}
-
-FUNCTION {calc.label}
-{ calc.short.authors
-  short.list
-  "("
-  *
-  year duplicate$ empty$
-     { pop$ "????" }
-     'skip$
-  if$
-  *
-  'label :=
-}
-
-FUNCTION {sort.format.names}
-{ 's :=
-  #1 'nameptr :=
-  ""
-  s num.names$ 'numnames :=
-  numnames 'namesleft :=
-    { namesleft #0 > }
-    { s nameptr
-      "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}"
-      format.name$ 't :=
-      nameptr #1 >
-        {
-          "   "  *
-          namesleft #1 = t "others" = and
-            { "zzzzz" * }
-            { t sortify * }
-          if$
-        }
-        { t sortify * }
-      if$
-      nameptr #1 + 'nameptr :=
-      namesleft #1 - 'namesleft :=
-    }
-  while$
-}
-
-FUNCTION {sort.format.title}
-{ 't :=
-  "A " #2
-    "An " #3
-      "The " #4 t chop.word
-    chop.word
-  chop.word
-  sortify
-  #1 global.max$ substring$
-}
-
-FUNCTION {author.sort}
-{ author empty$
-    { key empty$
-        { "to sort, need author or key in " cite$ * warning$
-          ""
-        }
-        { key sortify }
-      if$
-    }
-    { author sort.format.names }
-  if$
-}
-
-FUNCTION {author.editor.sort}
-{ author empty$
-    { editor empty$
-        { key empty$
-            { "to sort, need author, editor, or key in " cite$ * warning$
-              ""
-            }
-            { key sortify }
-          if$
-        }
-        { editor sort.format.names }
-      if$
-    }
-    { author sort.format.names }
-  if$
-}
-
-FUNCTION {editor.sort}
-{ editor empty$
-    { key empty$
-        { "to sort, need editor or key in " cite$ * warning$
-          ""
-        }
-        { key sortify }
-      if$
-    }
-    { editor sort.format.names }
-  if$
-}
-
-FUNCTION {presort}
-{ calc.label
-  label sortify
-  "    "
-  *
-  type$ "book" =
-  type$ "inbook" =
-  or
-    'author.editor.sort
-    { type$ "proceedings" =
-        'editor.sort
-        'author.sort
-      if$
-    }
-  if$
-  #1 entry.max$ substring$
-  'sort.label :=
-  sort.label
-  *
-  "    "
-  *
-  title field.or.null
-  sort.format.title
-  *
-  #1 entry.max$ substring$
-  'sort.key$ :=
-}
-
-ITERATE {presort}
-
-SORT
-
-STRINGS { last.label next.extra }
-
-INTEGERS { last.extra.num number.label }
-
-FUNCTION {initialize.extra.label.stuff}
-{ #0 int.to.chr$ 'last.label :=
-  "" 'next.extra :=
-  #0 'last.extra.num :=
-  #0 'number.label :=
-}
-
-FUNCTION {forward.pass}
-{ last.label label =
-    { last.extra.num #1 + 'last.extra.num :=
-      last.extra.num int.to.chr$ 'extra.label :=
-    }
-    { "a" chr.to.int$ 'last.extra.num :=
-      "" 'extra.label :=
-      label 'last.label :=
-    }
-  if$
-  number.label #1 + 'number.label :=
-}
-
-FUNCTION {reverse.pass}
-{ next.extra "b" =
-    { "a" 'extra.label := }
-    'skip$
-  if$
-  extra.label 'next.extra :=
-  extra.label
-  duplicate$ empty$
-    'skip$
-    { "{\natexlab{" swap$ * "}}" * }
-  if$
-  'extra.label :=
-  label extra.label * 'label :=
-}
-
-EXECUTE {initialize.extra.label.stuff}
-
-ITERATE {forward.pass}
-
-REVERSE {reverse.pass}
-
-FUNCTION {bib.sort.order}
-{ sort.label
-  "    "
-  *
-  year field.or.null sortify
-  *
-  "    "
-  *
-  title field.or.null
-  sort.format.title
-  *
-  #1 entry.max$ substring$
-  'sort.key$ :=
-}
-
-ITERATE {bib.sort.order}
-
-SORT
-
-FUNCTION {begin.bib}
-{ preamble$ empty$
-    'skip$
-    { preamble$ write$ newline$ }
-  if$
-  "\begin{thebibliography}{" number.label int.to.str$ * "}" *
-  write$ newline$
-  "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi"
-  write$ newline$
-  "\expandafter\ifx\csname url\endcsname\relax"
-  write$ newline$
-  "  \def\url#1{\texttt{#1}}\fi"
-  write$ newline$
-  "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi"
-  write$ newline$
-}
-
-EXECUTE {begin.bib}
-
-EXECUTE {init.state.consts}
-
-ITERATE {call.type$}
-
-FUNCTION {end.bib}
-{ newline$
-  "\end{thebibliography}" write$ newline$
-}
-
-EXECUTE {end.bib}
-%% End of customized bst file
-%%
-%% End of file `elsarticle-harv.bst'.
diff -r 6da349163758 -r 020cfc86ea0a elsarticle-template-harv.tex
--- a/elsarticle-template-harv.tex	Tue Oct 25 17:35:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-%%
-%% This is file `elsarticle-template-harv.tex',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% elsarticle.dtx  (with options: `harvtemplate')
-%% 
-%% Copyright 2007, 2008 Elsevier Ltd.
-%% 
-%% This file is part of the 'Elsarticle Bundle'.
-%% -------------------------------------------
-%% 
-%% It may be distributed under the conditions of the LaTeX Project Public
-%% License, either version 1.2 of this license or (at your option) any
-%% later version.  The latest version of this license is in
-%%    http://www.latex-project.org/lppl.txt
-%% and version 1.2 or later is part of all distributions of LaTeX
-%% version 1999/12/01 or later.
-%% 
-%% The list of all files belonging to the 'Elsarticle Bundle' is
-%% given in the file `manifest.txt'.
-%% 
-%% Template article for Elsevier's document class `elsarticle'
-%% with harvard style bibliographic references
-%% SP 2008/03/01
-
-\documentclass[preprint,12pt]{elsarticle}
-
-%% Use the option review to obtain double line spacing
-%% \documentclass[authoryear,preprint,review,12pt]{elsarticle}
-
-%% Use the options 1p,twocolumn; 3p; 3p,twocolumn; 5p; or 5p,twocolumn
-%% for a journal layout:
-%% \documentclass[final,1p,times]{elsarticle}
-%% \documentclass[final,1p,times,twocolumn]{elsarticle}
-%% \documentclass[final,3p,times]{elsarticle}
-%% \documentclass[final,3p,times,twocolumn]{elsarticle}
-%% \documentclass[final,5p,times]{elsarticle}
-%% \documentclass[final,5p,times,twocolumn]{elsarticle}
-
-%% if you use PostScript figures in your article
-%% use the graphics package for simple commands
-%% \usepackage{graphics}
-%% or use the graphicx package for more complicated commands
-%% \usepackage{graphicx}
-%% or use the epsfig package if you prefer to use the old commands
-%% \usepackage{epsfig}
-
-%% The amssymb package provides various useful mathematical symbols
-\usepackage{amssymb}
-%% The amsthm package provides extended theorem environments
-%% \usepackage{amsthm}
-
-%% The lineno packages adds line numbers. Start line numbering with
-%% \begin{linenumbers}, end it with \end{linenumbers}. Or switch it on
-%% for the whole article with \linenumbers.
-%% \usepackage{lineno}
-
-\journal{Nuclear Physics B}
-
-\begin{document}
-
-\begin{frontmatter}
-
-%% Title, authors and addresses
-
-%% use the tnoteref command within \title for footnotes;
-%% use the tnotetext command for theassociated footnote;
-%% use the fnref command within \author or \address for footnotes;
-%% use the fntext command for theassociated footnote;
-%% use the corref command within \author for corresponding author footnotes;
-%% use the cortext command for theassociated footnote;
-%% use the ead command for the email address,
-%% and the form \ead[url] for the home page:
-%% \title{Title\tnoteref{label1}}
-%% \tnotetext[label1]{}
-%% \author{Name\corref{cor1}\fnref{label2}}
-%% \ead{email address}
-%% \ead[url]{home page}
-%% \fntext[label2]{}
-%% \cortext[cor1]{}
-%% \address{Address\fnref{label3}}
-%% \fntext[label3]{}
-
-\title{}
-
-%% use optional labels to link authors explicitly to addresses:
-%% \author[label1,label2]{}
-%% \address[label1]{}
-%% \address[label2]{}
-
-\author{}
-
-\address{}
-
-\begin{abstract}
-%% Text of abstract
-
-\end{abstract}
-
-\begin{keyword}
-%% keywords here, in the form: keyword \sep keyword
-
-%% PACS codes here, in the form: \PACS code \sep code
-
-%% MSC codes here, in the form: \MSC code \sep code
-%% or \MSC[2008] code \sep code (2000 is the default)
-
-\end{keyword}
-
-\end{frontmatter}
-
-%% \linenumbers
-
-%% main text
-\section{}
-\label{}
-
-%% The Appendices part is started with the command \appendix;
-%% appendix sections are then done as normal sections
-%% \appendix
-
-%% \section{}
-%% \label{}
-
-\begin{thebibliography}{00}
-
-%% \bibitem{label}
-%% Text of bibliographic item
-
-\bibitem{}
-
-\end{thebibliography}
-\end{document}
-
-\endinput
-%%
-%% End of file `elsarticle-template-harv.tex'.
diff -r 6da349163758 -r 020cfc86ea0a elsarticle.cls
--- a/elsarticle.cls	Tue Oct 25 17:35:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,705 +0,0 @@
-%%
-%% This is file 'elsarticle.cls',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% elsarticle.dtx  (with options: 'package')
-%% 
-%% elsarticle.cls Copyright (C) 2007,2008 Elsevier Science
-%% 
-%% This file may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.2
-%% of this license or (at your option) any later version.
-%% The latest version of this license is in
-%%    http://www.latex-project.org/lppl.txt
-%% and version 1.2 or later is part of all distributions of LaTeX
-%% version 1999/12/01 or later.
-%%
-%% $Id: elsarticle.cls,v 1.8 2008-02-14 11:50:06 cvr Exp $
-%% 
- \def\RCSfile{elsarticle}%
- \def\RCSversion{1.0.1}%
- \def\RCSdate{2008/05/22}%
- \def\@shortjnl{\relax}
- \def\@journal{Elsevier Science} \def\@company{Elsevier Science}
- \def\@issn{000-0000}
- \def\@shortjid{elsarticle}
-\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesClass{\@shortjid}[\RCSdate, \RCSversion: \@journal]
-%
-%
-\def\ABD{\AtBeginDocument}
-\newif\ifpreprint \preprintfalse
-\newif\iflongmktitle \longmktitlefalse
-
-\def\@blstr{1}
-\newdimen\@bls
-\@bls=\baselineskip
-
-\def\@finalWarning{%
-  *****************************************************\MessageBreak
-   This document is typeset in the CRC style which\MessageBreak
-   is not suitable for submission.\MessageBreak
-   \MessageBreak
-   Please typeset again using 'preprint' option\MessageBreak
-   for creating PDF suitable for submission.\MessageBreak
-  ******************************************************\MessageBreak
-}
-\def\biboptions#1{\g at addto@macro\@biboptions{,#1}}
-\def\@biboptions{}
-\DeclareOption{preprint}{\global\preprinttrue
-  \gdef\@blstr{1}\xdef\jtype{0}%
-   \AtBeginDocument{\@twosidefalse\@mparswitchfalse}}
-\DeclareOption{final}{\gdef\@blstr{1}\global\preprintfalse}
-\DeclareOption{review}{\global\preprinttrue\gdef\@blstr{1.5}}
-\DeclareOption{authoryear}{\xdef\@biboptions{authoryear}}
-\DeclareOption{number}{\xdef\@biboptions{square,numbers}}
-\DeclareOption{longtitle}{\global\longmktitletrue}
-\DeclareOption{5p}{\xdef\jtype{5}\global\preprintfalse
-  \ExecuteOptions{twocolumn}}
-  \def\jtype{0}
-\DeclareOption{3p}{\xdef\jtype{3}\global\preprintfalse}
-\DeclareOption{1p}{\xdef\jtype{1}\global\preprintfalse
-  \AtBeginDocument{\@twocolumnfalse}}
-\DeclareOption{times}{\IfFileExists{txfonts.sty}%
-  {\AtEndOfClass{\RequirePackage{txfonts}%
-	 \gdef\ttdefault{cmtt}%
-	  \let\iint\relax
-		\let\iiint\relax
-		\let\iiiint\relax
-		\let\idotsint\relax
-		\let\openbox\relax}}{}}
-\ExecuteOptions{a4paper,10pt,oneside,onecolumn,number,preprint}
-\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
-\ProcessOptions
-\LoadClass{article}
-\RequirePackage{comment}
-
-%%
-%% Preamble
-%%
-\let\comma\@empty
-\let\tnotesep\@empty
-\def\title#1{\gdef\@title{#1}}
-\let\@title\@empty
-
-\def\elsLabel#1{\@bsphack\protected at write\@auxout{}%
-         {\string\Newlabel{#1}{\@currentlabel}}\@esphack}
-\def\Newlabel#1#2{\expandafter\xdef\csname X@#1\endcsname{#2}}
-
-\def\Ref#1{\@ifundefined{X@#1}{0}{\csname X@#1\endcsname}%
-%      \alarm{REF [#1]: \csname X@#1\endcsname}%
-}
-
-\def\tnotemark[#1]{\textsuperscript{\@for\@@tmark:=#1\do{%
-      \edef\tnotenum{\@ifundefined{X@\@@tmark}{1}{\Ref{\@@tmark}}}%
-      \ifcase\tnotenum\or\ding{73}\or,\ding{73}\ding{73}\fi}}%
-}
-\let\@tnotemark\@empty
-
-\let\@tnotes\@empty
-\RequirePackage{pifont}
-\newcounter{tnote}
-\def\tnotetext[#1]#2{\g at addto@macro\@tnotes{%
-	 \refstepcounter{tnote}\elsLabel{#1}%
-   \def\thefootnote{\ifcase\c at tnote\or\ding{73}\or\ding{73}\ding{73}\fi}%
-    \footnotetext{#2}}}
-
-\newcounter{fnote}
-\def\fnmark[#1]{\let\comma\@empty
-    \def\@fnmark{\@for\@@fnmark:=#1\do{%
-    \edef\fnotenum{\@ifundefined{X@\@@fnmark}{1}{\Ref{\@@fnmark}}}%
-		\unskip\comma\fnotenum\let\comma,}}%
-}
-
-\let\@fnotes\@empty\let\@fnmark\@empty
-\def\fntext[#1]#2{\g at addto@macro\@fnotes{%
-     \refstepcounter{fnote}\elsLabel{#1}%
-		 \def\thefootnote{\thefnote}%
-		 \global\setcounter{footnote}{\thefnote}%
-		 \footnotetext{#2}}}
-
-\def\cormark[#1]{\gdef\@cormark{\edef\cnotenum{%
-     \@ifundefined{X@#1}{0}{\Ref{#1}}}%
-		 \ifcase\cnotenum\or$\ast$\or$\ast\ast$\fi}}
-\let\@cormark\@empty
-\let\@cornotes\@empty
-\newcounter{cnote}
-\def\cortext[#1]#2{\g at addto@macro\@cornotes{%
-    \refstepcounter{cnote}\elsLabel{#1}% 
-    \def\thefootnote{\ifcase\thecnote\or$\ast$\or
-		  $\ast\ast$\fi}%
-    \footnotetext{#2}}}
-
-\def\corref#1{\cormark[#1]}
-\def\fnref#1{\fnmark[#1]}
-\def\tnoteref#1{\tnotemark[#1]}
-
-\def\resetTitleCounters{\c at cnote=0
-   \c at fnote=0 \c at tnote=0 \c at footnote=0}
-
-\let\eadsep\@empty
-\let\@elseads\@empty
-\let\@elsuads\@empty
-\def\ead{\@ifnextchar[{\@uad}{\@ead}}
-\gdef\@ead#1{\bgroup
-   \edef\tmp{\the\@eadauthor}
-   \immediate\write\@auxout{\string\emailauthor
-     {#1}{\expandafter\strip at prefix\meaning\tmp}}%
-  \egroup
-}
-\def\emailauthor#1#2{\g at addto@macro\@elseads{\raggedright%
-     \eadsep\texttt{#1} (#2)\def\eadsep{\unskip,\space}}%
-}
-\gdef\@uad[#1]#2{\bgroup
-   \edef\tmp{\the\@eadauthor}
-   \immediate\write\@auxout{\string\urlauthor
-     {#2}{\expandafter\strip at prefix\meaning\tmp}}%
-  \egroup
-}
-\def\urlauthor#1#2{\g at addto@macro\@elsuads{%
-     \eadsep\texttt{#1}\space(#2)\def\eadsep{\unskip,\space}}%
-}
-
-\def\elsauthors{}
-\def\pprinttitle{}
-\let\authorsep\@empty
-\newcounter{author}
-\def\author{\@ifnextchar[{\@@author}{\@author}}
-
-\newtoks\@eadauthor
-\def\@@author[#1]#2{\g at addto@macro\elsauthors{%
-    \def\baselinestretch{1}%
-    \authorsep#2\unskip\textsuperscript{%#1%
-      \@for\@@affmark:=#1\do{%
-       \edef\affnum{\@ifundefined{X@\@@affmark}{1}{\Ref{\@@affmark}}}%
-		   \unskip\comma\affnum\let\comma,}%
-      \ifx\@cormark\@empty\else\unskip,\@cormark\fi
-      \ifx\@fnmark\@empty\else\unskip\@fnmark\fi}%
-    \def\authorsep{\unskip,\space}%
-    \global\let\@cormark\@empty
-    \global\let\@fnmark\@empty}%
-    \@eadauthor={#2}
-}
-
-\def\@author#1{\g at addto@macro\elsauthors{\normalsize%
-    \def\baselinestretch{1}%
-    \upshape\authorsep#1\unskip\textsuperscript{\let\sep\@empty%
-      \ifx\@cormark\@empty\else$\ast$\let\sep=,\fi
-      \ifx\@fnmark\@empty\else\unskip\sep\@fnmark\let\sep=,\fi}%
-    \def\authorsep{\par\vskip15pt}%
-    \global\let\@cormark\@empty
-    \global\let\@fnmark\@empty}%
-    \@eadauthor={#1}
-}
-
-\def\elsaddress{}
-\def\addsep{\par\vskip6pt}
-\def\address{\@ifnextchar[{\@@address}{\@address}}
-
-\newcounter{affn}
-\renewcommand\theaffn{\alph{affn}}
-
-\long\def\@@address[#1]#2{\g at addto@macro\elsaddress{%
-    \def\baselinestretch{1}%
-     \refstepcounter{affn}\elsLabel{#1}%
-    \textsuperscript{\theaffn}#2\par}}
-
-\long\def\@address#1{\g at addto@macro\elsauthors{%
-    \def\baselinestretch{1}%
-    \addsep\footnotesize\itshape#1\def\addsep{\par\vskip6pt}}}
-
-\newbox\absbox
-\renewenvironment{abstract}{\global\setbox\absbox=\vbox\bgroup
-  \hsize=\textwidth\def\baselinestretch{1}%
-  \noindent\unskip\textbf{Abstract}
-	\par\medskip\noindent\unskip\ignorespaces}
- {\egroup}
-
-\newbox\keybox
-\def\keyword{%
-  \def\sep{\unskip, }%
-	\def\MSC{\@ifnextchar[{\@MSC}{\@MSC[2000]}}
-  \def\@MSC[##1]{\par\leavevmode\hbox {\it ##1~MSC:\space}}%
-  \def\PACS{\par\leavevmode\hbox {\it PACS:\space}}%
-  \global\setbox\keybox=\vbox\bgroup\hsize=\textwidth
-  \normalsize\normalfont\def\baselinestretch{1}
-  \parskip\z@
-  \noindent\textit{Key words: }
-  \raggedright                         % Keywords are not justified.
-  \ignorespaces}
-\def\endkeyword{\par \egroup}
-
-\newdimen\Columnwidth
-\Columnwidth=\columnwidth
-
-\def\printFirstPageNotes{%
-  \iflongmktitle
-	  \let\columnwidth=\textwidth\fi
-  \ifx\@tnotes\@empty\else\@tnotes\fi
-  \ifx\@cornotes\@empty\else\@cornotes\fi
-  \ifx\@elseads\@empty\relax\else
-   \let\thefootnote\relax
-   \footnotetext{\textit{Email addresses:\space}%
-     \@elseads}\fi
-  \ifx\@elsuads\@empty\relax\else
-   \let\thefootnote\relax
-   \footnotetext{\textit{URL:\space}%
-     \@elsuads}\fi
-  \ifx\@fnotes\@empty\else\@fnotes\fi
-  \iflongmktitle\if at twocolumn
-	  \let\columnwidth=\Columnwidth\fi\fi
-} 
- 
-\long\def\pprintMaketitle{\clearpage
-  \iflongmktitle\if at twocolumn\let\columnwidth=\textwidth\fi\fi
-  \resetTitleCounters
-  \def\baselinestretch{1}%
-  \printFirstPageNotes
-  \begin{center}%
-	\thispagestyle{pprintTitle}%
-   \def\baselinestretch{1}%
-    \Large\@title\par\vskip18pt
-    \normalsize\elsauthors\par\vskip10pt
-    \footnotesize\itshape\elsaddress\par\vskip36pt
-    \hrule\vskip12pt
-    \ifvoid\absbox\else\unvbox\absbox\par\vskip10pt\fi
-    \ifvoid\keybox\else\unvbox\keybox\par\vskip10pt\fi
-    \hrule\vskip12pt
-    \end{center}%
-  \gdef\thefootnote{\arabic{footnote}}%
-  }
-
-\def\printWarning{%
-     \mbox{}\par\vfill\par\bgroup
-     \fboxsep12pt\fboxrule1pt
-     \hspace*{.18\textwidth}
-     \fcolorbox{gray50}{gray10}{\box\warnbox}
-     \egroup\par\vfill\thispagestyle{empty}
-     \setcounter{page}{0}
-     \clearpage}
-
-\long\def\finalMaketitle{%
-  \resetTitleCounters
-  \def\baselinestretch{1}%
-   \MaketitleBox
-   \thispagestyle{pprintTitle}%
-  \gdef\thefootnote{\arabic{footnote}}%
-  }
-
-\long\def\MaketitleBox{%
-  \resetTitleCounters
-  \def\baselinestretch{1}%
-  \begin{center}%
-   \def\baselinestretch{1}%
-    \Large\@title\par\vskip18pt
-    \normalsize\elsauthors\par\vskip10pt
-    \footnotesize\itshape\elsaddress\par\vskip36pt
-    \hrule\vskip12pt
-    \ifvoid\absbox\else\unvbox\absbox\par\vskip10pt\fi
-    \ifvoid\keybox\else\unvbox\keybox\par\vskip10pt\fi
-    \hrule\vskip12pt
-    \end{center}%
-  }
-
-
-\def\FNtext#1{\par\bgroup\footnotesize#1\egroup}
-\newdimen\space at left
-\def\alarm#1{\typeout{******************************}%
-             \typeout{#1}%
-             \typeout{******************************}%
-}
-\long\def\getSpaceLeft{%\global\@twocolumnfalse%
-   \global\setbox0=\vbox{\hsize=\textwidth\MaketitleBox}%
-   \global\setbox1=\vbox{\hsize=\textwidth 
-    \let\footnotetext\FNtext
-    \printFirstPageNotes}%
-    \xdef\noteheight{\the\ht1}%
-    \xdef\titleheight{\the\ht0}%
-    \@tempdima=\vsize
-    \advance\@tempdima-\noteheight
-    \advance\@tempdima-1\baselineskip
-%     \alarm{Note height .... \noteheight}%
-%     \alarm{Title height .... \titleheight}%
-%   \alarm{T-height........ \the\textheight}%
-%   \alarm{Goal........ \the\@tempdima}%
-}
-
-
-%\ifpreprint\let\footnoterule\relax\fi
-  \skip\footins=24pt
-
-\newbox\els at boxa
-\newbox\els at boxb
-
-\ifpreprint
-  \def\maketitle{\pprintMaketitle}
-  \else
-   \ifnum\jtype=1
-    \def\maketitle{%
-      \iflongmktitle\getSpaceLeft
-       \global\setbox\els at boxa=\vsplit0 to \@tempdima
-       \box\els at boxa\par\resetTitleCounters
-       \thispagestyle{pprintTitle}%
-       \printFirstPageNotes
-       \box0%
-      \else
-       \finalMaketitle\printFirstPageNotes
-      \fi
-    \gdef\thefootnote{\arabic{footnote}}}%
-  \else
-	\ifnum\jtype=5
-    \def\maketitle{%
-      \iflongmktitle\getSpaceLeft
-       \global\setbox\els at boxa=\vsplit0 to \@tempdima
-       \box\els at boxa\par\resetTitleCounters
-       \thispagestyle{pprintTitle}%
-       \printFirstPageNotes
-       \twocolumn[\box0]%\printFirstPageNotes
-      \else
-       \twocolumn[\finalMaketitle]\printFirstPageNotes
-     \fi
-     \gdef\thefootnote{\arabic{footnote}}}
-  \else
-  \if at twocolumn
-    \def\maketitle{%
-      \iflongmktitle\getSpaceLeft
-       \global\setbox\els at boxa=\vsplit0 to \@tempdima
-       \box\els at boxa\par\resetTitleCounters
-       \thispagestyle{pprintTitle}%
-       \printFirstPageNotes
-       \twocolumn[\box0]%
-      \else
-       \twocolumn[\finalMaketitle]\printFirstPageNotes
-      \fi
-     \gdef\thefootnote{\arabic{footnote}}}%
-   \else
-    \def\maketitle{%
-      \iflongmktitle\getSpaceLeft
-       \global\setbox\els at boxa=\vsplit0 to \@tempdima
-       \box\els at boxa\par\resetTitleCounters
-       \thispagestyle{pprintTitle}%
-       \printFirstPageNotes
-       \box0%
-     \else
-       \finalMaketitle\printFirstPageNotes
-      \fi
-    \gdef\thefootnote{\arabic{footnote}}}%
-   \fi
-  \fi
- \fi
-\fi
-
-%%
-%% Headers/footers
-%%
-\def\ps at pprintTitle{%
-     \let\@oddhead\@empty
-     \let\@evenhead\@empty
-     \def\@oddfoot{\footnotesize\itshape
-       Preprint submitted to \ifx\@journal\@empty Elsevier
-       \else\@journal\fi\hfill\today}%
-     \let\@evenfoot\@oddfoot}
-
-
-%%
-%% Section headings
-%%
-\def\@seccntDot{.}
-\def\@seccntformat#1{\csname the#1\endcsname\@seccntDot\hskip 0.5em}
-
-\renewcommand\section{\@startsection {section}{1}{\z@}%
-           {18\p@ \@plus 6\p@ \@minus 3\p@}%
-           {9\p@ \@plus 6\p@ \@minus 3\p@}%
-           {\normalsize\bfseries\boldmath}}
-\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
-           {12\p@ \@plus 6\p@ \@minus 3\p@}%
-           {3\p@ \@plus 6\p@ \@minus 3\p@}%
-           {\normalfont\normalsize\itshape}}
-\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
-           {12\p@ \@plus 6\p@ \@minus 3\p@}%
-           {\p@}%
-           {\normalfont\normalsize\itshape}}
-
-\def\paragraph{\secdef{\els at aparagraph}{\els at bparagraph}}
-\def\els at aparagraph[#1]#2{\elsparagraph[#1]{#2.}}
-\def\els at bparagraph#1{\elsparagraph*{#1.}}
-
-\newcommand\elsparagraph{\@startsection{paragraph}{4}{0\z@}%
-           {10\p@ \@plus 6\p@ \@minus 3\p@}%
-           {-6\p@}%
-           {\normalfont\itshape}}
-
-%%
-%% List environment
-%%
-\newtoks\@enLab  %\newtoks\@enfont
-\def\@enQmark{?}
-\def\@enLabel#1#2{%
-  \edef\@enThe{\noexpand#1{\@enumctr}}%
-  \@enLab\expandafter{\the\@enLab\csname the\@enumctr\endcsname}%
-  \@enloop}
-\def\@enSpace{\afterassignment\@enSp at ce\let\@tempa= }
-\def\@enSp at ce{\@enLab\expandafter{\the\@enLab\space}\@enloop}
-\def\@enGroup#1{\@enLab\expandafter{\the\@enLab{#1}}\@enloop}
-\def\@enOther#1{\@enLab\expandafter{\the\@enLab#1}\@enloop}
-\def\@enloop{\futurelet\@entemp\@enloop@}
-\def\@enloop@{%
-  \ifx A\@entemp         \def\@tempa{\@enLabel\Alph  }\else
-  \ifx a\@entemp         \def\@tempa{\@enLabel\alph  }\else
-  \ifx i\@entemp         \def\@tempa{\@enLabel\roman }\else
-  \ifx I\@entemp         \def\@tempa{\@enLabel\Roman }\else
-  \ifx 1\@entemp         \def\@tempa{\@enLabel\arabic}\else
-  \ifx \@sptoken\@entemp \let\@tempa\@enSpace         \else
-  \ifx \bgroup\@entemp   \let\@tempa\@enGroup         \else
-  \ifx \@enum@\@entemp   \let\@tempa\@gobble          \else
-                         \let\@tempa\@enOther
-             \fi\fi\fi\fi\fi\fi\fi\fi
-  \@tempa}
-\newlength{\@sep} \newlength{\@@sep}
-\setlength{\@sep}{.5\baselineskip plus.2\baselineskip
-            minus.2\baselineskip}
-\setlength{\@@sep}{.1\baselineskip plus.01\baselineskip
-            minus.05\baselineskip}
-\providecommand{\sfbc}{\rmfamily\upshape}
-\providecommand{\sfn}{\rmfamily\upshape}
-\def\@enfont{\ifnum \@enumdepth >1\let\@nxt\sfn \else\let\@nxt\sfbc \fi\@nxt}
-\def\enumerate{% 
-   \ifnum \@enumdepth >3 \@toodeep\else
-      \advance\@enumdepth \@ne
-      \edef\@enumctr{enum\romannumeral\the\@enumdepth}\fi
-   \@ifnextchar[{\@@enum@}{\@enum@}}
-\def\@@enum@[#1]{%
-  \@enLab{}\let\@enThe\@enQmark
-  \@enloop#1\@enum@
-  \ifx\@enThe\@enQmark\@warning{The counter will not be printed.%
-   ^^J\space\@spaces\@spaces\@spaces The label is: \the\@enLab}\fi
-  \expandafter\edef\csname label\@enumctr\endcsname{\the\@enLab}%
-  \expandafter\let\csname the\@enumctr\endcsname\@enThe
-  \csname c@\@enumctr\endcsname7
-  \expandafter\settowidth
-            \csname leftmargin\romannumeral\@enumdepth\endcsname
-            {\the\@enLab\hskip\labelsep}%
-  \@enum@}
-\def\@enum@{\list{{\@enfont\csname label\@enumctr\endcsname}}%
-           {\usecounter{\@enumctr}\def\makelabel##1{\hss\llap{##1}}%
-		   \ifnum \@enumdepth>1\setlength{\topsep}{\@@sep}\else
-           \setlength{\topsep}{\@sep}\fi
-		   \ifnum \@enumdepth>1\setlength{\itemsep}{0pt plus1pt minus1pt}%
-		   \else \setlength{\itemsep}{\@@sep}\fi
-			\setlength\leftmargin{2em}%%%{1.8em}
-		   \setlength{\parsep}{0pt plus1pt minus1pt}%
-		   \setlength{\parskip}{0pt plus1pt minus1pt}}}
-		   
-\def\endenumerate{\par\ifnum \@enumdepth >1\addvspace{\@@sep}\else 
-           \addvspace{\@sep}\fi \endlist}
-
-\def\sitem{\@noitemargtrue\@item[\@itemlabel *]}
-
-\def\itemize{\@ifnextchar[{\@Itemize}{\@Itemize[]}}
-
-\def\@Itemize[#1]{\def\next{#1}%
-  \ifnum \@itemdepth >\thr@@\@toodeep\else
-	  \advance\@itemdepth\@ne
-		\ifx\next\@empty\else\expandafter\def\csname 
-		 labelitem\romannumeral\the\@itemdepth\endcsname{#1}\fi%
-		\edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
-		\expandafter\list\csname\@itemitem\endcsname
-		{\def\makelabel##1{\hss\llap{##1}}}%
-	\fi}
-%%
-%% Theorem environment
-%%
-\def\newdefinition#1{
-  \@ifnextchar[{\@odfn{#1}}{\@ndfn{#1}}}
-\def\@ndfn#1#2{
-  \@ifnextchar[{\@xndfn{#1}{#2}}{\@yndfn{#1}{#2}}}
-\def\@xndfn#1#2[#3]{
-  \expandafter\@ifdefinable\csname #1\endcsname
-    {\@definecounter{#1}\@newctr{#1}[#3]
-     \expandafter\xdef\csname the#1\endcsname{
-       \expandafter\noexpand\csname the#3\endcsname \@dfncountersep
-          \@dfncounter{#1}}
-     \global\@namedef{#1}{\@dfn{#1}{#2}}
-     \global\@namedef{end#1}{\@enddefinition}}}
-\def\@yndfn#1#2{
-  \expandafter\@ifdefinable\csname #1\endcsname
-    {\@definecounter{#1}
-     \expandafter\xdef\csname the#1\endcsname{\@dfncounter{#1}}
-     \global\@namedef{#1}{\@dfn{#1}{#2}}
-     \global\@namedef{end#1}{\@enddefinition}}}
-\def\@odfn#1[#2]#3{
-  \@ifundefined{c@#2}{\@nocounterr{#2}}
-    {\expandafter\@ifdefinable\csname #1\endcsname
-    {\global\@namedef{the#1}{\@nameuse{the#2}}
-  \global\@namedef{#1}{\@dfn{#2}{#3}}
-  \global\@namedef{end#1}{\@enddefinition}}}}
-\def\@dfn#1#2{
-  \refstepcounter{#1}
-  \@ifnextchar[{\@ydfn{#1}{#2}}{\@xdfn{#1}{#2}}}
-\def\@xdfn#1#2{
-  \@begindefinition{#2}{\csname the#1\endcsname}\ignorespaces}
-\def\@ydfn#1#2[#3]{
-  \@opargbegindefinition{#2}{\csname the#1\endcsname}{#3}\ignorespaces}
-\def\@dfncounter#1{\noexpand\arabic{#1}}
-\def\@dfncountersep{.}
-\def\@begindefinition#1#2{\trivlist
-   \item[\hskip\labelsep{\bfseries#1#2.}]\upshape}
-\def\@opargbegindefinition#1#2#3{\trivlist
-      \item[\hskip\labelsep{\bfseries #1#2\ (#3).}]\upshape}
-\def\@enddefinition{\endtrivlist}
-
-\def\@begintheorem#1#2{\trivlist
-  \let\baselinestretch\@blstr
-   \item[\hskip \labelsep{\bfseries #1\ #2.}]\itshape}
-\def\@opargbegintheorem#1#2#3{\trivlist
-  \let\baselinestretch\@blstr
-      \item[\hskip \labelsep{\bfseries #1\ #2\ (#3).}]\itshape}
-
-\def\newproof#1{%
-  \@ifnextchar[{\@oprf{#1}}{\@nprf{#1}}}
-\def\@nprf#1#2{%
-  \@ifnextchar[{\@xnprf{#1}{#2}}{\@ynprf{#1}{#2}}}
-\def\@xnprf#1#2[#3]{%
-  \expandafter\@ifdefinable\csname #1\endcsname
-    {\@definecounter{#1}\@newctr{#1}[#3]%
-     \expandafter\xdef\csname the#1\endcsname{%
-       \expandafter\noexpand\csname the#3\endcsname \@prfcountersep
-          \@prfcounter{#1}}%
-     \global\@namedef{#1}{\@prf{#1}{#2}}%
-     \global\@namedef{end#1}{\@endproof}}}
-\def\@ynprf#1#2{%
-  \expandafter\@ifdefinable\csname #1\endcsname
-    {\@definecounter{#1}%
-     \expandafter\xdef\csname the#1\endcsname{\@prfcounter{#1}}%
-     \global\@namedef{#1}{\@prf{#1}{#2}}%
-     \global\@namedef{end#1}{\@endproof}}}
-\def\@oprf#1[#2]#3{%
-  \@ifundefined{c@#2}{\@nocounterr{#2}}%
-    {\expandafter\@ifdefinable\csname #1\endcsname
-    {\global\@namedef{the#1}{\@nameuse{the#2}}%
-  \global\@namedef{#1}{\@prf{#2}{#3}}%
-  \global\@namedef{end#1}{\@endproof}}}}
-\def\@prf#1#2{%
-  \refstepcounter{#1}%
-  \@ifnextchar[{\@yprf{#1}{#2}}{\@xprf{#1}{#2}}}
-\def\@xprf#1#2{%
-  \@beginproof{#2}{\csname the#1\endcsname}\ignorespaces}
-\def\@yprf#1#2[#3]{%
-  \@opargbeginproof{#2}{\csname the#1\endcsname}{#3}\ignorespaces}
-\def\@prfcounter#1{\noexpand\arabic{#1}}
-\def\@prfcountersep{.}
-\def\@beginproof#1#2{\trivlist\let\baselinestretch\@blstr
-   \item[\hskip \labelsep{\scshape #1.}]\rmfamily}
-\def\@opargbeginproof#1#2#3{\trivlist\let\baselinestretch\@blstr
-      \item[\hskip \labelsep{\scshape #1\ (#3).}]\rmfamily}
-\def\@endproof{\endtrivlist}
-\newcommand*{\qed}{\hbox{}\hfill$\Box$}
-
-\RequirePackage[\@biboptions]{natbib}
-
-\let\baselinestretch=\@blstr
-
-
-%%
-%% Page dimensions and margins for final form
-%%
-\ifnum\jtype=1
- \RequirePackage{geometry}
- \geometry{twoside,
-% top=30mm,
-% paperwidth=165mm,
-% paperheight=240mm,
-  paperwidth=210mm,
-  paperheight=297mm,
-  textheight=562pt,
-  textwidth=384pt,
-%  inner=16mm,
-%  top=22.1mm,
-  centering,
-  headheight=50pt,
-  headsep=12pt,
-  footskip=12pt,
-  footnotesep=24pt plus 2pt minus 12pt,
- }
- \global\let\bibfont=\footnotesize
- \global\bibsep=0pt
- \if at twocolumn\global\@twocolumnfalse\fi 
-%
-\else\ifnum\jtype=3
- \RequirePackage{geometry}
- \geometry{twoside,
-%  paperwidth=192mm,
-%  paperheight=262mm,
-  paperwidth=210mm,
-  paperheight=297mm,
-  textheight=622pt,
-  textwidth=468pt,
-%  inner=13.1mm,
-%  top=22.1mm,
-  centering,
-	headheight=50pt,
-  headsep=12pt,
-  footskip=12pt,
-  footnotesep=24pt plus 2pt minus 12pt,
-  columnsep=2pc
- }
- \global\let\bibfont=\footnotesize
- \global\bibsep=0pt
- \if at twocolumn\input{fleqn.clo}\fi 
-%%
-%% End of option '3p'
-%%
-\else\ifnum\jtype=5
- \RequirePackage{geometry}
- \geometry{twoside,
-% top=30mm,
-  paperwidth=210mm,
-%  paperheight=280mm,
-  paperheight=297mm,
-  textheight=682pt,
-  textwidth=522pt,
-%  inner=15mm,
-%  top=23.2mm,
-  centering,
-	headheight=50pt,
-  headsep=12pt,
-  footskip=18pt,
-  footnotesep=24pt plus 2pt minus 12pt,
-  columnsep=18pt
- }%
- \global\let\bibfont=\footnotesize
- \global\bibsep=0pt
- \input{fleqn.clo}
- \global\@twocolumntrue
-%%
-%% End of option '5p'
-%%
-\fi\fi\fi
-
-\def\journal#1{\gdef\@journal{#1}}
- \let\@journal\@empty
-\newenvironment{frontmatter}{}{\maketitle}
-
-\long\def\@makecaption#1#2{%
-  \vskip\abovecaptionskip\footnotesize
-  \sbox\@tempboxa{#1: #2}%
-  \ifdim \wd\@tempboxa >\hsize
-    #1: #2\par
-  \else
-    \global \@minipagefalse
-    \hb at xt@\hsize{\hfil\box\@tempboxa\hfil}%
-  \fi
-  \vskip\belowcaptionskip}
-
-%\RequirePackage[expansion=alltext,stretch=30]{microtype}
-\AtBeginDocument{\@ifpackageloaded{hyperref}
-  {\def\@linkcolor{blue}
-   \def\@anchorcolor{blue}
-   \def\@citecolor{blue}
-   \def\@filecolor{blue}
-   \def\@urlcolor{blue}
-   \def\@menucolor{blue}
-   \def\@pagecolor{blue}
-}{}}
diff -r 6da349163758 -r 020cfc86ea0a elsdoc.pdf
Binary file elsdoc.pdf has changed
diff -r 6da349163758 -r 020cfc86ea0a faultRup.tex
--- a/faultRup.tex	Tue Oct 25 17:35:54 2011 -0500
+++ b/faultRup.tex	Mon Mar 26 17:34:10 2012 -0700
@@ -1,52 +1,74 @@
-%\documentclass[draftstyle]{bssa} % 2 column, BSSA print style
-\documentclass{bssa} % double-spaced, submission style
+% submission style, remove draft for preprint style
+\documentclass[jgr]{agutex}
 
+\usepackage{lineno}
 \usepackage{array}
-\usepackage{epsfig}
 \usepackage{rotating}
 \usepackage[centertags]{amsmath}
+
+
+% :SUBMIT: if draft, comment out this line
+\usepackage{graphics}
+% and use this instead
+%\setkeys{Gin}{draft=false}
+%\linenumbers*[1]
+
+
+% ======================================================================
+% TEMPORARY (must be removed for submission)
+% ======================================================================
+% :SUBMIT: comment out these commands (\new command not allowed)
 \usepackage{color}
-\usepackage{hyperref}
-
 \newcommand\brad[1]{{\color{red}\bf [BRAD: #1]}}
 \newcommand\matt[1]{{\color{blue}\bf [MATT: #1]}}
 \newcommand\charles[1]{{\color{green}\bf [CHARLES: #1]}}
 
-\newcommand{\tensor}[1]{\overline{#1}}
-\newcommand{\tensorfour}[1]{\widetilde{#1}}
-\newcommand{\tpdt}{t+\Delta t}
-\newcommand{\tmdt}{t-\Delta t}
-\newcommand{\code}[1]{{\tt #1}}
+% ======================================================================
+% PREAMBLE
+% ======================================================================
+% Author names in capital letters:
+\authorrunninghead{AAGAARD ET AL.}
 
-\widowpenalty=999999
-\clubpenalty=999999
-\brokenpenalty=999999
+% Shorter version of title entered in capital letters:
+\titlerunninghead{A DOMAIN DECOMPOSITION APPROACH TO IMPLEMENTING FAULT SLIP}
 
-\title{A Domain Decomposition Approach to Implementing Fault Slip in
-  Finite-Element Models of Quasi-static and Dynamic Crustal Deformation}
-\author{Brad T. Aagaard, Matthew G. Knepley, Charles A. Williams}
+% Author addresses
+\authoraddr{B. T. Aagaard, USGS MS977, 345 Middlefield Rd, Menlo Park,
+  CA 94025, USA. (baagaard at usgs.gov)}
 
-\affiliation{U.S. Geological Survey, MS977\\
-  345 Middlefield Rd.\\
-  Menlo Park, CA  94025}
+\authoraddr{M. G. Knepley, Computation Institute, University of
+  Chicago, Searle Chemistry Laboratory, 5735 S. Ellis Avenue, Chicago,
+  IL 60637, USA.}
 
-\date{\today}
-
+\authoraddr{C. A. Williams, 1 Fairway Drive, Avalon, PO Box 30368,
+  Lower Hutt 5040, New Zealand.}
 
 % ==================================================================
 \begin{document}
 
-\maketitle
+\title{A Domain Decomposition Approach to Implementing Fault Slip in
+  Finite-Element Models of Quasi-static and Dynamic Crustal
+  Deformation}
 
+\authors{B. T. Aagaard,\altaffilmark{1}
+  Matthew G. Knepley,\altaffilmark{2}
+  and Charles A. Williams\altaffilmark{3}}
+
+\altaffiltext{1}{Earthquake Science Center, U.S. Geological Survey,
+  Menlo Park, California, USA.}
+
+\altaffiltext{2}{Computation Institute, University of Chicago,
+  Chicago, Illinois, USA.}
+
+\altaffiltext{3}{GNS Science, Lower Hutt, New Zealand.}
+
+% ------------------------------------------------------------------
 \begin{abstract}
-% maximum of 250 words
-  Focus on fault implementation and show how it colors all our
-  computational and code decisions.
+  \brad{ADD ABSTRACT HERE}
 \end{abstract}
   
-\iftwocolumn % 2 columns
-  \begin{multicols}{2}
-\fi
+% ------------------------------------------------------------------
+\begin{article}
 
 % ------------------------------------------------------------------
 \section{Introduction}
@@ -73,29 +95,30 @@ example, studies of slow deformation ass
 example, studies of slow deformation associated with interseismic and
 postseismic behavior often approximate dynamic rupture behavior with
 the static coseismic slip
-\cite{Reilinger:etal:2000,Pollitz:etal:2001,Langbein:etal:2006,Chlieh:etal:2007}.
+\citep{Reilinger:etal:2000,Pollitz:etal:2001,Langbein:etal:2006,Chlieh:etal:2007}.
 Likewise, studies of rapid deformation associated with earthquake
 rupture propagation often approximate the loading of the crust via
 simplistic assumptions about the stress field at the beginning of a
 rupture
-\cite{Aagaard:etal:BSSA:2001,Peyrat:etal:2001,Oglesby:Day:2001,Dunham:Archuleta:2004}. Earthquake
+\citep{Aagaard:etal:BSSA:2001,Peyrat:etal:2001,Oglesby:Day:2001,Dunham:Archuleta:2004}. Earthquake
 simulators, which attempt to model multiple earthquake cycles,
-simplify not only the fault loading and rupture propagation but also
-the physical properties in order to make the calculations tractable
-\cite{Ward:1992,Rundle:etal:2006,Pollitz:Schwartz:2008,Dieterich:Richards-Dinger:2010}.
+generally simplify not only the fault loading and rupture propagation
+but also the physical properties in order to make the calculations
+tractable
+\citep{Ward:1992,Rundle:etal:2006,Pollitz:Schwartz:2008,Dieterich:Richards-Dinger:2010}.
 
 Several recent dynamic spontaneous rupture modeling studies have
 attempted to examine a broader space-time window in order to remove
 simplifying assumptions and more accurately capture the complex
 interactions over the earthquake cycle. For example,
-\citeN{Duan:Oglesby:2005} simulated multiple earthquake cycles on a
+\cite{Duan:Oglesby:2005} simulated multiple earthquake cycles on a
 fault with a bend in order to capture the spatial variation in the
 stress field around the bend, which they found to have a strong role
 in determining whether a rupture would propagate past the bend. By
 spinning up the model over many earthquake cycles, they obtained a
 much more realistic stress field immediately prior to rupture compared
 with assuming a simple stress field or calculating the stress field
-from a static analysis. \citeN{Chen:Lapusta:2009} examined the
+from a static analysis. \cite{Chen:Lapusta:2009} examined the
 behavior of small repeating earthquakes by modeling a stable sliding
 region (friction increases with slip rate) surrounding an unstable
 sliding region (friction decreases with slip rate). They found that
@@ -106,7 +129,7 @@ possible if they did not explicitly mode
 possible if they did not explicitly model the interseismic
 deformation. 
 
-\citeN{Kaneko:etal:????} have developed some of the most sophisticated
+\cite{Kaneko:etal:????} have developed some of the most sophisticated
 earthquake cycle models. Using spectral element simulations that
 capture the dynamic rupture propagation as well as the interseismic
 deformation, they examined the effects of low-rigidity layers and a
@@ -141,11 +164,11 @@ Other compelling reasons led us to devel
 Other compelling reasons led us to develop such a code capable of
 modeling both interseismic deformation and earthquake rupture
 propagation. Both types of simulations require the same basic
-infrastructure: importing of models from mesh generators, parallel
-data structures for finite-elements, bulk constitutive models for
+infrastructure: importing models from mesh generators, parallel data
+structures for finite-elements, bulk constitutive models for
 elasticity, fault implementations for prescribed slip and fault
 constitutive models, and output of the solution and state variables
-over the domain. The two types of simulations do tend to use different
+over the domain. The two types of simulations generally use different
 boundary conditions, with interseismic deformation usually driven by
 Dirichlet (displacement/velocity) or Neumann (traction) boundary
 conditions and rupture propagation simulations using absorbing
@@ -159,7 +182,7 @@ discuss later.
 
 Additional motivation for developing PyLith arose from the geophysics
 community as part of the Computational Infrastructure for Geodynamics
-(CIG) project \cite{CIG:web:page}. CIG provides guidelines for
+(CIG) project \citep{CIG:web:page}. CIG provides guidelines for
 developing robust, open-source code as well as a forum for gathering
 feature requests from the community. Serving the broad needs of the
 community with limited resources generated further incentives for
@@ -168,9 +191,10 @@ seperate code bases would require a cons
 seperate code bases would require a considerably greater development
 effort.
 
-\brad{Insert transition sentence : modeling fault slip is a key
-  feature} Implementing slip on the potentially nonplanar fault
-surface differentiates these types of problems from many other
+With the goal of modeling the entire earthquake cycle with as few
+simplifications as possible, much of the code development has focused
+on modeling fault slip. Implementing slip on the potentially nonplanar
+fault surface differentiates these types of problems from many other
 elasticity problems. Complexities arise because earthquakes may
 involve offset on multiple, intersecting irregularly shaped fault
 surfaces in the interior of a modeling domain. Furthermore, we want
@@ -179,7 +203,7 @@ specifies the friction on the fault surf
 specifies the friction on the fault surface. Here, we describe a
 robust, yet flexible method for implementing fault slip with a domain
 decomposition approach, its affect on the overall design of PyLith,
-and verification of its implementation using a few benchmarks.
+and verification of its implementation using benchmarks.
 
 % ------------------------------------------------------------------
 \section{Numerical Model of Fault Slip}
@@ -187,25 +211,25 @@ In this section we summarize the formula
 In this section we summarize the formulation of the governing
 equations using the finite-element method. We augment the conventional
 finite-element formulation for elasticity with a domain decomposition
-approach \cite{Smith:etal:1996,Zienkiewicz:Taylor:2005} to implement
-the fault slip.  The PyLith manual \cite{PyLith:manual:1.6.2} provides
+approach \citep{Smith:etal:1996,Zienkiewicz:Taylor:2005} to implement
+the fault slip.  The PyLith manual \citep{PyLith:manual:1.6.2} provides
 a step-by-step description of the formulation.
 
 We solve the elasticity equation including inertial terms,
 \begin{gather}
-  \rho \frac{\partial^2\vec{u}}{\partial t^2} - \vec{f} 
-  - \tensor{\nabla} \cdot \tensor{\sigma} = \vec{0} \text{ in }V, \\
-  \tensor{\sigma} \cdot \vec{n} = \vec{T} \text{ on }S_T, \\
-  \vec{u} = \vec{u}_0 \text{ on }S_u, \\
-  \left( \vec{d} - (\vec{u}_{+} - \vec{u}_{-}\right)) = \vec{0}
+  \rho \frac{\partial^2\mathbf{u}}{\partial t^2} - \mathbf{f} 
+  - \mathsf{\nabla} \cdot \mathsf{\sigma} = \mathbf{0} \text{ in }V, \\
+  \mathsf{\sigma} \cdot \mathbf{n} = \mathbf{T} \text{ on }S_T, \\
+  \mathbf{u} = \mathbf{u}_0 \text{ on }S_u, \\
+  \mathbf{d} - (\mathbf{u}_{+} - \mathbf{u}_{-}) = \mathbf{0}
   \text{ on }S_f, \label{eqn:fault:disp}
 \end{gather}
-where $\vec{u}$ is the displacement vector, $\rho$ is the mass
-density, $\vec{f}$ is the body force vector, $\tensor{\sigma}$ is the
-Cauchy stress tensor, and $t$ is time. We specify tractions $\vec{T}$
-on surface $S_T$, displacements $\vec{u_0}$ on surface $S_u$, and slip
-$\vec{d}$ on fault surface $S_f$, where the tractions and fault slip
-are in global coordinates. Because both $\vec{T}$ and $\vec{u}$ are vector
+where $\mathbf{u}$ is the displacement vector, $\rho$ is the mass
+density, $\mathbf{f}$ is the body force vector, $\mathsf{\sigma}$ is the
+Cauchy stress tensor, and $t$ is time. We specify tractions $\mathbf{T}$
+on surface $S_T$, displacements $\mathbf{u_0}$ on surface $S_u$, and slip
+$\mathbf{d}$ on fault surface $S_f$, where the tractions and fault slip
+are in global coordinates. Because both $\mathbf{T}$ and $\mathbf{u}$ are vector
 quantities, there can be some spatial overlap of the surfaces $S_T$
 and $S_u$; however, a degree of freedom at any location cannot be
 associated with both types of boundary conditions simultaneously.
@@ -215,56 +239,50 @@ dot product of the governing equation wi
 dot product of the governing equation with a weighting function and
 setting the integral over the domain equal to zero,
 \begin{equation}
-  \int_{V} \vec{\phi} \cdot 
-  \left( \tensor{\nabla} \cdot \tensor{\sigma} + \vec{f} -
-    \rho\frac{\partial^{2}\vec{u}}{\partial t^{2}} \right) 
+  \int_{V} \mathbf{\phi} \cdot 
+  \left( \mathsf{\nabla} \cdot \mathsf{\sigma} + \mathbf{f} -
+    \rho\frac{\partial^{2}\mathbf{u}}{\partial t^{2}} \right) 
   \, dV=0.
 \end{equation}
-The weighting function $\vec{\phi}$ is a piecewise differential vector
-field with $\vec{\phi} = \vec{0}$ on $S_u$. After some algebra and
+The weighting function $\mathbf{\phi}$ is a piecewise differential vector
+field with $\mathbf{\phi} = \mathbf{0}$ on $S_u$. After some algebra and
 use of the boundary conditions, we have
 \begin{equation}
-- \int_{V} \nabla \vec{\phi} : \tensor{\sigma} \, dV
-+ \int_{S_T} \vec{\phi} \cdot \vec{T} \, dS
-+ \int_{V} \vec{\phi} \cdot \vec{f} \, dV 
-- \int_{V} \vec{\phi} \cdot \rho \frac{\partial^{2}\vec{u}}{\partial t^{2}} \, dV
-=0.
+  \begin{split}
+    - \int_{V} \nabla \mathbf{\phi} : \mathsf{\sigma} \, dV
+    + \int_{S_T} \mathbf{\phi} \cdot \mathbf{T} \, dS
+    + \int_{V} \mathbf{\phi} \cdot \mathbf{f} \, dV \\
+    - \int_{V} \mathbf{\phi} \cdot \rho \frac{\partial^{2}\mathbf{u}}{\partial t^{2}} \, dV
+    =0.
+  \end{split}
 \end{equation}
 
 Using a domain decomposition approach, we consider the fault surface
-as an interior boundary between two domains. We assign a fault normal
+as an interior boundary between two domains as shown in
+Figure~\ref{fig:domain:decomposition}. We assign a fault normal
 direction to this interior boundary and ``positive'' and ``negative''
 labels to the two sides of the fault, such that the fault normal is
 the vector from the negative side of the fault to the positive side of
 the fault. Slip on the fault is the displacement of the positive side
 relative to the negative side. Slip on the fault also corresponds to
 equal and opposite tractions on the positive and negative sides of the
-fault, which we impose using Lagrange multipliers with $\vec{l}_{+} -
-\vec{l}_{-} = 0$.
-
-
-\begin{figure}[htbp]
-  \centering
-  \brad{TODO: ADD DIAGRAM}
-  %\includegraphics{figs/domain_decomposition}
-  \caption{Diagram of domain decomposition approach for modeling fault
-    slip. The fault slip introduces a jump in the displacement field
-    across the fault, whereas the tractions are continuous.}
-  \label{fig:domain:decomposition}
-\end{figure}
+fault, which we impose using Lagrange multipliers with $\mathbf{l}_{+}
+- \mathbf{l}_{-} = 0$.
 
 
 Recognizing that the tractions on the fault surface are analogous to
 the boundary tractions, we add in the contributions from integrating
 the Lagrange multipliers (fault tractions) over the fault surface,
 \begin{equation}
-- \int_{V} \nabla\vec{\phi} : \tensor{\sigma} \, dV
-+ \int_{S_T} \vec{\phi} \cdot \vec{T} \, dS
-- \int_{S_f^{+}} \vec{\phi} \cdot \vec{l} \, dS
-+ \int_{S_f^{-}} \vec{\phi} \cdot \vec{l} \, dS
-+ \int_{V} \vec{\phi} \cdot \vec{f} \, dV 
-- \int_{V} \vec{\phi} \cdot \rho \frac{\partial^{2}\vec{u}}{\partial t^{2}} \, dV
-=0.
+  \begin{split}
+    - \int_{V} \nabla\mathbf{\phi} : \mathsf{\sigma} \, dV
+    + \int_{S_T} \mathbf{\phi} \cdot \mathbf{T} \, dS
+    - \int_{S_f^{+}} \mathbf{\phi} \cdot \mathbf{l} \, dS
+    + \int_{S_f^{-}} \mathbf{\phi} \cdot \mathbf{l} \, dS \\
+    + \int_{V} \mathbf{\phi} \cdot \mathbf{f} \, dV 
+    - \int_{V} \mathbf{\phi} \cdot \rho \frac{\partial^{2}\mathbf{u}}{\partial t^{2}} \, dV
+    =0.
+  \end{split}
 \end{equation}
 Our sign convention for the fault normal and fault tractions (tension
 is positive) leads to the Lagrange multiplier terms having the
@@ -273,66 +291,70 @@ taking the dot product of the constraint
 taking the dot product of the constraint equation with the weighting
 function and setting the integral over the fault surface to zero,
 \begin{equation}
-  \int_{S_f} \vec{\phi} \cdot 
-  \left(\vec{d} - \vec{u}_{+} + \vec{u}_{-} \right) \, dS = 0.
+  \int_{S_f} \mathbf{\phi} \cdot 
+  \left(\mathbf{d} - \mathbf{u}_{+} + \mathbf{u}_{-} \right) \, dS = 0.
 \end{equation}
 
-We express the weighting function $\vec{\phi}$, trial solution
-$\vec{u}$, Lagrange multipliers $\vec{l}$, and fault slip $\vec{d}$ as
+We express the weighting function $\mathbf{\phi}$, trial solution
+$\mathbf{u}$, Lagrange multipliers $\mathbf{l}$, and fault slip $\mathbf{d}$ as
 linear combinations of basis functions,
 \begin{gather}
-\vec{\phi} = \sum_{m} \vec{a}_m N_m, \\
-\vec{u} = \sum_{n} \vec{u}_n N_n, \\
-\vec{l} = \sum_{p} \vec{l}_p N_p, \\
-\vec{d} = \sum_{p} \vec{d}_p N_p.
+\mathbf{\phi} = \sum_{m} \mathbf{a}_m N_m, \\
+\mathbf{u} = \sum_{n} \mathbf{u}_n N_n, \\
+\mathbf{l} = \sum_{p} \mathbf{l}_p N_p, \\
+\mathbf{d} = \sum_{p} \mathbf{d}_p N_p.
 \end{gather}
 Because the weighting function is zero on $S_u$, the number of basis
-functions for the trial solution $\vec{u}$ is generally greater than
-the number of basis functions for the weighting function $\vec{\phi}$,
+functions for the trial solution $\mathbf{u}$ is generally greater than
+the number of basis functions for the weighting function $\mathbf{\phi}$,
 i.e., $n > m$. The basis functions for the Lagrange multipliers and
 fault slip are associated with the fault surface, which is a lower
 dimension than the domain, so $p \ll n$ in most cases. If we express
 the linear combination of basis functions in terms of a matrix-vector
 product, we have
 \begin{gather}
-\vec{\phi} = \tensor{N}_m \cdot \vec{a}_m, \\
-\vec{u} = \tensor{N}_n \cdot \vec{u}_n, \\
-\vec{l} = \tensor{N}_p \cdot \vec{l}_p, \\
-\vec{d} = \tensor{N}_p \cdot \vec{d}_p.
+\mathbf{\phi} = \mathbf{N}_m \cdot \mathbf{a}_m, \\
+\mathbf{u} = \mathbf{N}_n \cdot \mathbf{u}_n, \\
+\mathbf{l} = \mathbf{N}_p \cdot \mathbf{l}_p, \\
+\mathbf{d} = \mathbf{N}_p \cdot \mathbf{d}_p.
 \end{gather}
 
 The weighting function is arbitrary, so the integrands must be zero
-for all $\vec{a}_m$, which leads to
+for all $\mathbf{a}_m$, which leads to
 \begin{gather}
   \begin{split}
-- \int_{V} \nabla \tensor{N}_m^T \cdot \tensor{\sigma} \, dV
-+ \int_{S_T} \tensor{N}_m^T \cdot \vec{T} \, dS
-- \int_{S_f^{+}} \tensor{N}_m^T \cdot \tensor{N}_p \cdot \vec{l}_p \, dS
-+ \int_{S_f^{-}} \tensor{N}_m^T \cdot \tensor{N}_p \cdot \vec{l}_p \, dS
-+ \int_{V} \tensor{N}_m^T \cdot \vec{f} \, dV \\
-- \int_{V} \rho \tensor{N}_m^T \cdot \tensor{N}_n \cdot \frac{\partial^2 \vec{u}_n}{\partial
+- \int_{V} \nabla \mathbf{N}_m^T \cdot \mathsf{\sigma} \, dV
++ \int_{S_T} \mathbf{N}_m^T \cdot \mathbf{T} \, dS
+- \int_{S_f^{+}} \mathbf{N}_m^T \cdot \mathbf{N}_p \cdot \mathbf{l}_p \, dS \\
++ \int_{S_f^{-}} \mathbf{N}_m^T \cdot \mathbf{N}_p \cdot \mathbf{l}_p \, dS
++ \int_{V} \mathbf{N}_m^T \cdot \mathbf{f} \, dV \\
+- \int_{V} \rho \mathbf{N}_m^T \cdot \mathbf{N}_n \cdot \frac{\partial^2 \mathbf{u}_n}{\partial
   t^2} \, dV
-=\vec{0},
+=\mathbf{0},
 \end{split}
 \\
 % 
-  \int_{S_f} \tensor{N}_p^T \cdot 
-  \left( \tensor{N}_p \cdot \vec{d}_p
-    - \tensor{N}_{n^+} \cdot \vec{u}_{n^+} 
-    + \tensor{N}_{n^-} \cdot \vec{u}_{n^-}
-    \right) \, dS = \vec{0}.
+  \int_{S_f} \mathbf{N}_p^T \cdot 
+  \left( \mathbf{N}_p \cdot \mathbf{d}_p
+    - \mathbf{N}_{n^+} \cdot \mathbf{u}_{n^+} 
+    + \mathbf{N}_{n^-} \cdot \mathbf{u}_{n^-}
+    \right) \, dS = \mathbf{0}.
 \end{gather}
-We want to solve these equations for the coefficients $\vec{u}_n$ and
-$\vec{l}_p$ subject to $\vec{u} = \vec{u}_0 \text{ on }S_u$.
+We want to solve these equations for the coefficients $\mathbf{u}_n$
+and $\mathbf{l}_p$ subject to $\mathbf{u} = \mathbf{u}_0 \text{ on
+}S_u$. When we prescribed the slip, we specify $\mathbf{d}$ on $S_f$,
+and when we use a fault constitutive model, we specify how the
+Lagrange multipliers $\mathbf{l}$ depend on the fault slip, slip rate,
+and state variables.
 
 For nonlinear bulk rheologies it is convenient to work with the
 increment in stress and strain, so we formulate the solution of the
 equations in terms of the increment in the solution from time $t$ to
-$\tpdt$ rather than the solution at time $\tpdt$.
+$t+\Delta t$ rather than the solution at time $t+\Delta t$.
 Consequently, rather than constructing a system with the form
-$\tensor{A} \cdot \vec{u}(\tpdt) = \vec{b}(\tpdt)$, we construct a system
-with the form $\tensor{A} \cdot d\vec{u} = \vec{b}(\tpdt) - \tensor{A}
-\cdot \vec{u}(t)$, where $\vec{u}(\tpdt) = \vec{u}(t) + d\vec{u}$.
+$\mathbf{A} \cdot \mathbf{u}(t+\Delta t) = \mathbf{b}(t+\Delta t)$, we construct a system
+with the form $\mathbf{A} \cdot \mathbf{du} = \mathbf{b}(t+\Delta t) - \mathbf{A}
+\cdot \mathbf{u}(t)$, where $\mathbf{u}(t+\Delta t) = \mathbf{u}(t) + \mathbf{du}$.
 
 % ------------------------------------------------------------------
 \subsection{Quasi-static Simulations}
@@ -340,93 +362,80 @@ For quasi-static simulations we ignore t
 For quasi-static simulations we ignore the inertial term and
 time-dependence only enters through the constitutive models
 and the loading conditions. Considering the deformation at time
-$\tpdt$,
+$t+\Delta t$,
 \begin{gather}
-  \label{eqn:quasi-static:residual:domain}
+  \label{eqn:quasi-static:residual:elasticity}
   \begin{split}
-    - \int_{V} \nabla \tensor{N}_m^T \cdot \tensor{\sigma}(\tpdt) \, dV
-    + \int_{S_T} \tensor{N}_m^T \cdot \vec{T}(\tpdt) \, dS
-    - \int_{S_f^{+}} \tensor{N}_m^T \cdot \tensor{N}_p \cdot \vec{l}_p(\tpdt) \, dS
-    + \int_{S_f^{-}} \tensor{N}_m^T \cdot \tensor{N}_p \cdot \vec{l}_p(\tpdt) \, dS
+    - \int_{V} \nabla \mathbf{N}_m^T \cdot \mathsf{\sigma}(t+\Delta t) \, dV
+    + \int_{S_T} \mathbf{N}_m^T \cdot \mathbf{T}(t+\Delta t) \, dS \\
+    - \int_{S_f^{+}} \mathbf{N}_m^T \cdot \mathbf{N}_p \cdot \mathbf{l}_p(t+\Delta t) \, dS \\
+    + \int_{S_f^{-}} \mathbf{N}_m^T \cdot \mathbf{N}_p \cdot \mathbf{l}_p(t+\Delta t) \, dS
     \\
-    + \int_{V} \tensor{N}_m^T \cdot \vec{f}(\tpdt) \, dV
-    =\vec{0},
+    + \int_{V} \mathbf{N}_m^T \cdot \mathbf{f}(t+\Delta t) \, dV
+    =\mathbf{0},
   \end{split}
   \\
 %
 \label{eqn:quasi-static:residual:fault}
-  \int_{S_f} \tensor{N}_p^T \cdot
-  \left( \tensor{N}_p \cdot \vec{d}_p(\tpdt)
-    - \tensor{N}_{n^+} \cdot \vec{u}_{n^+}(\tpdt)
-    + \tensor{N}_{n^-} \cdot \vec{u}_{n^-}(\tpdt)
-    \right) \, dS = \vec{0}.
+  \begin{split}
+    \int_{S_f} \mathbf{N}_p^T \cdot
+    \left( \mathbf{N}_p \cdot \mathbf{d}_p(t+\Delta t)
+      - \mathbf{N}_{n^+} \cdot \mathbf{u}_{n^+}(t+\Delta t) 
+    \right) \, dS \\ +\int_{S_f} \mathbf{N}_p^T \cdot \left(
+      \mathbf{N}_{n^-} \cdot \mathbf{u}_{n^-}(t+\Delta t)
+    \right) \, dS = \mathbf{0}.
+  \end{split}
 \end{gather}
 In order to march forward in time, we simply increment time, solve the
-equations, and add the increment in the solution to the previous
-solution.  We solve these equations using the Portable, Extensible
-Toolkit for Scientific Computation (PETSc), which provides a suite of
-tools for solving linear systems of algebraic equations with parallel
-processing \cite{PETSc:web:page,PETSc:manual,PETSC:efficient}. In
-solving the system, we compute the residual (i.e., $\vec{r} = \vec{b}
-- \tensor{A} \cdot \vec{u}$ and the Jacobian of the system
-($\tensor{A}$). In our case the solution is $\vec{u} =
-\left( \begin{smallmatrix} \vec{u}_n \\ \vec{l}_n \end{smallmatrix}
-\right)$, and the residual is simply the left hand sides of
-equations~(\ref{eqn:quasi-static:residual:domain})
-and~(\ref{eqn:quasi-static:residual:fault}). That is,
-\begin{equation}
-\vec{r} = \left( \begin{array}{c}
-    \begin{aligned}
-      - \int_{V} \nabla \tensor{N}_m^T \cdot \tensor{\sigma}(\tpdt) \, dV
-      + \int_{S_T} \tensor{N}_m^T \cdot \vec{T}(\tpdt) \, dS
-      - \int_{S_f^{+}} \tensor{N}_m^T \cdot \tensor{N}_p \cdot \vec{l}_p(\tpdt) \, dS
-      &+ \int_{S_f^{-}} \tensor{N}_m^T \cdot \tensor{N}_p \cdot \vec{l}_p(\tpdt) \, dS
-      \\
-      &+ \int_{V} \tensor{N}_m^T \cdot \vec{f}(\tpdt) \, dV
-    \end{aligned}
-    \\
-    \int_{S_f} \tensor{N}_p^T \cdot
-    \left( \tensor{N}_p \vec{d}(\tpdt)
-      - \tensor{N}_{n^+} \cdot \vec{u}_{n^+}(\tpdt)
-      + \tensor{N}_{n^-} \cdot \vec{u}_{n^-}(\tpdt) 
-    \right) \, dS
-  \end{array} \right).
-\end{equation}
+equations, and add the increment in the solution to the solution from
+the previous time step.  We solve these equations using the Portable,
+Extensible Toolkit for Scientific Computation (PETSc), which provides
+a suite of tools for solving linear systems of algebraic equations
+with parallel processing
+\citep{PETSc:web:page,PETSc:manual,PETSC:efficient}. In solving the
+system, we compute the residual (i.e., $\mathbf{r} = \mathbf{b} -
+\mathbf{A} \cdot \mathbf{u}$ and the Jacobian of the system
+($\mathbf{A}$). In our case the solution is $\mathbf{u} =
+\left( \begin{smallmatrix} \mathbf{u}_n \\
+    \mathbf{l}_n \end{smallmatrix} \right)$, and the residual is
+simply the left hand sides of
+equations~(\ref{eqn:quasi-static:residual:elasticity})
+and~(\ref{eqn:quasi-static:residual:fault}). 
 
 The Jacobian of the system is the action (operation) on the increment
 in the solution.  To find the portion of the Jacobian associated with
-equation~(\ref{eqn:quasi-static:residual:domain}), we let
-$\tensor{\sigma}(\tpdt) = \tensor{\sigma}(t) +
-d\tensor{\sigma}(t)$. The action on the increment of the solution is
+equation~(\ref{eqn:quasi-static:residual:elasticity}), we let
+$\mathsf{\sigma}(t+\Delta t) = \mathsf{\sigma}(t) +
+\mathsf{d\sigma}(t)$. The action on the increment of the solution is
 associated with the increment in the stress tensor
-$d\tensor{\sigma}(t)$. We approximate the increment in the stress
+$\mathsf{d\sigma}(t)$. We approximate the increment in the stress
 tensor using linear elasticity and infinitesimal strains,
 \begin{equation}
-  d\tensor{\sigma}(t) = \frac{1}{2} \tensorfour{C}(t) \cdot (\nabla + \nabla^T)
-  \vec{u}(t),
+  \mathsf{d\sigma}(t) = \frac{1}{2} \mathsf{C}(t) \cdot (\nabla + \nabla^T)
+  \mathbf{u}(t),
 \end{equation}
-where $\tensorfour{C}$ is the fourth order tensor of elastic
+where $\mathsf{C}$ is the fourth order tensor of elastic
 constants. Substituting into the first term in
-equation~(\ref{eqn:quasi-static:residual:domain}) and expressing the
+equation~(\ref{eqn:quasi-static:residual:elasticity}) and expressing the
 displacement vector as a linear combination of basis functions, after
 some algebra we find this portion of the Jacobian is
 \begin{equation}
   \label{eqn:jacobian:implicit:stiffness}
-  \tensor{K} = \frac{1}{4} \int_V 
-  (\nabla^T + \nabla) \tensor{N}_m^T \cdot
-  \tensorfour{C} \cdot (\nabla + \nabla^T) \tensor{N}_n  \, dV.
+  \mathbf{K} = \frac{1}{4} \int_V 
+  (\nabla^T + \nabla) \mathbf{N}_m^T \cdot
+  \mathsf{C} \cdot (\nabla + \nabla^T) \mathbf{N}_n  \, dV.
 \end{equation}
 Following a similar procedure, we find the portion of the Jacobian
 associated with the constraints, equation~(\ref{eqn:quasi-static:residual:fault}), is
 \begin{equation}
   \label{eqn:jacobian:constraint}
-  \tensor{L} = \int_{S_f} \tensor{N}_p^T \cdot (\tensor{N}_{n^+} - \tensor{N}_{n^-}) \, dS.
+  \mathbf{L} = \int_{S_f} \mathbf{N}_p^T \cdot (\mathbf{N}_{n^+} - \mathbf{N}_{n^-}) \, dS.
 \end{equation}
 Thus, the Jacobian of the entire system has the form,
 \begin{equation}\label{eqn:saddle-point}
-  \tensor{A} = 
+  \mathbf{A} = 
   \left( \begin{array}{cc}
-      \tensor{K} & \tensor{L}^T \\ \tensor{L} & \tensor{0} 
+      \mathbf{K} & \mathbf{L}^T \\ \mathbf{L} & \mathbf{0} 
     \end{array} \right).
 \end{equation}
 
@@ -436,60 +445,54 @@ In dynamic simulations we include the in
 In dynamic simulations we include the inertial term in order to
 resolve the propagation of seismic waves. The integral equation for
 the fault slip constraint remains unchanged, so the corresponding
-portions of the Jacobian ($\tensor{L}$) and residual ($\vec{r}_p$) are
-exactly the same as in the quasi-static simulations. Hence, the
-residual is the same as in the quasi-static simulations except the
-upper portion now includes the inertial term:
+portions of the Jacobian ($\mathbf{L}$) and residual ($\mathbf{r}_p$)
+are exactly the same as in the quasi-static simulations. Including the
+inertial term in equation~\ref{eqn:quasi-static:residual:elasticity} yields
 \begin{equation}
-\vec{r} = \left( \begin{array}{c}
-    \begin{aligned}
-      - \int_{V} \nabla \tensor{N}_m^T \cdot \tensor{\sigma}(\tpdt) \, dV
-      + \int_{S_T} \tensor{N}_m^T \cdot \vec{T}(\tpdt) \, dS
-      &- \int_{S_f^{+}} \tensor{N}_m^T \cdot \tensor{N}_p \cdot \vec{l}_p(\tpdt) \, dS
-      + \int_{S_f^{-}} \tensor{N}_m^T \cdot \tensor{N}_p \cdot \vec{l}_p(\tpdt) \, dS
-      \\
-      &+ \int_{V} \tensor{N}_m^T \cdot \vec{f}(\tpdt) \, dV
-      - \int_{V} \rho \tensor{N}_m^T \cdot \tensor{N}_n \cdot 
-          \frac{\partial^2 \vec{u}_n}{\partial t^2} \, dV
-        \end{aligned}
+  \label{eqn:dynamic:residual:elasticity}
+  \begin{split}
+    - \int_{V} \nabla \mathbf{N}_m^T \cdot \mathsf{\sigma}(t+\Delta t) \, dV
+    + \int_{S_T} \mathbf{N}_m^T \cdot \mathbf{T}(t+\Delta t) \, dS \\
+    - \int_{S_f^{+}} \mathbf{N}_m^T \cdot \mathbf{N}_p \cdot \mathbf{l}_p(t+\Delta t) \, dS \\
+    + \int_{S_f^{-}} \mathbf{N}_m^T \cdot \mathbf{N}_p \cdot \mathbf{l}_p(t+\Delta t) \, dS
     \\
-    \int_{S_f} \tensor{N}_p^T \cdot
-    \left( \tensor{N}_p \cdot \vec{d}_p (\tpdt)
-      - \tensor{N}_{n^+} \cdot \vec{u}_{n^+}(\tpdt)
-      + \tensor{N}_{n^-} \cdot \vec{u}_{n^-}(\tpdt)
-   \right) \, dS
-  \end{array} \right).
+    + \int_{V} \mathbf{N}_m^T \cdot \mathbf{f}(t+\Delta t) \, dV \\
+      - \int_{V} \rho \mathbf{N}_m^T \cdot \mathbf{N}_n \cdot 
+          \frac{\partial^2 \mathbf{u}_n}{\partial t^2} \, dV
+    =\mathbf{0}.
+  \end{split}
 \end{equation}
-
 We find the upper portion of the Jacobian of the system by considering
 the action on the increment in the solution, just as we did for the
 quasi-static simulations. In this case we associate the increment in
 the solution with the temporal discretization. We march forward in
 time using explicit time stepping via Newmark's method with a central
-difference scheme with the acceleration and velocity given by
+difference scheme wherein the acceleration and velocity are given by
 \begin{gather}
-  \frac{\partial^2 \vec{u}}{\partial t^2}(t) = 
+  \frac{\partial^2 \mathbf{u}}{\partial t^2}(t) = 
   \frac{1}{\Delta t^2} \left(
-    d\vec{u} - \vec{u}(t) + \vec{u}(\tmdt)
+    \mathbf{du} - \mathbf{u}(t) + \mathbf{u}(t-\Delta t)
   \right), \\
 %
-  \frac{\partial \vec{u}}{\partial t}(t) = \frac{1}{2\Delta t} \left(
-    d\vec{u} + \vec{u}(t) - \vec{u}(\tmdt)
+  \frac{\partial \mathbf{u}}{\partial t}(t) = \frac{1}{2\Delta t} \left(
+    \mathbf{du} + \mathbf{u}(t) - \mathbf{u}(t-\Delta t)
     \right).
 \end{gather}
 Expanding the inertial term yields
 \begin{equation}
-  - \int_{V} \rho \tensor{N}_m^T \cdot \tensor{N}_n \cdot \frac{\partial^2 \vec{u}_n}{\partial
-    t^2} \, dV =
-  - \frac{1}{\Delta t^2} \int_{V} \rho \tensor{N}_m^T \cdot
-  \tensor{N}_n \cdot 
-  \left( d\vec{u}_n(t) - \vec{u}_n(t) + \vec{u}_n(\tmdt) \right) \, dV,
+  \begin{split}
+    - \int_{V} \rho \mathbf{N}_m^T \cdot \mathbf{N}_n \cdot \frac{\partial^2 \mathbf{u}_n}{\partial
+      t^2} \, dV = \\
+    - \frac{1}{\Delta t^2} \int_{V} \rho \mathbf{N}_m^T \cdot
+    \mathbf{N}_n \cdot 
+    \left( \mathbf{du}_n(t) - \mathbf{u}_n(t) + \mathbf{u}_n(t-\Delta t) \right) \, dV,
+  \end{split}
 \end{equation}
 so that the upper portion of the Jacobian is
 \begin{equation}
   \label{eqn:jacobian:explicit:inertia}
-  \tensor{K} = 
-    \frac{1}{\Delta t^2} \int_{V} \rho \tensor{N}_m^T\ \cdot \tensor{N}_n \, dV.
+  \mathbf{K} = 
+    \frac{1}{\Delta t^2} \int_{V} \rho \mathbf{N}_m^T\ \cdot \mathbf{N}_n \, dV.
 \end{equation}
 
 
@@ -502,33 +505,35 @@ simulations. As a result both types of s
 simulations. As a result both types of simulations can use the same
 data structures and many of the same routines for assembling the
 system of equations. In particular, the integrals for the bulk
-rheologies and fault behavior are identical, so all of the various
-elastic, viscoelastic, and viscoelastoplastic constitutive models and
-fault rupture behavior via slip-time functions and fault constitutive
-models need only a single implementation in order to be used for both
-quasi-static and dynamic simulations. This significantly reduces
-development time and simplifies maintenance compared to maintaining
-different codes for quasi-static and dynamic simulations.
+rheologies and fault behavior are identical. This means that all of
+the various elastic, viscoelastic, and viscoelastoplastic bulk
+constitutive models and fault rupture behavior via slip-time functions
+and fault constitutive models need only a single implementation in
+order to be used for both quasi-static and dynamic simulations. This
+significantly reduces development time and simplifies maintenance
+compared to maintaining different codes for quasi-static and dynamic
+simulations.
 
 
 % ------------------------------------------------------------------
 \subsection{Prescribed Fault Rupture}
 
 In a prescribed (kinematic) fault rupture we specify the slip-time
-history $\vec{d}(x,y,z,t)$ at every location on the fault surfaces.
+history $\mathbf{d}(x,y,z,t)$ at every location on the fault surfaces.
 The slip-time history enters into the calculation of the residual as
 do the Lagrange multipliers, which are available from the current
-solution. In prescribing the slip-time history we do not specify the
-initial tractions on the fault surface so the Lagrange multipliers are
-the change in the tractions on the fault surfaces corresponding to the
-slip. PyLith includes a variety of slip-time histories, including a
-step function, constant slip rate, the integral of Brune's far-field
-time function \cite{Brune:1970}, a sine-cosine function developed by
-\citeN{Liu:etal:2006}, and a user-defined time history. These are
-discussed in detail in the PyLith manual
-\cite{PyLith:manual:1.6.2}. PyLith allows multiple earthquake ruptures
-to be superimposed on each other, thereby permitting rather complex
-slip behavior.
+trial solution. In prescribing the slip-time history we do not specify
+the initial tractions on the fault surface so the Lagrange multipliers
+are the change in the tractions on the fault surfaces corresponding to
+the slip. PyLith includes a variety of slip-time histories, including
+a step function, a linear ramp (constant slip rate), the integral of
+Brune's far-field time function \citep{Brune:1970}, a sine-cosine
+function developed by \cite{Liu:etal:2006}, and a user-defined time
+history. These are discussed in detail in the PyLith manual
+\citep{PyLith:manual:1.6.2}. PyLith allows specification of the slip
+initiation time independently at each location as well as
+superposition of multiple earthquake ruptures with different origin
+times, thereby permitting complex slip behavior.
 
 
 % ------------------------------------------------------------------
@@ -540,53 +545,65 @@ involves specifying the fault slip and s
 involves specifying the fault slip and solving for the tractions on
 the fault (Lagrange multipliers). Hence, the fault constitutive model
 places bounds on the Lagrange multipliers and the system of equations
-is nonlinear-- when a location on the fault is slipping, we must
-update the slip to be consistent with the fault tractions. When a
-location on a fault is not slipping, no updates to the specified fault
-slip are necessary and the solution will converge in a single
-iteration of the nonlinear solve (i.e., the nonlinear problem
-simplifies to a linear one). In dynamic simulations, we employ an
-alternative approach that involves a diagonal Jacobian and avoids a
-nonlinear system of equations.
+is nonlinear-- when a location on the fault is slipping, we must find
+both the fault slip and Lagrange multipliers that are consistent with
+the fault constitutive model.
 
-We determine the adjustment to the fault slip for a given perturbation
-in the Lagrange multipliers assuming the rest of the solution is
-unchanged. That is, we consider only the degrees of freedom associated
-with the fault interface when computing how a perturbation in the
-Lagrange multipliers corresponds to a change in fault slip. In terms
-of the general form of a linear system of equations ($\tensor{A}
-\vec{u} = \vec{b}$), our subset of equations has the form
+At each time step, we first assume the increment in the fault slip is
+zero, so that the Lagrange multipliers correspond to the fault
+tractions required to keep the fault locked. If the Lagrange
+multipliers exceed the fault tractions allowed by the fault
+constitutive model, then we iterate to find the increment in slip that
+yields Lagrange multipliers that satisfy the fault constitutive model.
+On the other hand, if the Lagrange multipliers do not exceed the fault
+tractions allowed by the fault constitutive model, then the increment
+in fault slip remains zero, and no adjustements to the solution are
+necessary.
+
+In iterating to find the fault slip and Lagrange multipliers that
+satisfy the fault constitutive model, we employ the following
+procedure.  We first compute the perturbation in the Lagrange
+multipliers necessary to satisfy the fault constitutive model for the
+current estimate of slip. We then compute the increment in fault slip
+corresponding to this perturbation in the Lagrange multipliers
+assuming the rest of the solution is unchanged. That is, we consider
+only the degrees of freedom associated with the fault interface when
+computing how a perturbation in the Lagrange multipliers corresponds
+to a change in fault slip. In terms of the general form of a linear
+system of equations ($\mathbf{A} \mathbf{u} = \mathbf{b}$), our subset
+of equations has the form
 \begin{equation}
   \begin{pmatrix}
-    \tensor{K}_{n^+n^+} & 0 & \tensor{L}_p^T  \\
-    0 & \tensor{K}_{n^-n^-} & -\tensor{L}_p^T \\
-    \tensor{L}_p & -\tensor{L}_p & 0
+    \mathbf{K}_{n^+n^+} & 0 & \mathbf{L}_p^T  \\
+    0 & \mathbf{K}_{n^-n^-} & -\mathbf{L}_p^T \\
+    \mathbf{L}_p & -\mathbf{L}_p & 0
   \end{pmatrix}
   \begin{pmatrix}
-  \vec{u}_{n^+} \\
-  \vec{u}_{n^-} \\
-  \vec{l}_p \\
+  \mathbf{u}_{n^+} \\
+  \mathbf{u}_{n^-} \\
+  \mathbf{l}_p \\
   \end{pmatrix}
   =
   \begin{pmatrix}
-  \vec{b}_{n^+} \\
-  \vec{b}_{n^-} \\
-  \vec{b}_p \\
+  \mathbf{b}_{n^+} \\
+  \mathbf{b}_{n^-} \\
+  \mathbf{b}_p \\
   \end{pmatrix},
 \end{equation}
 where $n^+$ and $n^-$ refer to the degrees of freedom associated with
 the positive and negative sides of the fault,
-respectively. Furthermore, we can ignore the terms $\vec{b}_{n^+}$ and
-$\vec{b}_{n^-}$ because they remain constant as we change the Lagrange
-multipliers or fault slip. We solve the following equations to
-estimate the change in fault slip $\partial \vec{d}$ corresponding to
-a perturbation in the Lagrange multipliers $\partial \vec{l}_p$:
+respectively. Furthermore, we can ignore the terms $\mathbf{b}_{n^+}$
+and $\mathbf{b}_{n^-}$ because they remain constant as we change the
+Lagrange multipliers or fault slip. Our task reduces to solving the
+following system of equations to estimate the change in fault slip
+$\partial \mathbf{d}$ associated with a perturbation in the Lagrange
+multipliers $\partial \mathbf{l}_p$:
 \begin{gather}
-  \tensor{K}_{n^+n^+} \cdot \partial \vec{u}_{n^+} = 
-  - \tensor{L}_p^T \cdot \partial \vec{l}_p, \\
-  \tensor{K}_{n^-n^-} \cdot \partial \vec{u}_{n^-} =
-  \tensor{L}_p^T \cdot \partial \vec{l}_p, \\
-  \partial \vec{d}_p =  \partial \vec{u}_{n^+} - \partial \vec{u}_{n^-}.
+  \mathbf{K}_{n^+n^+} \cdot \partial \mathbf{u}_{n^+} = 
+  - \mathbf{L}_p^T \cdot \partial \mathbf{l}_p, \\
+  \mathbf{K}_{n^-n^-} \cdot \partial \mathbf{u}_{n^-} =
+  \mathbf{L}_p^T \cdot \partial \mathbf{l}_p, \\
+  \partial \mathbf{d}_p =  \partial \mathbf{u}_{n^+} - \partial \mathbf{u}_{n^-}.
 \end{gather}
 This estimate is exact if all degrees of freedom not adjacent to the
 fault are constrained (which is generally only the case for simple toy
@@ -595,8 +612,11 @@ because the deformation from fault slip 
 because the deformation from fault slip is limited to the middle of
 the domain), and poor if the deformation associated with fault slip
 extends to the boundaries (which occurs in the rare cases in which the
-domain has a through-going fault). The nonlinear solve requires fewer
-iterations as the estimate of the fault slip becomes more accurate.
+domain has a through-going fault). The number of iterations required
+to satisfy the fault constitutive model decreases as the estimate of
+the fault slip becomes more accurate. We will discuss the procedures
+for solving these equations for both quasi-static and dynamic
+simulations in section~\ref{sec:??}.
 
 PyLith includes several commonly used fault constitutive models, all
 of which specify the shear traction on the fault $T_f$ as a function
@@ -605,13 +625,13 @@ normal traction $T_n$,
 \begin{equation}
   T_f = T_c - \mu_f T_n.
 \end{equation}
-$T_f$ in the this equation corresponds to the magnitude of the shear
+$T_f$ in this equation corresponds to the magnitude of the shear
 traction vector; the shear traction vector is resolved into the
-direction of the slip rate. We use the sign convention that a
+direction of the slip rate. We use the sign convention that 
 compressive normal tractions are negative. The fault constitutive
 models include static friction, linear slip-weakening, linear
 time-weakening, and Dieterich-Ruina rate-state friction with an aging
-law (see the PyLith manual \cite{PyLith:manual:1.6.2} for details).
+law (see the PyLith manual \citep{PyLith:manual:1.6.2} for details).
 
 % ------------------------------------------------------------------
 \section{Finite-Element Mesh Processing}
@@ -623,7 +643,7 @@ solve the resulting system of nonlinear 
 solve the resulting system of nonlinear algebraic equations. In
 PyLith, these operations are accomplished using PETSc, and in
 particular the Sieve package for finite-element support
-\cite{Knepley:Karpeev:2009,SieveFEMPreprint}.
+\citep{Knepley:Karpeev:2009,SieveFEMPreprint}.
 
 The Sieve application programming interface (API) for mesh
 representation and manipulation is based upon a direct acyclic graph
@@ -632,9 +652,10 @@ edges. By focusing on the key topologica
 edges. By focusing on the key topological relation, the interface can
 be both concise and quite general. Using this generic API, PyLith is
 able to support one, two, and three dimensional meshes, with
-simplicial, hex, and even prismatic cell shapes, while using almost no
-dimension or shape specific code. However, in order to support faults
-and fault friction models, we must expand this range of operations.
+simplicial, hex, and even prismatic cell shapes, while using very
+little dimension or shape specific code. However, in order to include
+faults, we include additional operations in Sieve beyond those
+necessary for conventional finite-element operations.
 
 In our domain decomposition approach, the finite-element mesh includes
 the fault as an interior surface. This forces alignment of the element
@@ -642,7 +663,7 @@ equation~(\ref{eqn:fault:disp}), we must
 equation~(\ref{eqn:fault:disp}), we must represent the displacement on
 both sides of the fault for any vertex on the fault. One option is to
 designate ``fault vertices'' which possess twice as many displacement
-degrees of freedom \cite{Aagaard:etal:BSSA:2001}. However, this
+degrees of freedom \citep{Aagaard:etal:BSSA:2001}. However, this
 requires storing the global variable indices by cell rather than by
 vertex or adding special fault metadata to the vertices, significantly
 increasing storage costs and/or index lookup costs. 
@@ -650,11 +671,12 @@ We choose another option and modify the 
 We choose another option and modify the initial finite-element mesh by
 replacing each fault face with a zero-volume cohesive cell.  Many mesh
 generation tools do not support specification of faces on interior
-surfaces, so we construct the set of oriented fault faces from a set
-of vertices marked as lying on the fault. As a preprocessing step, we
-join these vertices into faces, consistently orient them (using a
-common fault normal direction), and associate them with pairs of cells
-in the original mesh.
+surfaces. Consequently, we create these cohesive cells in a
+preprocessing step at the beginning of a simulation. We construct the
+set of oriented fault faces from a set of vertices marked as lying on
+the fault. We join these vertices into faces, consistently orient them
+(using a common fault normal direction), and associate them with pairs
+of cells in the original mesh.
 
 Given this set of oriented fault faces, we introduce a set of cohesive
 cells using a step-by-step modification of the Sieve data structure
@@ -665,55 +687,36 @@ to the Lagrange multiplier constraint. T
 to the Lagrange multiplier constraint. The Lagrange multiplier vertex
 lies on an edge between the vertex on $S_{f^+}$ and the vertex on
 $S_{f^-}$. The fault faces are organized as a Sieve, and each face has
-the two cells it is associated
-with as descendents. Because the cells are consistently oriented, the
-first cell attached to each face is on the positive side of the fault,
-i.e., $S_f^{+}$. We replace the vertices on the fault face of each
-second cell, which is on the negative side of the fault, i.e.,
-$S_f^{-}$, with the newly created vertices. Finally, we add a cohesive
-cell including the original fault face, a face with the newly created
-vertices, and the Lagrange vertices. These cohesive cells are
-prisms. For example, in a tetrahedral mesh the cohesive cells are
-triangular prisms, whereas in a hexahedral meshes, they are again
-hexahedrons.
+the two cells it is associated with as descendents. Because the cells
+are consistently oriented, the first cell attached to each face is on
+the positive\brad{CHECK THIS} side of the fault, i.e., $S_f^{+}$. We
+replace the vertices on the fault face of each second cell, which is
+on the negative side of the fault, i.e., $S_f^{-}$, with the newly
+created vertices. Finally, we add a cohesive cell including the
+original fault face, a face with the newly created vertices, and the
+Lagrange vertices. These cohesive cells are prisms. For example, in a
+tetrahedral mesh the cohesive cells are triangular prisms, whereas in
+a hexahedral meshes they are hexahedrons.
 
-
-\begin{figure}[htbp]
-  \centering
-  \brad{TODO: ADD DIAGRAM}
-  %\includegraphics{figs/cohesive_cell}
-  \caption{Construction of cohesive cells for a fault. (a) For each
-    vertex on the fault, introduce a vertex on the negative side of
-    the fault $S_{f^-}$ and a vertex corresponding to the Lagrange
-    multiplier constraint between the pair of vertices on the positive
-    and negative sides of the fault. (b) Replace the vertices in the
-    cell attached to the negative side of the fault with the newly
-    created vertices. (b) Construct cohesive cells with
-    zero volume from the vertices on the positive side of the fault,
-    negative side of the fault, and Lagrange multiplier constraints.}
-  \label{fig:cohesive:cell}
-\end{figure}
-
-
-We must also update the cells on the negative side of the fault that
+We must also update all cells on the negative side of the fault that
 touch the fault with only an edge or single vertex. We need to replace
 the original vertices with the newly introduced vertices on the
 negative side of the fault. In cases where the the fault reaches the
 boundaries of the domain, it is relatively easy to identify these
 cells because their other vertices are shared with the cells that have
-faces on the negative side of the fault. However, in the case of a fault
-that does not reach the boundary of the domain, cells around the ends
-of the fault share their other vertices with cells that have a face on
-the negative side of the fault and cells that have a face on the
-positive side of the fault. We employ a breadth-first classification
-scheme to differentiate the cells so that we can replace the original
-vertices with the newly introduced vertices on the negative side of
-the fault.
+faces on the negative side of the fault. However, in the case of a
+fault that does not reach the boundary of the domain, cells near the
+ends of the fault share their other vertices with cells that have a
+face on the negative side of the fault and cells that have a face on
+the positive side of the fault. We employ a breadth-first
+classification scheme to differentiate between these two cases, so
+that we can replace the original vertices with the newly introduced
+vertices on the negative side of the fault.
 
-In order to classify cells, we iterate over the set of fault
-vertices. For each vertex, we examine the set of cells attached to
-that vertex, called the \emph{support} of the vertex in the Sieve API
-\cite{Knepley:Karpeev:2009}. For each unclassified cell in the
+In classifying the cells, we iterate over the set of fault
+vertices. For each vertex we examine the set of cells attached to that
+vertex, called the \emph{support} of the vertex in the Sieve API
+\citep{Knepley:Karpeev:2009}. For each unclassified cell in the
 support, we look at all its neighbors that touch the fault. If any is
 classified, we give the cell this same classification. If not, we
 continue with a breadth-first search of its neighbors until a
@@ -732,8 +735,6 @@ result.
 % We could also extend the fault with a set of ``halo faces'' to divide one side from the other
 
 
-\matt{What about the bug we had with fault ends? This is only a problem with refinement at fault ends.}
-  
 % ------------------------------------------------------------------
 \section{Solver Customization}
 
@@ -741,7 +742,7 @@ result.
 
 In order to solve the large, sparse systems of linear equations
 arising in quasi-static simulations, we employ preconditioned Krylov
-subspace methods~\cite{Saad03}. We create a sequence of vectors by
+subspace methods~\citep{Saad03}. We create a sequence of vectors by
 repeatedly applying the system matrix to the rhs vector, $\{ A^k b\}$,
 and they form a basis for a subspace, termed the Krylov space. We can
 efficiently find an approximate solution in this subspace.
@@ -749,7 +750,7 @@ the method of choice for parallel simula
 the method of choice for parallel simulation. However, for most
 physically relevant problems, the Krylov solver requires a
 preconditioner in order to accelerate convergence. While generic
-preconditioners exist~\cite{Saad03,Smith:etal:1996}, the method must
+preconditioners exist~\citep{Saad03,Smith:etal:1996}, the method must
 often be specialized to a particular problem. In this section we describe a
 preconditioner specialized to the fault interface problem and Lagrange
 multipliers.
@@ -758,12 +759,12 @@ constraints produces the saddle-point pr
 constraints produces the saddle-point problem shown in
 equation(\ref{eqn:saddle-point}). Traditional black-box parallel
 preconditioners, such as the Additive Schwarz Method (ASM)
-\cite{Smith:etal:1996}, are not very effective for this type of
+\citep{Smith:etal:1996}, are not very effective for this type of
 problem and produce slow convergence. However, PETSc provides tools to
 construct many variations of effective parallel preconditioners for
 saddle point problems.
 
-The PCFIELDSPLIT \cite{PETSc:manual} preconditioner in PETSc allows
+The PCFIELDSPLIT \citep{PETSc:manual} preconditioner in PETSc allows
 the user to define sets of unknowns which correspond to different
 fields in the physical problem. This scheme is flexible enough to
 accomodate an arbitrary number of fields, mixed discretizations,
@@ -772,83 +773,50 @@ only PyLith options for PETSc. Figure~(\
 only PyLith options for PETSc. Figure~(\ref{fig:solver-options}) shows
 example preconditioners and the options necessary to construct them.
 
-\begin{figure}
-\centering
-\begin{tabular}{ll}
-  $\begin{pmatrix}\hat K & 0 \\ 0 & I\end{pmatrix}$ & $\begin{pmatrix}\hat K & L^T \\ 0 & I\end{pmatrix}$ \\
-  \code{-pc\_type fieldsplit}                       & \code{-pc\_type fieldsplit} \\
-  \code{-pc\_field\_split\_type additive}           & \code{-pc\_field\_split\_type multiplicative} \\
-  \code{-fieldsplit\_0\_pc\_type ml}                & \code{-fieldsplit\_0\_pc\_type ml} \\
-  \code{-fieldsplit\_0\_ksp\_type preonly}          & \code{-fieldsplit\_0\_ksp\_type preonly} \\
-  \code{-fieldsplit\_1\_pc\_type jacobi}            & \code{-fieldsplit\_1\_pc\_type jacobi} \\
-  \code{-fieldsplit\_1\_ksp\_type preonly}          & \code{-fieldsplit\_1\_ksp\_type preonly} \\
-  \smallskip \\
-  $\begin{pmatrix}\hat K & 0 \\ 0 & -\hat S\end{pmatrix}$ & $\begin{pmatrix}\hat K & 0 \\ L & \hat S\end{pmatrix}$ \\
-  \code{-pc\_type fieldsplit}                             & \code{-pc\_type fieldsplit} \\
-  \code{-pc\_field\_split\_type schur}                    & \code{-pc\_field\_split\_type schur} \\
-  \code{-fieldsplit\_0\_pc\_type ml}                      & \code{-fieldsplit\_0\_pc\_type ml} \\
-  \code{-fieldsplit\_0\_ksp\_type preonly}                & \code{-fieldsplit\_0\_ksp\_type preonly} \\
-  \code{-fieldsplit\_1\_pc\_type none}                    & \code{-fieldsplit\_1\_pc\_type none} \\
-  \code{-fieldsplit\_1\_ksp\_type minres}                 & \code{-fieldsplit\_1\_ksp\_type minres} \\
-  \code{-pc\_fieldsplit\_schur\_factorization\_type diag} & \code{-pc\_fieldsplit\_schur\_factorization\_type lower} \\
-  \smallskip \\
-  $\begin{pmatrix}\hat K & L^T \\ 0 & \hat S\end{pmatrix}$ & $\begin{pmatrix}I & 0 \\ B^T A^{-1} & I\end{pmatrix}\begin{pmatrix}\hat A & 0 \\ 0 & \hat S\end{pmatrix}\begin{pmatrix}I & A^{-1} B \\ 0 & I\end{pmatrix}$ \\
-  \code{-pc\_type fieldsplit}                              & \code{-pc\_type fieldsplit} \\
-  \code{-pc\_field\_split\_type schur}                     & \code{-pc\_field\_split\_type schur} \\
-  \code{-fieldsplit\_0\_pc\_type ml}                       & \code{-fieldsplit\_0\_pc\_type ml} \\
-  \code{-fieldsplit\_0\_ksp\_type preonly}                 & \code{-fieldsplit\_0\_ksp\_type preonly} \\
-  \code{-fieldsplit\_1\_pc\_type none}                     & \code{-fieldsplit\_1\_pc\_type none} \\
-  \code{-fieldsplit\_1\_ksp\_type minres}                  & \code{-fieldsplit\_1\_ksp\_type minres} \\
-  \code{-pc\_fieldsplit\_schur\_factorization\_type upper} & \code{-pc\_fieldsplit\_schur\_factorization\_type full}
-\end{tabular}
-\caption{Example preconditioners for the saddle point problem in equation~(\ref{eqn:saddle-point}).}
-\label{fig:solver-options}
-\end{figure}
-
 Another option involves using using the field split preconditioner in
 PETSc in combination with a custom preconditioner matrix for the
 block associated with the Lagrange multipliers. In formulating the
 custom preconditioner, we exploit the structure of the sparse Jacobian
 matrix. Our system Jacobian has the form
 \begin{equation}
-  \tensor{A} = \left( \begin{array}{cc}
-      \tensor{K} & \tensor{L}^T \\
-      \tensor{L} & \tensor{0}
+  \mathbf{A} = \left( \begin{array}{cc}
+      \mathbf{K} & \mathbf{L}^T \\
+      \mathbf{L} & \mathbf{0}
     \end{array} \right).
 \end{equation}
-We use the Schur complement of block $\tensor{K}$ to examine the form of $\tensor{A}^{-1}$,
+We use the Schur complement of block $\mathbf{K}$ to examine the form of $\mathbf{A}^{-1}$,
 \begin{equation}
-  \tensor{A}^{-1} = \left( \begin{array}{cc}
-    \tensor{K}^{-1} + \tensor{K}^{-1} \tensor{L}^{T} 
-    (-\tensor{L} \tensor{K}^{-1} \tensor{L}^{T})^{-1} \tensor{L} \tensor{K}^{-1} & 
-    -\tensor{K}^{-1} \tensor{L}^{T }(-\tensor{L} \tensor{K}^{-1} \tensor{L}^{T})^{-1} \\
-    -(-\tensor{L} \tensor{K}^{-1} \tensor{L}^{T})^{-1} \tensor{L}
-    \tensor{K}^{-1} &
-    -(\tensor{L} \tensor{K}^{-1} \tensor{L}^T)^{-1}
+  \mathbf{A}^{-1} = \left( \begin{array}{cc}
+    \mathbf{K}^{-1} + \mathbf{K}^{-1} \mathbf{L}^{T} 
+    (-\mathbf{L} \mathbf{K}^{-1} \mathbf{L}^{T})^{-1} \mathbf{L} \mathbf{K}^{-1} & 
+    -\mathbf{K}^{-1} \mathbf{L}^{T }(-\mathbf{L} \mathbf{K}^{-1} \mathbf{L}^{T})^{-1} \\
+    -(-\mathbf{L} \mathbf{K}^{-1} \mathbf{L}^{T})^{-1} \mathbf{L}
+    \mathbf{K}^{-1} &
+    -(\mathbf{L} \mathbf{K}^{-1} \mathbf{L}^T)^{-1}
   \end{array} \right),
 \end{equation}
-A suitable block diagonal approximation of $\tensor{A}^{-1}$ is
+A suitable block diagonal approximation of $\mathbf{A}^{-1}$ is
 \begin{equation}
-  \tensor{P}^{-1} = \left( \begin{array}{cc}
-      \tensor{K}^{-1} & 0 \\
-      0 & -(\tensor{L} \tensor{K}^{-1} \tensor{L}^T)^{-1}
+  \mathbf{P}^{-1} = \left( \begin{array}{cc}
+      \mathbf{K}^{-1} & 0 \\
+      0 & -(\mathbf{L} \mathbf{K}^{-1} \mathbf{L}^T)^{-1}
     \end{array} \right),
 \end{equation}
 which leads to
 \begin{equation}
-  \tensor{P} = \left( \begin{array}{cc}
-    \tensor{P}_\mathit{elasticity} & 0 \\
-    0 & \tensor{P}_\mathit{fault}
+  \mathbf{P} = \left( \begin{array}{cc}
+    \mathbf{P}_\mathit{elasticity} & 0 \\
+    0 & \mathbf{P}_\mathit{fault}
   \end{array} \right)
   = \left( \begin{array}{cc}
-    \tensor{K} & 0 \\
-    0 & -\tensor{L} \tensor{K}^{-1} \tensor{L}^T
+    \mathbf{K} & 0 \\
+    0 & -\mathbf{L} \mathbf{K}^{-1} \mathbf{L}^T
   \end{array} \right).
 \end{equation}
 
 The elastic block $K$ can be further split into blocks associated with displacements along the $x$, $y$, and $z$
-axes. It is known that the vector Laplacian is spectrally equivalent to this operator~\cite{AskMarkAdams}, and each
-component is efficiently preconditioned by Algebraic Multigrid (AMG), such as ML~\cite{ML}. Algebraic Multigrid mimics
+axes. It is known that the vector Laplacian is spectrally equivalent to this operator~\citep{AskMarkAdams}, and each
+component is efficiently preconditioned by Algebraic Multigrid (AMG), such as ML~\citep{ML}. Algebraic Multigrid mimics
 the action of traditional geometric multgrid, but it generates coarse level operators and interpolation matrices using
 only the system matrix, treated as a weighted graph, rather than a separate description of the problem geometry, such as
 a mesh. We use PCFIELDSPLIT to split the elastic block and separately apply AMG to each component.
@@ -856,25 +824,25 @@ We will now focus on evaluating the lowe
 We will now focus on evaluating the lower portion of the preconditioning matrix
 associated with the Lagrange multipliers since stock PETSc
 preconditioners can handle the upper portion. We approximate
-$\tensor{K}^{-1}$ with the inverse of the diagonal portion of
-$\tensor{K}$. $\tensor{L}$ consists of integrating the products of
+$\mathbf{K}^{-1}$ with the inverse of the diagonal portion of
+$\mathbf{K}$. $\mathbf{L}$ consists of integrating the products of
 basis functions over the fault faces. Its structure depends on the
 quadrature scheme and the choice of basis functions. For conventional
-low order finite-elements and Gauss quadrature, $\tensor{L}$ contains
+low order finite-elements and Gauss quadrature, $\mathbf{L}$ contains
 nonzero terms coupling the degree of freedom for each coordinate axes
 with the corresponding degree of freedom of the other vertices in a
 cell. However, if we collocate quadrature points at the cell vertices,
 then only one basis function is nonzero at each quadrature point and
-$\tensor{L}$ becomes block diagonal; this is also true for spectral
+$\mathbf{L}$ becomes block diagonal; this is also true for spectral
 elements with Legendre polynomials and Gauss-Lobatto-Legendre
 quadrature points. This leads to a diagonal matrix for the lower
 portion of the conditioning matrix,
 \begin{equation}
-  \tensor{P}_f = -\tensor{L_p} (\tensor{K}_{n+n+} + \tensor{K}_{n-n-}) \tensor{K}_p^{T}.
+  \mathbf{P}_f = -\mathbf{L_p} (\mathbf{K}_{n+n+} + \mathbf{K}_{n-n-}) \mathbf{K}_p^{T}.
 \end{equation}
 
-\brad{Matt: I conjecture that collocation, because it makes $\tensor{L}$ block diagonal, is more tolerant of the
-  diagonal approximation for $\tensor{K}$.}
+\brad{Matt: I conjecture that collocation, because it makes $\mathbf{L}$ block diagonal, is more tolerant of the
+  diagonal approximation for $\mathbf{K}$.}
 
 For the upper portion of the preconditioning matrix associated with
 elasticity, we have found algrebraic multigrid preconditioners
@@ -940,7 +908,7 @@ the integration of the inertial term foc
 the integration of the inertial term focuses on choosing a set of
 orthogonal basis functions, such as the Legendre polynomials with
 Gauss-Lobatto-Legendre quadrature points
-\cite{Komatitsch:Vilotte:1998}. This discretization (often called the
+\citep{Komatitsch:Vilotte:1998}. This discretization (often called the
 spectral element method) naturally produces a diagonal block for each
 finite-element cell without introducing any additional
 approximations. Because the fault slip constraint term also involves
@@ -958,14 +926,14 @@ diagonal approximation of the integral a
 diagonal approximation of the integral as it is for the original
 integral,
 \begin{equation}
-  \tensor{A} \cdot \vec{u}_\mathrm{rigid} =
-  \tensor{A}_\mathit{diagonal} \cdot \vec{u}_\mathrm{rigid}.
+  \mathbf{A} \cdot \mathbf{u}_\mathrm{rigid} =
+  \mathbf{A}_\mathit{diagonal} \cdot \mathbf{u}_\mathrm{rigid}.
 \end{equation}
 Expressing the diagonal block of the Jacobian matrix as a vector and
 the matrix of basis functions as a vector we have,
 \begin{equation}
-  \tensor{A}  = \int_\Omega \tensor{N}^T \cdot \tensor{N} \, d\Omega \rightarrow
-  \tensor{A}_\mathit{diagonal} = \int_\Omega \vec{N} \sum_i N_i \, d\Omega,
+  \mathbf{A}  = \int_\Omega \mathbf{N}^T \cdot \mathbf{N} \, d\Omega \rightarrow
+  \mathbf{A}_\mathit{diagonal} = \int_\Omega \mathbf{N} \sum_i N_i \, d\Omega,
 \end{equation}
 where $N_i$ is the scalar basis function for degree of freedom $i$ and
 $\Omega$ may be the domain volume (as in the case of the inertial
@@ -991,22 +959,22 @@ associated with the fault slip constrain
 associated with the fault slip constraint in solving the system of
 equations via a Schur's complement algorithm. We compute an initial
 residual assuming the increment in the solution is zero (i.e.,
-$d\vec{u}_n = \vec{0}$ and $d\vec{l}_p = \vec{0}$,
+$\mathbf{du}_n = \mathbf{0}$ and $d\mathbf{l}_p = \mathbf{0}$,
 \begin{equation}
-  \vec{r}^* = \begin{pmatrix} \vec{r}_n^* \\ \vec{r}_p^* \end{pmatrix} =
-  \begin{pmatrix} \vec{b}_n \\ \vec{b}_p \end{pmatrix}
+  \mathbf{r}^* = \begin{pmatrix} \mathbf{r}_n^* \\ \mathbf{r}_p^* \end{pmatrix} =
+  \begin{pmatrix} \mathbf{b}_n \\ \mathbf{b}_p \end{pmatrix}
   - \begin{pmatrix}
-    \tensor{K} & \tensor{L}^T \\ \tensor{L} & 0
+    \mathbf{K} & \mathbf{L}^T \\ \mathbf{L} & 0
   \end{pmatrix}
-  \begin{pmatrix} \vec{u}_n \\ \vec{l}_n \end{pmatrix}.
+  \begin{pmatrix} \mathbf{u}_n \\ \mathbf{l}_n \end{pmatrix}.
 \end{equation}
  We compute a corresponding initial solution to the system of equations
-$d\vec{u}_n^*$ ignoring the off-diagonal blocks in the Jacobian and
+$\mathbf{du}_n^*$ ignoring the off-diagonal blocks in the Jacobian and
 the increment in the Lagrange multipliers.
 \begin{equation}
-d\vec{u}_n^* = \tensor{K}^{-1} \cdot \vec{r}_n,
+\mathbf{du}_n^* = \mathbf{K}^{-1} \cdot \mathbf{r}_n,
 \end{equation}
-taking advantage of the fact that we construct $\tensor{K}$ so that it
+taking advantage of the fact that we construct $\mathbf{K}$ so that it
 is diagonal. 
 
 We next compute the increment in the Lagrange multipliers in order to
@@ -1015,56 +983,56 @@ residual is
 residual is
 \begin{equation}
   \label{eqn:lumped:jacobian:residual}
-  \vec{r} = \begin{pmatrix} \vec{r}_n \\ \vec{r}_p \end{pmatrix} =
-  \begin{pmatrix} \vec{r}_n^* \\ \vec{r}_p^* \end{pmatrix}
+  \mathbf{r} = \begin{pmatrix} \mathbf{r}_n \\ \mathbf{r}_p \end{pmatrix} =
+  \begin{pmatrix} \mathbf{r}_n^* \\ \mathbf{r}_p^* \end{pmatrix}
   - \begin{pmatrix}
-    \tensor{K} & \tensor{L}^T \\ \tensor{L} & 0
+    \mathbf{K} & \mathbf{L}^T \\ \mathbf{L} & 0
   \end{pmatrix}
-  \begin{pmatrix} d\vec{u}_n \\ d\vec{l}_n \end{pmatrix}.
+  \begin{pmatrix} \mathbf{du}_n \\ d\mathbf{l}_n \end{pmatrix}.
 \end{equation}
 Solving the first row of equation~(\ref{eqn:lumped:jacobian:residual})
 for the increment in the solution and accounting for the structure of
-$\tensor{L}$ as we write the expressions for degrees of freedom on
+$\mathbf{L}$ as we write the expressions for degrees of freedom on
 each side of the fault, we have
 \begin{gather}
-  d\vec{u}_{n^+} = 
-    d\vec{u}_{n^+}^* - \tensor{K}_{n^+n^+}^{-1} \cdot \tensor{L}_p^T \cdot d\vec{l}_p, \\
-  d\vec{u}_{n^-} = 
-    d\vec{u}_{n^-}^* + \tensor{K}_{n^-n^-}^{-1} \cdot \tensor{L}_p^T \cdot d\vec{l}_p.
+  \mathbf{du}_{n^+} = 
+    \mathbf{du}_{n^+}^* - \mathbf{K}_{n^+n^+}^{-1} \cdot \mathbf{L}_p^T \cdot d\mathbf{l}_p, \\
+  \mathbf{du}_{n^-} = 
+    \mathbf{du}_{n^-}^* + \mathbf{K}_{n^-n^-}^{-1} \cdot \mathbf{L}_p^T \cdot d\mathbf{l}_p.
 \end{gather}
 Substituting into the second row of
 equation~(\ref{eqn:lumped:jacobian:residual}) and isolating the term
 with the increment in the Lagrange multipliers yields
 \begin{equation}
-  \tensor{L}_p \cdot 
-  \left( \tensor{K}_{n^+n^+}^{-1} + \tensor{K}_{n^-n^-}^{-1} \right) \cdot 
-  \tensor{L}^T_p \cdot d\vec{l}_p =
-  -\vec{r}_p^* + \tensor{L}_p \cdot 
-  \left( d\vec{u}_{n^+}^* - d\vec{u}_{n^-}^* \right).
+  \mathbf{L}_p \cdot 
+  \left( \mathbf{K}_{n^+n^+}^{-1} + \mathbf{K}_{n^-n^-}^{-1} \right) \cdot 
+  \mathbf{L}^T_p \cdot d\mathbf{l}_p =
+  -\mathbf{r}_p^* + \mathbf{L}_p \cdot 
+  \left( \mathbf{du}_{n^+}^* - \mathbf{du}_{n^-}^* \right).
 \end{equation}
 Letting
 \begin{equation}
-  \tensor{S}_p = \tensor{L}_p \cdot 
-  \left( \tensor{K}_{n^+n^+}^{-1} + \tensor{K}_{n^-n^-}^{-1} \right) \cdot 
-  \tensor{L}^T_p,
+  \mathbf{S}_p = \mathbf{L}_p \cdot 
+  \left( \mathbf{K}_{n^+n^+}^{-1} + \mathbf{K}_{n^-n^-}^{-1} \right) \cdot 
+  \mathbf{L}^T_p,
 \end{equation}
-and recognizing that $\tensor{S}_p$ is diagonal because $\tensor{K}$
-and $\tensor{L}_p$ are diagonal allows us to solve for the increment
+and recognizing that $\mathbf{S}_p$ is diagonal because $\mathbf{K}$
+and $\mathbf{L}_p$ are diagonal allows us to solve for the increment
 in the Lagrange multipliers,
 \begin{equation}
-  d\vec{l}_p = \tensor{S}_p^{-1} \cdot \left(
-  -\vec{r}_p^* + \tensor{L}_p \cdot 
-  \left( d\vec{u}_{n^+}^* - d\vec{u}_{n^-}^* \right)
+  d\mathbf{l}_p = \mathbf{S}_p^{-1} \cdot \left(
+  -\mathbf{r}_p^* + \mathbf{L}_p \cdot 
+  \left( \mathbf{du}_{n^+}^* - \mathbf{du}_{n^-}^* \right)
   \right).
 \end{equation}
 Now that we have the increment in the Lagrange multipliers, we can
-correct our initial solution $d\vec{u}_n^*$ so that the true residual
+correct our initial solution $\mathbf{du}_n^*$ so that the true residual
 is zero,
 \begin{equation}
-  d\vec{u}_n = 
-  d\vec{u}_n^* - \tensor{K}^{-1} \cdot \tensor{L}^T \cdot d\vec{l}_p.
+  \mathbf{du}_n = 
+  \mathbf{du}_n^* - \mathbf{K}^{-1} \cdot \mathbf{L}^T \cdot d\mathbf{l}_p.
 \end{equation}
-Because $\tensor{K}$ and $\tensor{L}$ are comprised of diagonal
+Because $\mathbf{K}$ and $\mathbf{L}$ are comprised of diagonal
 blocks, this expression for the updates to the solution are local to
 the degrees of freedom attached to the fault and the Lagrange
 multipliers.
@@ -1073,14 +1041,14 @@ multipliers.
 
 We also leverage the elimination of off-diagonal entries from the
 blocks of the Jacobian in dynamic simulations when updating the slip
-in spontaneous rupture models. Because $\tensor{K}$ is diagonal in
+in spontaneous rupture models. Because $\mathbf{K}$ is diagonal in
 this case, the expression for the change in slip for a perturbation in
 the Lagrange multipliers
 (equation~(\ref{eqn:spontaneous:rupture:slip:update})) are exact and
 simplify to
 \begin{equation}
-  \partial \vec{d}_p = - \left( \tensor{K}_{n^+n^+}^{-1} + \tensor{K}_{n^-n^-}^{-1} \right)
-  \cdot \tensor{L}_p^T \cdot \partial \vec{l}_p.
+  \partial \mathbf{d}_p = - \left( \mathbf{K}_{n^+n^+}^{-1} + \mathbf{K}_{n^-n^-}^{-1} \right)
+  \cdot \mathbf{L}_p^T \cdot \partial \mathbf{l}_p.
 \end{equation}
 
 
@@ -1093,9 +1061,37 @@ simplify to
   \item Spontaneous rupture 3-D\brad{Rough draft}
 \end{itemize}
 
-% ------------------------------------------------------------------
-\begin{data}
-\end{data}
+
+% ----------------------------------------------------------------------
+% Notation -- End each entry with a period.
+\begin{notation}
+  $\mathbf{A}$ & Matrix associated with Jacobian operator for the entire system of equations.\\
+  $\mathsf{C}$ & Four order tensor of elastic constants.\\
+  $\mathbf{d}$ & fault slip vector.\\
+  $\mathbf{f}$ & body force vector.\\
+  $\mathbf{l}$ & Lagrange multiplier vector corresponding to the fault traction vector.\\
+  $\mathbf{L}$ & Matrix associatd with Jacobian operator for constraint equation.\\
+  $\mathbf{K}$ & Matrix associated with Jacobian operator for
+  elasticity equation.\\
+  $\mu_f$ & coefficient of friction.\\
+  $\mathbf{n}$ & normal vector.\\
+  $S_f$ & fault surface.\\
+  $S_T$ & surface with Neumann boundary conditions.\\
+  $S_u$ & surface with Dirichlet boundary conditions.\\
+  $t$ & time.\\
+  $\mathbf{T}$ & Traction vector.\\
+  $T_c$ & scalar shear traction associated with cohesion.\\
+  $T_f$ & scalar shear traction associated with friction.\\
+  $T_n$ & scalar normal traction.\\
+  $V$ & spatial domain of model.\\
+  $\mathbf{T}$ & traction vector.\\
+  $\mathbf{u}$ & displacement vector.\\
+  $\mathbf{\phi}$ & weighting function.\\
+  $\rho$ & mass density.\\
+  $\mathsf{\sigma}$ & Cauchy stress tensor.\\
+
+\end{notation}
+
 
 % ------------------------------------------------------------------
 \begin{acknowledgments}
@@ -1111,11 +1107,103 @@ MGK acknowledges partial support from NS
 
 
 % ------------------------------------------------------------------
+% :SUBMIT: comment out
 \bibliography{references}
+\bibliographystyle{agufull08}
+% paste .bbl file HERE.
 
-\iftwocolumn % 2 columns
-  \end{multicols}
-\fi
+% ------------------------------------------------------------------
+% FIGURES
+% ------------------------------------------------------------------
+
+\begin{figure}[htbp]
+  \centering
+  \includegraphics{figs/domaindecomp}
+  \caption{Diagram of domain decomposition approach for modeling fault
+    slip. The fault slip introduces a jump in the displacement field
+    across the fault, whereas the tractions are continuous.}
+  \label{fig:domain:decomposition}
+\end{figure}
+
+\begin{figure}[htbp]
+  \centering
+  \brad{TODO: ADD DIAGRAM}
+  %\includegraphics{figs/cohesive_cell}
+  \caption{Construction of cohesive cells for a fault. (a) For each
+    vertex on the fault, introduce a vertex on the negative side of
+    the fault $S_{f^-}$ and a vertex corresponding to the Lagrange
+    multiplier constraint between the pair of vertices on the positive
+    and negative sides of the fault. (b) Replace the vertices in the
+    cell attached to the negative side of the fault with the newly
+    created vertices. (b) Construct cohesive cells with
+    zero volume from the vertices on the positive side of the fault,
+    negative side of the fault, and Lagrange multiplier constraints.}
+  \label{fig:cohesive:cell}
+\end{figure}
+
+
+% ------------------------------------------------------------------
+% TABLES
+% ------------------------------------------------------------------
+
+\begin{table}
+\centering
+\caption{Example preconditioners for the saddle point problem in
+  equation~(\ref{eqn:saddle-point}). All of these field split
+  preconditioners require the use of the parameters
+  \texttt{split\_fields = True} and \texttt{matrix\_type = aij} for
+  \texttt{pylithapp.problem.formulation}.}
+\label{tab:solver-options}
+\begin{tabular}{ll}
+  $\begin{pmatrix}\hat K & 0 \\ 0 & I\end{pmatrix}$ & $\begin{pmatrix}\hat K & L^T \\ 0 & I\end{pmatrix}$ \\
+  \texttt{[pylithapp.problem.formulation]}             & \texttt{[pylithapp.problem.formulation]} \\
+  \texttt{split\_fields = True}                        & \texttt{split\_fields = True} \\
+  \texttt{matrix\_type = aij}                          & \texttt{matrix\_type = aij} \\
+  \texttt{[pylithapp.petsc]}                           & \texttt{[pylithapp.petsc]} \\
+  \texttt{fs\_pc\_type = fieldsplit}                   & \texttt{fs\_pc\_type = fieldsplit} \\
+  \texttt{fs\_pc\_field\_split\_real\_diagonal = True} & \texttt{fs\_pc\_field\_split\_real\_diagonal = True} \\
+  \texttt{fs\_pc\_field\_split\_type = additive}       & \texttt{fs\_pc\_field\_split\_type multiplicative} \\
+  \texttt{fs\_fieldsplit\_0\_pc\_type = ml}            & \texttt{fs\_fieldsplit\_0\_pc\_type = ml} \\
+  \texttt{fs\_fieldsplit\_0\_ksp\_type = preonly}      & \texttt{fs\_fieldsplit\_0\_ksp\_type = preonly} \\
+  \texttt{fs\_fieldsplit\_1\_pc\_type = jacobi}        & \texttt{fs\_fieldsplit\_1\_pc\_type = jacobi} \\
+  \texttt{fs\_fieldsplit\_1\_ksp\_type = preonly}      & \texttt{fs\_fieldsplit\_1\_ksp\_type = preonly} \\
+  \smallskip \\
+  $\begin{pmatrix}\hat K & 0 \\ 0 & -\hat S\end{pmatrix}$ & $\begin{pmatrix}\hat K & 0 \\ L & \hat S\end{pmatrix}$ \\
+  \texttt{[pylithapp.problem.formulation]}                   & \texttt{[pylithapp.problem.formulation]} \\
+  \texttt{split\_fields = False}                             & \texttt{split\_fields = False} \\
+  \texttt{matrix\_type = aij}                                & \texttt{matrix\_type = aij} \\
+  \texttt{[pylithapp.petsc]}                                 & \texttt{[pylithapp.petsc]} \\
+  \texttt{pc\_type = fieldsplit}                             & \texttt{pc\_type = fieldsplit} \\
+  \texttt{pc\_field\_split\_type = schur}                    & \texttt{pc\_field\_split\_type schur} \\
+  \texttt{pc\_field\_split\_detect\_saddle\_point = True}    & \texttt{pc\_field\_split\_detect\_saddle\_point = True} \\
+  \texttt{pc\_fieldsplit\_schur\_factorization\_type = diag} & \texttt{pc\_fieldsplit\_schur\_factorization\_type lower} \\
+  \texttt{pc\_fieldsplit\_schur\_precondition = diag}??      & \texttt{pc\_fieldsplit\_schur\_precondition = diag}?? \\
+  \texttt{fieldsplit\_0\_pc\_type = ml}                      & \texttt{fieldsplit\_0\_pc\_type = ml} \\
+  \texttt{fieldsplit\_0\_ksp\_type = preonly}                & \texttt{fieldsplit\_0\_ksp\_type = preonly} \\
+  \texttt{fieldsplit\_1\_pc\_type = none}                    & \texttt{fieldsplit\_1\_pc\_type = none} \\
+  \texttt{fieldsplit\_1\_ksp\_type = minres}                 & \texttt{fieldsplit\_1\_ksp\_type = minres} \\
+  \smallskip \\
+  $\begin{pmatrix}\hat K & L^T \\ 0 & \hat S\end{pmatrix}$ & $\begin{pmatrix}I & 0 \\ B^T A^{-1} & I\end{pmatrix}\begin{pmatrix}\hat A & 0 \\ 0 & \hat S\end{pmatrix}\begin{pmatrix}I & A^{-1} B \\ 0 & I\end{pmatrix}$ \\
+  \texttt{[pylithapp.problem.formulation]}                    & \texttt{[pylithapp.problem.formulation]} \\
+  \texttt{split\_fields = False}                              & \texttt{split\_fields = False} \\
+  \texttt{matrix\_type = aij}                                 & \texttt{matrix\_type = aij} \\
+  \texttt{[pylithapp.petsc]}                                  & \texttt{[pylithapp.petsc]} \\
+  \texttt{pc\_type = fieldsplit}                              & \texttt{pc\_type = fieldsplit} \\
+  \texttt{pc\_field\_split\_type = schur}                     & \texttt{pc\_field\_split\_type = schur} \\
+  \texttt{pc\_field\_split\_detect\_saddle\_point = True}     & \texttt{pc\_field\_split\_detect\_saddle\_point = True} \\
+  \texttt{pc\_fieldsplit\_schur\_factorization\_type = upper} & \texttt{pc\_fieldsplit\_schur\_factorization\_type = full} \\
+  \texttt{pc\_fieldsplit\_schur\_precondition = diag}??       & \texttt{pc\_fieldsplit\_schur\_precondition = diag}?? \\
+  \texttt{fieldsplit\_0\_pc\_type = ml}                       & \texttt{fieldsplit\_0\_pc\_type = ml} \\
+  \texttt{fieldsplit\_0\_ksp\_type = preonly}                 & \texttt{fieldsplit\_0\_ksp\_type = preonly} \\
+  \texttt{fieldsplit\_1\_pc\_type = none}                     & \texttt{fieldsplit\_1\_pc\_type = none} \\
+  \texttt{fieldsplit\_1\_ksp\_type = minres}                  & \texttt{fieldsplit\_1\_ksp\_type = minres} \\
+\end{tabular}
+\end{table}
+
+
+
+% ------------------------------------------------------------------
+\end{article}
 
 % ==================================================================
 \end{document}
diff -r 6da349163758 -r 020cfc86ea0a figs/domaindecomp.pdf
Binary file figs/domaindecomp.pdf has changed
diff -r 6da349163758 -r 020cfc86ea0a figs/domaindecomp.svg
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/figs/domaindecomp.svg	Mon Mar 26 17:34:10 2012 -0700
@@ -0,0 +1,282 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="230.31496"
+   height="177.16534"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="domaindecomp.svg">
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="3.0533334"
+     inkscape:cx="102.90148"
+     inkscape:cy="73.254085"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="cm"
+     objecttolerance="10000"
+     guidetolerance="10000"
+     inkscape:window-width="1386"
+     inkscape:window-height="856"
+     inkscape:window-x="162"
+     inkscape:window-y="35"
+     inkscape:window-maximized="0"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2985"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true"
+       units="pt"
+       spacingx="2pt"
+       spacingy="2pt" />
+  </sodipodi:namedview>
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow1Sstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Sstart"
+       style="overflow:visible">
+      <path
+         id="path3782"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="matrix(0.2,0,0,0.2,1.2,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mstart"
+       style="overflow:visible">
+      <path
+         id="path3776"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="matrix(0.4,0,0,0.4,4,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send"
+       style="overflow:visible">
+      <path
+         id="path3785"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend"
+       style="overflow:visible">
+      <path
+         id="path3779"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Sendz"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Sendz"
+       style="overflow:visible">
+      <path
+         id="path5190"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill:#f67f00;fill-rule:evenodd;stroke:#f67f00;stroke-width:1pt;marker-start:none"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Sstartw"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Sstartw"
+       style="overflow:visible">
+      <path
+         id="path5269"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill:#1e6e96;fill-rule:evenodd;stroke:#1e6e96;stroke-width:1pt;marker-start:none"
+         transform="matrix(0.2,0,0,0.2,1.2,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+  </defs>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-4.2986832,-828.38489)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1"
+       d="m 76.798686,885.55024 0,-2.5 2.5,0"
+       id="path5333"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 20.000003,882.35975 c -9.8824,18.34029 -9.31695,43.8661 0,62.5 9.31695,18.6339 30.045285,31.51359 50,37.5 25,7.5 53.123697,22.08765 79.298677,15.69049 25.9169,-6.33403 70,-35 62.5,-50 -15.02313,-30.04625 12.5,-62.49999 0,-87.49999 -9.00617,-18.01234 -58.74206,7.29734 -104.29868,-15.6905 -14.116068,-7.12295 -41.344292,-1.72939 -49.999997,10 -9.159391,12.41195 -30.259529,14.06275 -37.5,27.5 z"
+       id="path2991"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="sasasssss" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1"
+       d="m 154.29868,958.05024 0,2.5 -2.5,0"
+       id="path5335"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#f67f00;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 76.798686,885.55024 74.999994,75"
+       id="path2987"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <text
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#1e6e96;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="96.798683"
+       y="885.55023"
+       id="text4397"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4399"
+         x="96.798683"
+         y="885.55023">Sf+</tspan></text>
+    <path
+       style="fill:none;stroke:#1e6e96;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 154.29868,958.05024 -74.999994,-75"
+       id="path2989"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Send)"
+       d="m 146.79868,955.55024 7.5,-7.5"
+       id="path2997"
+       inkscape:connector-curvature="0" />
+    <text
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f67f00;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="66.052376"
+       y="898.44061"
+       id="text4401"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4403"
+         x="66.052376"
+         y="898.44061">Sf-</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="41.91692"
+       y="73.659081"
+       id="text4405"
+       sodipodi:linespacing="125%"
+       transform="translate(0,827.35975)"><tspan
+         sodipodi:role="line"
+         id="tspan4407"
+         x="41.91692"
+         y="73.659081" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="159.29869"
+       y="948.05023"
+       id="text4409"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4411"
+         x="159.29869"
+         y="948.05023">n</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="94.978165"
+       y="80.895195"
+       id="text4413"
+       sodipodi:linespacing="125%"
+       transform="translate(0,827.35975)"><tspan
+         sodipodi:role="line"
+         id="tspan4415"
+         x="94.978165"
+         y="80.895195" /></text>
+    <path
+       style="fill:none;stroke:#1e6e96;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Sstartw)"
+       d="m 109.29868,908.05024 15,15"
+       id="path4417"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#f67f00;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Sendz)"
+       d="m 101.79869,915.55024 14.99999,15"
+       id="path4419"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#1e6e96;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="134.29869"
+       y="913.05023"
+       id="text5171"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan5173"
+         x="134.29869"
+         y="913.05023">u+,T+</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#f67f00;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       x="96.798683"
+       y="930.55023"
+       id="text5175"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan5177"
+         x="96.798683"
+         y="930.55023">u-,T-</tspan></text>
+  </g>
+</svg>
diff -r 6da349163758 -r 020cfc86ea0a figs/packages.eps
--- a/figs/packages.eps	Tue Oct 25 17:35:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1257 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: inkscape 0.46
-%%Pages: 1
-%%Orientation: Portrait
-%%BoundingBox: 2 25 393 213
-%%HiResBoundingBox: 2.215275 25.137696 392.24329 212.64878
-%%EndComments
-%%Page: 1 1
-0 216 translate
-0.8 -0.8 scale
-0 0 0 setrgbcolor
-[] 0 setdash
-1 setlinewidth
-0 setlinejoin
-0 setlinecap
-gsave [1 0 0 1 0 0] concat
-gsave
-0 0 0 setrgbcolor
-newpath
-250 35 moveto
-115 55 lineto
-eofill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-2.5 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-250 35 moveto
-115 55 lineto
-stroke
-0 0 0 setrgbcolor
-[] 0 setdash
-2.5 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-115 85 moveto
-75 105 lineto
-stroke
-0 0 0 setrgbcolor
-[] 0 setdash
-2.5 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-250 35 moveto
-340 105 lineto
-stroke
-0 0 0 setrgbcolor
-[] 0 setdash
-2.5 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-250 35 moveto
-365 55 lineto
-stroke
-0 0 0 setrgbcolor
-[] 0 setdash
-2.5 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-250 35 moveto
-190 105 lineto
-stroke
-0 0 0 setrgbcolor
-[] 0 setdash
-2.5 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-380 185 moveto
-275 211.36691 lineto
-stroke
-0 0 0 setrgbcolor
-[] 0 setdash
-2.5 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-53.742126 135 moveto
-45 205 lineto
-stroke
-0 0 0 setrgbcolor
-[] 0 setdash
-2.5 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-53.742126 135 moveto
-135 205 lineto
-stroke
-0 0 0 setrgbcolor
-[] 0 setdash
-2.5 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-115 85 moveto
-190.40778 104.54066 lineto
-stroke
-0 0 0 setrgbcolor
-[] 0 setdash
-2.5 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-365 85 moveto
-435 105 lineto
-stroke
-0 0 0 setrgbcolor
-[] 0 setdash
-2.5 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-365 85 moveto
-375 155 lineto
-stroke
-0 0 0 setrgbcolor
-[] 0 setdash
-2.5 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-345 135 moveto
-375 155 lineto
-stroke
-0 0 0 setrgbcolor
-[] 0 setdash
-2.5 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-53.742126 135 moveto
-245 205 lineto
-stroke
-0 0 0 setrgbcolor
-[] 0 setdash
-2.5 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-195 135 moveto
-255 155 lineto
-stroke
-0 0 0 setrgbcolor
-[] 0 setdash
-2.5 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-255 185 moveto
-245 205 lineto
-stroke
-gsave [0.5 0 0 0.5 -27.217264 1.987534] concat
-gsave [1 0 0 1 -5.427337 -8.6837392] concat
-gsave
-0 0 0 setrgbcolor
-newpath
-503.43279 19.050541 moveto
-622.45893 19.050541 lineto
-633.11183 19.050541 641.68799 27.626699 641.68799 38.279594 curveto
-641.68799 57.087669 lineto
-641.68799 67.740565 633.11183 76.316723 622.45893 76.316723 curveto
-503.43279 76.316723 lineto
-492.77989 76.316723 484.20374 67.740565 484.20374 57.087669 curveto
-484.20374 38.279594 lineto
-484.20374 27.626699 492.77989 19.050541 503.43279 19.050541 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-503.43279 19.050541 moveto
-622.45893 19.050541 lineto
-633.11183 19.050541 641.68799 27.626699 641.68799 38.279594 curveto
-641.68799 57.087669 lineto
-641.68799 67.740565 633.11183 76.316723 622.45893 76.316723 curveto
-503.43279 76.316723 lineto
-492.77989 76.316723 484.20374 67.740565 484.20374 57.087669 curveto
-484.20374 38.279594 lineto
-484.20374 27.626699 492.77989 19.050541 503.43279 19.050541 curveto
-closepath
-stroke
-gsave [1 0 0 -1 512.70172 55.298866] concat
-gsave
-/newlatin1font {findfont dup length dict copy dup /Encoding ISOLatin1Encoding put definefont} def
-/DejaVuLGCSans-Bold-ISOLatin1 /DejaVuLGCSans-Bold newlatin1font
-28 scalefont
-setfont
-0 0 0 setrgbcolor
-newpath
-0 0 moveto
-(PyLith) show
-grestore
-grestore
-grestore
-gsave [1 0 0 1 -9.7692068 -13.025609] concat
-gsave
-0.2 0.73333335 1 setrgbcolor
-newpath
-503.43279 19.050541 moveto
-622.45893 19.050541 lineto
-633.11183 19.050541 641.68799 27.626699 641.68799 38.279594 curveto
-641.68799 57.087669 lineto
-641.68799 67.740565 633.11183 76.316723 622.45893 76.316723 curveto
-503.43279 76.316723 lineto
-492.77989 76.316723 484.20374 67.740565 484.20374 57.087669 curveto
-484.20374 38.279594 lineto
-484.20374 27.626699 492.77989 19.050541 503.43279 19.050541 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-503.43279 19.050541 moveto
-622.45893 19.050541 lineto
-633.11183 19.050541 641.68799 27.626699 641.68799 38.279594 curveto
-641.68799 57.087669 lineto
-641.68799 67.740565 633.11183 76.316723 622.45893 76.316723 curveto
-503.43279 76.316723 lineto
-492.77989 76.316723 484.20374 67.740565 484.20374 57.087669 curveto
-484.20374 38.279594 lineto
-484.20374 27.626699 492.77989 19.050541 503.43279 19.050541 curveto
-closepath
-stroke
-gsave [1 0 0 -1 519.97516 55.298866] concat
-gsave
-/DejaVuLGCSans-ISOLatin1 /DejaVuLGCSans newlatin1font
-28 scalefont
-setfont
-0 0 0 setrgbcolor
-newpath
-0 0 moveto
-(PyLith) show
-grestore
-grestore
-grestore
-grestore
-gsave [0.5 0 0 0.5 -96.257874 -15] concat
-gsave
-0 0 0 setrgbcolor
-newpath
-241.7448 242.73383 moveto
-360.77095 242.73383 lineto
-371.42384 242.73383 380 251.30998 380 261.96288 curveto
-380 280.77095 lineto
-380 291.42385 371.42384 300.00001 360.77095 300.00001 curveto
-241.7448 300.00001 lineto
-231.0919 300.00001 222.51575 291.42385 222.51575 280.77095 curveto
-222.51575 261.96288 lineto
-222.51575 251.30998 231.0919 242.73383 241.7448 242.73383 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-241.7448 242.73383 moveto
-360.77095 242.73383 lineto
-371.42384 242.73383 380 251.30998 380 261.96288 curveto
-380 280.77095 lineto
-380 291.42385 371.42384 300.00001 360.77095 300.00001 curveto
-241.7448 300.00001 lineto
-231.0919 300.00001 222.51575 291.42385 222.51575 280.77095 curveto
-222.51575 261.96288 lineto
-222.51575 251.30998 231.0919 242.73383 241.7448 242.73383 curveto
-closepath
-stroke
-gsave [1 0 0 -1 251.01373 278.98215] concat
-gsave
-/DejaVuLGCSans-Bold-ISOLatin1 findfont
-28 scalefont
-setfont
-0 0 0 setrgbcolor
-newpath
-0 0 moveto
-(PyLith) show
-grestore
-grestore
-gsave
-0.3764706 0.80000001 0.054901961 setrgbcolor
-newpath
-237.40293 238.39195 moveto
-356.42907 238.39195 lineto
-367.08197 238.39195 375.65813 246.96811 375.65813 257.62101 curveto
-375.65813 276.42908 lineto
-375.65813 287.08198 367.08197 295.65813 356.42907 295.65813 curveto
-237.40293 295.65813 lineto
-226.75003 295.65813 218.17387 287.08198 218.17387 276.42908 curveto
-218.17387 257.62101 lineto
-218.17387 246.96811 226.75003 238.39195 237.40293 238.39195 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-237.40293 238.39195 moveto
-356.42907 238.39195 lineto
-367.08197 238.39195 375.65813 246.96811 375.65813 257.62101 curveto
-375.65813 276.42908 lineto
-375.65813 287.08198 367.08197 295.65813 356.42907 295.65813 curveto
-237.40293 295.65813 lineto
-226.75003 295.65813 218.17387 287.08198 218.17387 276.42908 curveto
-218.17387 257.62101 lineto
-218.17387 246.96811 226.75003 238.39195 237.40293 238.39195 curveto
-closepath
-stroke
-gsave [1 0 0 -1 248.96875 274.64029] concat
-gsave
-/DejaVuLGCSans-Bold-ISOLatin1 findfont
-28 scalefont
-setfont
-0 0 0 setrgbcolor
-newpath
-0 0 moveto
-(PETSc) show
-grestore
-grestore
-grestore
-gsave [0.5 0 0 0.5 138.34552 41.718437] concat
-gsave [1 0 0 1 10 -7.2397461e-06] concat
-gsave
-0 0 0 setrgbcolor
-newpath
-44.381899 131.92284 moveto
-163.40804 131.92284 lineto
-174.06094 131.92284 182.6371 140.49899 182.6371 151.15189 curveto
-182.6371 169.95996 lineto
-182.6371 180.61286 174.06094 189.18902 163.40804 189.18902 curveto
-44.381899 189.18902 lineto
-33.729003 189.18902 25.152845 180.61286 25.152845 169.95996 curveto
-25.152845 151.15189 lineto
-25.152845 140.49899 33.729003 131.92284 44.381899 131.92284 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-44.381899 131.92284 moveto
-163.40804 131.92284 lineto
-174.06094 131.92284 182.6371 140.49899 182.6371 151.15189 curveto
-182.6371 169.95996 lineto
-182.6371 180.61286 174.06094 189.18902 163.40804 189.18902 curveto
-44.381899 189.18902 lineto
-33.729003 189.18902 25.152845 180.61286 25.152845 169.95996 curveto
-25.152845 151.15189 lineto
-25.152845 140.49899 33.729003 131.92284 44.381899 131.92284 curveto
-closepath
-stroke
-gsave [1 0 0 -1 53.650833 168.17117] concat
-gsave
-/DejaVuLGCSans-Bold-ISOLatin1 findfont
-28 scalefont
-setfont
-0.3764706 0.80000001 0.054901961 setrgbcolor
-newpath
-0 0 moveto
-(PyLith) show
-grestore
-grestore
-gsave
-0.3764706 0.80000001 0.054901961 setrgbcolor
-newpath
-42.538013 126.56313 moveto
-161.56416 126.56313 lineto
-172.21706 126.56313 180.79321 135.13929 180.79321 145.79219 curveto
-180.79321 164.60026 lineto
-180.79321 175.25316 172.21706 183.82932 161.56416 183.82932 curveto
-42.538013 183.82932 lineto
-31.885118 183.82932 23.30896 175.25316 23.30896 164.60026 curveto
-23.30896 145.79219 lineto
-23.30896 135.13929 31.885118 126.56313 42.538013 126.56313 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-42.538013 126.56313 moveto
-161.56416 126.56313 lineto
-172.21706 126.56313 180.79321 135.13929 180.79321 145.79219 curveto
-180.79321 164.60026 lineto
-180.79321 175.25316 172.21706 183.82932 161.56416 183.82932 curveto
-42.538013 183.82932 lineto
-31.885118 183.82932 23.30896 175.25316 23.30896 164.60026 curveto
-23.30896 145.79219 lineto
-23.30896 135.13929 31.885118 126.56313 42.538013 126.56313 curveto
-closepath
-stroke
-gsave [1 0 0 -1 68.55896 163.8293] concat
-gsave
-/DejaVuLGCSans-ISOLatin1 findfont
-28 scalefont
-setfont
-0 0 0 setrgbcolor
-newpath
-0 0 moveto
-(Pyre) show
-0 0 0 setrgbcolor
-[] 0 setdash
-2 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-0 0 moveto
-(Pyre) false charpath stroke
-grestore
-grestore
-grestore
-grestore
-gsave [0.5 0 0 0.5 -27.423584 -9.0385742] concat
-gsave
-0 0 0 setrgbcolor
-newpath
-230.93383 135.15285 moveto
-349.95997 135.15285 lineto
-360.61287 135.15285 369.18903 143.72901 369.18903 154.3819 curveto
-369.18903 173.18998 lineto
-369.18903 183.84287 360.61287 192.41903 349.95997 192.41903 curveto
-230.93383 192.41903 lineto
-220.28093 192.41903 211.70477 183.84287 211.70477 173.18998 curveto
-211.70477 154.3819 lineto
-211.70477 143.72901 220.28093 135.15285 230.93383 135.15285 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-230.93383 135.15285 moveto
-349.95997 135.15285 lineto
-360.61287 135.15285 369.18903 143.72901 369.18903 154.3819 curveto
-369.18903 173.18998 lineto
-369.18903 183.84287 360.61287 192.41903 349.95997 192.41903 curveto
-230.93383 192.41903 lineto
-220.28093 192.41903 211.70477 183.84287 211.70477 173.18998 curveto
-211.70477 154.3819 lineto
-211.70477 143.72901 220.28093 135.15285 230.93383 135.15285 curveto
-closepath
-stroke
-gsave [1 0 0 -1 240.20276 171.40118] concat
-gsave
-/DejaVuLGCSans-Bold-ISOLatin1 findfont
-28 scalefont
-setfont
-0.3764706 0.80000001 0.054901961 setrgbcolor
-newpath
-0 0 moveto
-(PyLith) show
-grestore
-grestore
-gsave
-0.2 0.73333335 1 setrgbcolor
-newpath
-226.59195 130.81097 moveto
-345.6181 130.81097 lineto
-356.27099 130.81097 364.84715 139.38713 364.84715 150.04003 curveto
-364.84715 168.8481 lineto
-364.84715 179.501 356.27099 188.07716 345.6181 188.07716 curveto
-226.59195 188.07716 lineto
-215.93906 188.07716 207.3629 179.501 207.3629 168.8481 curveto
-207.3629 150.04003 lineto
-207.3629 139.38713 215.93906 130.81097 226.59195 130.81097 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.24 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-226.59195 130.81097 moveto
-345.6181 130.81097 lineto
-356.27099 130.81097 364.84715 139.38713 364.84715 150.04003 curveto
-364.84715 168.8481 lineto
-364.84715 179.501 356.27099 188.07716 345.6181 188.07716 curveto
-226.59195 188.07716 lineto
-215.93906 188.07716 207.3629 179.501 207.3629 168.8481 curveto
-207.3629 150.04003 lineto
-207.3629 139.38713 215.93906 130.81097 226.59195 130.81097 curveto
-closepath
-stroke
-gsave [1 0 0 -1 247.64603 167.05931] concat
-gsave
-/DejaVuLGCSans-ISOLatin1 findfont
-28 scalefont
-setfont
-0 0 0 setrgbcolor
-newpath
-0 0 moveto
-(Sieve) show
-0 0 0 setrgbcolor
-[] 0 setdash
-2 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-0 0 moveto
-(Sieve) false charpath stroke
-grestore
-grestore
-grestore
-gsave [0.5 0 0 0.5 209.89862 39.299408] concat
-gsave
-0 0 0 setrgbcolor
-newpath
-420.93383 135.15285 moveto
-539.95997 135.15285 lineto
-550.61287 135.15285 559.18903 143.72901 559.18903 154.3819 curveto
-559.18903 173.18998 lineto
-559.18903 183.84287 550.61287 192.41903 539.95997 192.41903 curveto
-420.93383 192.41903 lineto
-410.28093 192.41903 401.70477 183.84287 401.70477 173.18998 curveto
-401.70477 154.3819 lineto
-401.70477 143.72901 410.28093 135.15285 420.93383 135.15285 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-420.93383 135.15285 moveto
-539.95997 135.15285 lineto
-550.61287 135.15285 559.18903 143.72901 559.18903 154.3819 curveto
-559.18903 173.18998 lineto
-559.18903 183.84287 550.61287 192.41903 539.95997 192.41903 curveto
-420.93383 192.41903 lineto
-410.28093 192.41903 401.70477 183.84287 401.70477 173.18998 curveto
-401.70477 154.3819 lineto
-401.70477 143.72901 410.28093 135.15285 420.93383 135.15285 curveto
-closepath
-stroke
-gsave [1 0 0 -1 430.20276 171.40118] concat
-gsave
-/DejaVuLGCSans-Bold-ISOLatin1 findfont
-28 scalefont
-setfont
-0.3764706 0.80000001 0.054901961 setrgbcolor
-newpath
-0 0 moveto
-(PyLith) show
-grestore
-grestore
-gsave
-0.3764706 0.80000001 0.054901961 setrgbcolor
-newpath
-416.59194 130.81097 moveto
-535.61808 130.81097 lineto
-546.27098 130.81097 554.84714 139.38713 554.84714 150.04003 curveto
-554.84714 168.8481 lineto
-554.84714 179.501 546.27098 188.07716 535.61808 188.07716 curveto
-416.59194 188.07716 lineto
-405.93904 188.07716 397.36288 179.501 397.36288 168.8481 curveto
-397.36288 150.04003 lineto
-397.36288 139.38713 405.93904 130.81097 416.59194 130.81097 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-416.59194 130.81097 moveto
-535.61808 130.81097 lineto
-546.27098 130.81097 554.84714 139.38713 554.84714 150.04003 curveto
-554.84714 168.8481 lineto
-554.84714 179.501 546.27098 188.07716 535.61808 188.07716 curveto
-416.59194 188.07716 lineto
-405.93904 188.07716 397.36288 179.501 397.36288 168.8481 curveto
-397.36288 150.04003 lineto
-397.36288 139.38713 405.93904 130.81097 416.59194 130.81097 curveto
-closepath
-stroke
-gsave [1 0 0 -1 436.4429 167.05931] concat
-gsave
-/DejaVuLGCSans-ISOLatin1 findfont
-28 scalefont
-setfont
-0 0 0 setrgbcolor
-newpath
-0 0 moveto
-(Proj.4) show
-0 0 0 setrgbcolor
-[] 0 setdash
-2 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-0 0 moveto
-(Proj.4) false charpath stroke
-grestore
-grestore
-grestore
-gsave [0.5 0 0 0.5 5 39.195984] concat
-gsave
-0 0 0 setrgbcolor
-newpath
-621.7448 134.34186 moveto
-740.77095 134.34186 lineto
-751.42384 134.34186 760 142.91802 760 153.57091 curveto
-760 172.37899 lineto
-760 183.03188 751.42384 191.60804 740.77095 191.60804 curveto
-621.7448 191.60804 lineto
-611.0919 191.60804 602.51575 183.03188 602.51575 172.37899 curveto
-602.51575 153.57091 lineto
-602.51575 142.91802 611.0919 134.34186 621.7448 134.34186 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-621.7448 134.34186 moveto
-740.77095 134.34186 lineto
-751.42384 134.34186 760 142.91802 760 153.57091 curveto
-760 172.37899 lineto
-760 183.03188 751.42384 191.60804 740.77095 191.60804 curveto
-621.7448 191.60804 lineto
-611.0919 191.60804 602.51575 183.03188 602.51575 172.37899 curveto
-602.51575 153.57091 lineto
-602.51575 142.91802 611.0919 134.34186 621.7448 134.34186 curveto
-closepath
-stroke
-gsave [1 0 0 -1 631.01373 170.59019] concat
-gsave
-/DejaVuLGCSans-Bold-ISOLatin1 findfont
-28 scalefont
-setfont
-0.3764706 0.80000001 0.054901961 setrgbcolor
-newpath
-0 0 moveto
-(PyLith) show
-grestore
-grestore
-gsave
-0.3764706 0.80000001 0.054901961 setrgbcolor
-newpath
-617.40294 130 moveto
-736.42909 130 lineto
-747.08198 130 755.65814 138.57616 755.65814 149.22905 curveto
-755.65814 168.03713 lineto
-755.65814 178.69002 747.08198 187.26618 736.42909 187.26618 curveto
-617.40294 187.26618 lineto
-606.75005 187.26618 598.17389 178.69002 598.17389 168.03713 curveto
-598.17389 149.22905 lineto
-598.17389 138.57616 606.75005 130 617.40294 130 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-617.40294 130 moveto
-736.42909 130 lineto
-747.08198 130 755.65814 138.57616 755.65814 149.22905 curveto
-755.65814 168.03713 lineto
-755.65814 178.69002 747.08198 187.26618 736.42909 187.26618 curveto
-617.40294 187.26618 lineto
-606.75005 187.26618 598.17389 178.69002 598.17389 168.03713 curveto
-598.17389 149.22905 lineto
-598.17389 138.57616 606.75005 130 617.40294 130 curveto
-closepath
-stroke
-gsave [1 0 0 -1 647.50781 166.24832] concat
-gsave
-/DejaVuLGCSans-ISOLatin1 findfont
-28 scalefont
-setfont
-0 0 0 setrgbcolor
-newpath
-0 0 moveto
-(FIAT) show
-0 0 0 setrgbcolor
-[] 0 setdash
-2 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-0 0 moveto
-(FIAT) false charpath stroke
-grestore
-grestore
-grestore
-gsave [0.5 0 0 0.5 38.742126 38.633087] concat
-gsave
-0 0 0 setrgbcolor
-newpath
-611.7448 242.73383 moveto
-730.77095 242.73383 lineto
-741.42384 242.73383 750 251.30998 750 261.96288 curveto
-750 280.77095 lineto
-750 291.42385 741.42384 300.00001 730.77095 300.00001 curveto
-611.7448 300.00001 lineto
-601.0919 300.00001 592.51575 291.42385 592.51575 280.77095 curveto
-592.51575 261.96288 lineto
-592.51575 251.30998 601.0919 242.73383 611.7448 242.73383 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-611.7448 242.73383 moveto
-730.77095 242.73383 lineto
-741.42384 242.73383 750 251.30998 750 261.96288 curveto
-750 280.77095 lineto
-750 291.42385 741.42384 300.00001 730.77095 300.00001 curveto
-611.7448 300.00001 lineto
-601.0919 300.00001 592.51575 291.42385 592.51575 280.77095 curveto
-592.51575 261.96288 lineto
-592.51575 251.30998 601.0919 242.73383 611.7448 242.73383 curveto
-closepath
-stroke
-gsave [1 0 0 -1 621.01373 278.98215] concat
-gsave
-/DejaVuLGCSans-Bold-ISOLatin1 findfont
-28 scalefont
-setfont
-0 0 0 setrgbcolor
-newpath
-0 0 moveto
-(PyLith) show
-grestore
-grestore
-gsave
-1 0.73725492 0.41176471 setrgbcolor
-newpath
-607.40294 238.39195 moveto
-726.42909 238.39195 lineto
-737.08198 238.39195 745.65814 246.96811 745.65814 257.62101 curveto
-745.65814 276.42908 lineto
-745.65814 287.08198 737.08198 295.65813 726.42909 295.65813 curveto
-607.40294 295.65813 lineto
-596.75005 295.65813 588.17389 287.08198 588.17389 276.42908 curveto
-588.17389 257.62101 lineto
-588.17389 246.96811 596.75005 238.39195 607.40294 238.39195 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-607.40294 238.39195 moveto
-726.42909 238.39195 lineto
-737.08198 238.39195 745.65814 246.96811 745.65814 257.62101 curveto
-745.65814 276.42908 lineto
-745.65814 287.08198 737.08198 295.65813 726.42909 295.65813 curveto
-607.40294 295.65813 lineto
-596.75005 295.65813 588.17389 287.08198 588.17389 276.42908 curveto
-588.17389 257.62101 lineto
-588.17389 246.96811 596.75005 238.39195 607.40294 238.39195 curveto
-closepath
-stroke
-gsave [1 0 0 -1 618.14844 274.64029] concat
-gsave
-/DejaVuLGCSans-ISOLatin1 findfont
-28 scalefont
-setfont
-0 0 0 setrgbcolor
-newpath
-0 0 moveto
-(numpy) show
-grestore
-grestore
-grestore
-gsave [0.5 0 0 0.5 59.594509 11.209503] concat
-gsave
-0 0 0 setrgbcolor
-newpath
-94.381893 391.92285 moveto
-213.40804 391.92285 lineto
-224.06093 391.92285 232.63709 400.49901 232.63709 411.15191 curveto
-232.63709 429.95998 lineto
-232.63709 440.61288 224.06093 449.18903 213.40804 449.18903 curveto
-94.381893 449.18903 lineto
-83.728998 449.18903 75.15284 440.61288 75.15284 429.95998 curveto
-75.15284 411.15191 lineto
-75.15284 400.49901 83.728998 391.92285 94.381893 391.92285 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-94.381893 391.92285 moveto
-213.40804 391.92285 lineto
-224.06093 391.92285 232.63709 400.49901 232.63709 411.15191 curveto
-232.63709 429.95998 lineto
-232.63709 440.61288 224.06093 449.18903 213.40804 449.18903 curveto
-94.381893 449.18903 lineto
-83.728998 449.18903 75.15284 440.61288 75.15284 429.95998 curveto
-75.15284 411.15191 lineto
-75.15284 400.49901 83.728998 391.92285 94.381893 391.92285 curveto
-closepath
-stroke
-gsave [1 0 0 -1 103.65082 428.17117] concat
-gsave
-/DejaVuLGCSans-Bold-ISOLatin1 findfont
-28 scalefont
-setfont
-0 0 0 setrgbcolor
-newpath
-0 0 moveto
-(PyLith) show
-grestore
-grestore
-gsave
-1 0.25098041 0.25098041 setrgbcolor
-newpath
-90.040035 387.58099 moveto
-209.06618 387.58099 lineto
-219.71908 387.58099 228.29523 396.15715 228.29523 406.81005 curveto
-228.29523 425.61812 lineto
-228.29523 436.27102 219.71908 444.84718 209.06618 444.84718 curveto
-90.040035 444.84718 lineto
-79.38714 444.84718 70.810982 436.27102 70.810982 425.61812 curveto
-70.810982 406.81005 lineto
-70.810982 396.15715 79.38714 387.58099 90.040035 387.58099 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-90.040035 387.58099 moveto
-209.06618 387.58099 lineto
-219.71908 387.58099 228.29523 396.15715 228.29523 406.81005 curveto
-228.29523 425.61812 lineto
-228.29523 436.27102 219.71908 444.84718 209.06618 444.84718 curveto
-90.040035 444.84718 lineto
-79.38714 444.84718 70.810982 436.27102 70.810982 425.61812 curveto
-70.810982 406.81005 lineto
-70.810982 396.15715 79.38714 387.58099 90.040035 387.58099 curveto
-closepath
-stroke
-gsave [1 0 0 -1 124.7113 423.82932] concat
-gsave
-/DejaVuLGCSans-ISOLatin1 findfont
-28 scalefont
-setfont
-0 0 0 setrgbcolor
-newpath
-0 0 moveto
-(MPI) show
-grestore
-grestore
-grestore
-gsave [0.5 0 0 0.5 57.414459 13.085342] concat
-gsave [1.4843773 0 0 0.9939207 -187.10437 2.5566968] concat
-gsave
-0 0 0 setrgbcolor
-newpath
-324.62291 391.92285 moveto
-443.64906 391.92285 lineto
-454.30195 391.92285 462.87811 400.49901 462.87811 411.15191 curveto
-462.87811 429.95998 lineto
-462.87811 440.61288 454.30195 449.18903 443.64906 449.18903 curveto
-324.62291 449.18903 lineto
-313.97002 449.18903 305.39386 440.61288 305.39386 429.95998 curveto
-305.39386 411.15191 lineto
-305.39386 400.49901 313.97002 391.92285 324.62291 391.92285 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-324.62291 391.92285 moveto
-443.64906 391.92285 lineto
-454.30195 391.92285 462.87811 400.49901 462.87811 411.15191 curveto
-462.87811 429.95998 lineto
-462.87811 440.61288 454.30195 449.18903 443.64906 449.18903 curveto
-324.62291 449.18903 lineto
-313.97002 449.18903 305.39386 440.61288 305.39386 429.95998 curveto
-305.39386 411.15191 lineto
-305.39386 400.49901 313.97002 391.92285 324.62291 391.92285 curveto
-closepath
-stroke
-grestore
-gsave
-1 0.25098041 0.25098041 setrgbcolor
-newpath
-280.10008 387.76382 moveto
-479.89993 387.76382 lineto
-490.48481 387.76382 499.00621 396.28522 499.00621 406.8701 curveto
-499.00621 425.55808 lineto
-499.00621 436.14296 490.48481 444.66436 479.89993 444.66436 curveto
-280.10008 444.66436 lineto
-269.5152 444.66436 260.9938 436.14296 260.9938 425.55808 curveto
-260.9938 406.8701 lineto
-260.9938 396.28522 269.5152 387.76382 280.10008 387.76382 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.9752169 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-280.10008 387.76382 moveto
-479.89993 387.76382 lineto
-490.48481 387.76382 499.00621 396.28522 499.00621 406.8701 curveto
-499.00621 425.55808 lineto
-499.00621 436.14296 490.48481 444.66436 479.89993 444.66436 curveto
-280.10008 444.66436 lineto
-269.5152 444.66436 260.9938 436.14296 260.9938 425.55808 curveto
-260.9938 406.8701 lineto
-260.9938 396.28522 269.5152 387.76382 280.10008 387.76382 curveto
-closepath
-stroke
-gsave [1 0 0 -1 285.17108 423.82932] concat
-gsave
-/DejaVuLGCSans-ISOLatin1 findfont
-28 scalefont
-setfont
-0 0 0 setrgbcolor
-newpath
-0 0 moveto
-(BLAS/LAPACK) show
-grestore
-grestore
-grestore
-gsave [0.5 0 0 0.5 -240.50687 10.914413] concat
-gsave
-0 0 0 setrgbcolor
-newpath
-511.7448 391.92285 moveto
-630.77095 391.92285 lineto
-641.42384 391.92285 650 400.49901 650 411.15191 curveto
-650 429.95998 lineto
-650 440.61288 641.42384 449.18903 630.77095 449.18903 curveto
-511.7448 449.18903 lineto
-501.0919 449.18903 492.51575 440.61288 492.51575 429.95998 curveto
-492.51575 411.15191 lineto
-492.51575 400.49901 501.0919 391.92285 511.7448 391.92285 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-511.7448 391.92285 moveto
-630.77095 391.92285 lineto
-641.42384 391.92285 650 400.49901 650 411.15191 curveto
-650 429.95998 lineto
-650 440.61288 641.42384 449.18903 630.77095 449.18903 curveto
-511.7448 449.18903 lineto
-501.0919 449.18903 492.51575 440.61288 492.51575 429.95998 curveto
-492.51575 411.15191 lineto
-492.51575 400.49901 501.0919 391.92285 511.7448 391.92285 curveto
-closepath
-stroke
-gsave [1 0 0 -1 521.01373 428.17117] concat
-gsave
-/DejaVuLGCSans-Bold-ISOLatin1 findfont
-28 scalefont
-setfont
-0 0 0 setrgbcolor
-newpath
-0 0 moveto
-(PyLith) show
-grestore
-grestore
-gsave
-1 0.25098041 0.25098041 setrgbcolor
-newpath
-507.40294 387.58099 moveto
-626.42909 387.58099 lineto
-637.08198 387.58099 645.65814 396.15715 645.65814 406.81005 curveto
-645.65814 425.61812 lineto
-645.65814 436.27102 637.08198 444.84718 626.42909 444.84718 curveto
-507.40294 444.84718 lineto
-496.75005 444.84718 488.17389 436.27102 488.17389 425.61812 curveto
-488.17389 406.81005 lineto
-488.17389 396.15715 496.75005 387.58099 507.40294 387.58099 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-507.40294 387.58099 moveto
-626.42909 387.58099 lineto
-637.08198 387.58099 645.65814 396.15715 645.65814 406.81005 curveto
-645.65814 425.61812 lineto
-645.65814 436.27102 637.08198 444.84718 626.42909 444.84718 curveto
-507.40294 444.84718 lineto
-496.75005 444.84718 488.17389 436.27102 488.17389 425.61812 curveto
-488.17389 406.81005 lineto
-488.17389 396.15715 496.75005 387.58099 507.40294 387.58099 curveto
-closepath
-stroke
-gsave [1 0 0 -1 527.9375 423.82932] concat
-gsave
-/DejaVuLGCSans-ISOLatin1 findfont
-28 scalefont
-setfont
-0 0 0 setrgbcolor
-newpath
-0 0 moveto
-(boost) show
-grestore
-grestore
-grestore
-gsave [0.5 0 0 0.5 222.57642 -9.0385742] concat
-gsave
-0 0 0 setrgbcolor
-newpath
-230.93383 135.15285 moveto
-349.95997 135.15285 lineto
-360.61287 135.15285 369.18903 143.72901 369.18903 154.3819 curveto
-369.18903 173.18998 lineto
-369.18903 183.84287 360.61287 192.41903 349.95997 192.41903 curveto
-230.93383 192.41903 lineto
-220.28093 192.41903 211.70477 183.84287 211.70477 173.18998 curveto
-211.70477 154.3819 lineto
-211.70477 143.72901 220.28093 135.15285 230.93383 135.15285 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-230.93383 135.15285 moveto
-349.95997 135.15285 lineto
-360.61287 135.15285 369.18903 143.72901 369.18903 154.3819 curveto
-369.18903 173.18998 lineto
-369.18903 183.84287 360.61287 192.41903 349.95997 192.41903 curveto
-230.93383 192.41903 lineto
-220.28093 192.41903 211.70477 183.84287 211.70477 173.18998 curveto
-211.70477 154.3819 lineto
-211.70477 143.72901 220.28093 135.15285 230.93383 135.15285 curveto
-closepath
-stroke
-gsave [1 0 0 -1 240.20276 171.40118] concat
-gsave
-/DejaVuLGCSans-Bold-ISOLatin1 findfont
-28 scalefont
-setfont
-0.3764706 0.80000001 0.054901961 setrgbcolor
-newpath
-0 0 moveto
-(PyLith) show
-grestore
-grestore
-gsave
-0.2 0.73333335 1 setrgbcolor
-newpath
-214.07621 128.07715 moveto
-355.61811 128.07715 lineto
-366.27101 128.07715 374.84717 136.65331 374.84717 147.3062 curveto
-374.84717 168.84809 lineto
-374.84717 179.50099 366.27101 188.07715 355.61811 188.07715 curveto
-214.07621 188.07715 lineto
-203.42331 188.07715 194.84715 179.50099 194.84715 168.84809 curveto
-194.84715 147.3062 lineto
-194.84715 136.65331 203.42331 128.07715 214.07621 128.07715 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.24 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-214.07621 128.07715 moveto
-355.61811 128.07715 lineto
-366.27101 128.07715 374.84717 136.65331 374.84717 147.3062 curveto
-374.84717 168.84809 lineto
-374.84717 179.50099 366.27101 188.07715 355.61811 188.07715 curveto
-214.07621 188.07715 lineto
-203.42331 188.07715 194.84715 179.50099 194.84715 168.84809 curveto
-194.84715 147.3062 lineto
-194.84715 136.65331 203.42331 128.07715 214.07621 128.07715 curveto
-closepath
-stroke
-gsave [1 0 0 -1 206.16556 167.05931] concat
-gsave
-/DejaVuLGCSans-ISOLatin1 findfont
-28 scalefont
-setfont
-0 0 0 setrgbcolor
-newpath
-0 0 moveto
-(Spatialdata) show
-0 0 0 setrgbcolor
-[] 0 setdash
-2 setlinewidth
-0 setlinejoin
-0 setlinecap
-newpath
-0 0 moveto
-(Spatialdata) false charpath stroke
-grestore
-grestore
-grestore
-gsave [0.5 0 0 0.5 -47.628933 29.875587] concat
-gsave [1 0 0 1 -63.238227 15.608536] concat
-gsave
-0 0 0 setrgbcolor
-newpath
-611.7448 242.73383 moveto
-730.77095 242.73383 lineto
-741.42384 242.73383 750 251.30998 750 261.96288 curveto
-750 280.77095 lineto
-750 291.42385 741.42384 300.00001 730.77095 300.00001 curveto
-611.7448 300.00001 lineto
-601.0919 300.00001 592.51575 291.42385 592.51575 280.77095 curveto
-592.51575 261.96288 lineto
-592.51575 251.30998 601.0919 242.73383 611.7448 242.73383 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-611.7448 242.73383 moveto
-730.77095 242.73383 lineto
-741.42384 242.73383 750 251.30998 750 261.96288 curveto
-750 280.77095 lineto
-750 291.42385 741.42384 300.00001 730.77095 300.00001 curveto
-611.7448 300.00001 lineto
-601.0919 300.00001 592.51575 291.42385 592.51575 280.77095 curveto
-592.51575 261.96288 lineto
-592.51575 251.30998 601.0919 242.73383 611.7448 242.73383 curveto
-closepath
-stroke
-gsave [1 0 0 -1 621.01373 278.98215] concat
-gsave
-/DejaVuLGCSans-Bold-ISOLatin1 findfont
-28 scalefont
-setfont
-0 0 0 setrgbcolor
-newpath
-0 0 moveto
-(PyLith) show
-grestore
-grestore
-gsave
-1 0.73725492 0.41176471 setrgbcolor
-newpath
-607.40294 238.39195 moveto
-726.42909 238.39195 lineto
-737.08198 238.39195 745.65814 246.96811 745.65814 257.62101 curveto
-745.65814 276.42908 lineto
-745.65814 287.08198 737.08198 295.65813 726.42909 295.65813 curveto
-607.40294 295.65813 lineto
-596.75005 295.65813 588.17389 287.08198 588.17389 276.42908 curveto
-588.17389 257.62101 lineto
-588.17389 246.96811 596.75005 238.39195 607.40294 238.39195 curveto
-closepath
-fill
-grestore
-0 0 0 setrgbcolor
-[] 0 setdash
-3.2439232 setlinewidth
-1 setlinejoin
-0 setlinecap
-newpath
-607.40294 238.39195 moveto
-726.42909 238.39195 lineto
-737.08198 238.39195 745.65814 246.96811 745.65814 257.62101 curveto
-745.65814 276.42908 lineto
-745.65814 287.08198 737.08198 295.65813 726.42909 295.65813 curveto
-607.40294 295.65813 lineto
-596.75005 295.65813 588.17389 287.08198 588.17389 276.42908 curveto
-588.17389 257.62101 lineto
-588.17389 246.96811 596.75005 238.39195 607.40294 238.39195 curveto
-closepath
-stroke
-gsave [1 0 0 -1 608.49609 274.64029] concat
-gsave
-/DejaVuLGCSans-ISOLatin1 findfont
-28 scalefont
-setfont
-0 0 0 setrgbcolor
-newpath
-0 0 moveto
-(nemesis) show
-grestore
-grestore
-grestore
-grestore
-grestore
-showpage
-%%EOF
diff -r 6da349163758 -r 020cfc86ea0a kinrup.tex
--- a/kinrup.tex	Tue Oct 25 17:35:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,504 +0,0 @@
-%-*- TeX -*-
-%
-% Manuscript for paper on PyLith focusing on kinematic fault ruptures
-% and linear and nonlinear solvers.
-%
-% Brad Aagaard, Charles Williams, and Matthew Knepley
-%
-% Creating PS and PDF output.
-%   Run 'make' to run latex.
-%   Run 'make bib' to run bibtex (after running latex).
-%   Run 'make again' to run latex again.
-%   Run 'make ps' or 'make pdf' as desired.
-%
-% References
-%   Put references in pylith.bib
-%
-% Citations
-%   \cite{key} produces (author, year)
-%   \citet{key} produces author (year)
-%   \citep[e.g.,]{key} produces (e.g., author, year)
-
-\documentclass[final,3p,times,twocolumn]{elsarticle}
-%\documentclass[preprint]{elsarticle}
-%\documentclass[review]{elsarticle}
-
-\usepackage{graphics}
-
-\def\code#1{{\tt #1}}
-
-\journal{Physics of the Earth and Planetary Interiors}
-
-% ==================================================================
-\begin{document}
-
-% ----------------------------------------------------------------------
-\begin{frontmatter}
-
-  \title{PyLith: A finite element code for modeling quasi-static and
-    dynamic crustal deformation}
-
-  \author[bta]{B.T. Aagaard}
-  \author[cw]{C.A. Williams}
-  \author[mk]{M. Knepley}
-  
-  \address[bta]{U.S. Geological Survey, MS977, 345 Middlefield Rd.,
-    Menlo Park, CA 94025, USA}
-  \address[cw]{GNS Science, 1 Fairway Drive, Avalon, PO Box 30368,
-    Lower Hutt  5040, New Zealand}
-  \address[mk]{Computation Institute, University of Chicago,
-    5801 South Ellis Avenue, Chicago, IL 60657}
-
-  \begin{abstract}
-    INSERT ABSTRACT HERE
-  \end{abstract}
-
-  \begin{keyword}
-    Earthquakes \sep
-    Numerical modeling \sep
-    Interseismic deformation \sep
-    Viscoelastic relaxation
-  \end{keyword}
-  
-\end{frontmatter}
-
-%\linenumbers
-
-% ----------------------------------------------------------------------
-\section{Introduction}
-\label{sec:introduction}
-
-Over the last decade, demand for efficient, scalable, yet flexible
-software for modeling crustal deformation associated with earthquake
-faulting has steadily increased. Much of this greater demand can be
-attributed to the use of more sophisticated and higher resolution
-models associated with the development of continuous Global Position
-System (GPS) networks and development of 3-D geologic models that
-incorporate 3-D variations in elastic properties (i.e., seismic
-velocity models) and 3-D descriptions of fault surfaces. Additionally,
-most researchers use multi-processor and multi-core desktop computers,
-and many have access to Beowulf clusters, enabling them to run much
-larger problems, often in parallel.
-
-Updating software that was developed for much simpler models and
-sequential computing to meet these new expectations can be quite
-difficult and time consuming, especially for earth scientists with
-little background or training in software engineering. As part of the
-Computational Infrastructure for Geodynamics (CIG) project, we have
-developed a flexible, computationally efficient software package called PyLith
-for simulation of crustal deformation associated with earthquake
-faulting in 1-D, 2-D and 3-D across spatial scales ranging from tens of
-meters to hundreds of kilometers and temporal scales ranging from
-milliseconds to thousands of years. PyLith combines the quasi-static
-modeling functionality of PyLith 0.8 and its predecessors,
-LithoMop and Tecton~\cite{Tecton,Lithomop}, with the dynamic modeling functionality
-of EqSim~\cite{Aagaard:etal:EqSpectra:2001,Aagaard:etal:BSSA:2001}.
-The target applications include quasi-static modeling of interseismic
-deformation with viscoelastic rheologies and dynamic modeling of
-earthquakes using kinematic or spontaneous ruptures.
-
-PyLith was written with three primary objectives. One, it must be
-modular, so that a wide range of problems can be run using a minimal
-amount of computer code. Two, it should be scalable, so that it can run
-on one or hundreds of processors. Three, it must be extensible, so that
-expert users can add functionality to solve their problem of interest
-without altering the main code. PyLith utilizes finite elements to
-discretize the problem, and in developing PyLith we separated the
-implementation of the geodynamics from the implementation of the
-finite element data structures. We also continued to develop and
-extend an infrastructure library, called Spatialdata, for specifying
-spatial variations in parameters for boundary conditions and physical
-properties. As a result, our software developments efforts have
-involved PyLith, which implements the elastodynamics required to solve
-crustal deformation problems for earthquake faulting, Sieve, which
-implements the finite element data structures and the interfaces for
-manipulating them, and Spatialdata.
-
-The two finite element codes on which PyLith is based, Tecton and
-EqSim, share some common features but have quite different
-histories. 
-
-ADD STUFF HERE
-\begin{itemize}
-  \item Shared features
-  \begin{itemize}
-    \item second-order finite elements
-    \begin{itemize}
-      \item[Tecton] tets, hexes?
-      \item[EqSim] tets
-    \end{itemize}
-
-    \item kinematic ruptures
-    \begin{itemize}
-      \item[Tecton] split nodes
-      \item[EqSim] split mesh
-    \end{itemize}
-
-    \item spontaneous ruptures
-    \begin{itemize}
-      \item[Tecton] slippery nodes (free only, no friction?)
-      \item[EqSim] friction on surface with split mesh
-    \end{itemize}
-
-    \item no direct involvement of computational scientists
-  \end{itemize}
-
-  \item Different features
-  \begin{itemize}
-    \item formulation
-    \begin{itemize}
-      \item[Tecton] implicit time stepping
-      \item[EqSim] dynamic time stepping or static
-    \end{itemize}
-
-    \item language
-    \begin{itemize}
-      \item[Tecton] Fortran 77
-      \item[EqSim] C++
-    \end{itemize}
-
-    \item solver
-    \begin{itemize}
-      \item[Tecton] ??
-      \item[EqSim] PCG for static, direct for dynamic
-    \end{itemize}
-
-    \item scalability
-    \begin{itemize}
-      \item[Tecton] sequential
-      \item[EqSim] parallel, tens of processors
-    \end{itemize}
-
-    \item history
-    \begin{itemize}
-      \item[Tecton] developed by Jay Melosh with multiple branches
-      developing over the years with various people adding new features
-      \item[EqSim] developed by single researcher with a few features
-    \end{itemize}
-  \end{itemize}
-\end{itemize}
-  
-
-% ----------------------------------------------------------------------
-\section{Features}
-\label{sec:features}
-
-The current release of PyLith, version 1.4.0, includes features that
-permit simulation of a wide variety of crustal deformation problems.
-These problems include investigation of pre- and post-seismic
-deformation with relaxation of stresses arising from a variety of
-viscoelastic mechanisms driven by displacement, velocity, or traction
-boundary conditions and/or combinations of coseismic and aseismic slip
-on fault surfaces. PyLith can also be used to model ground motions
-using kinematic rupture models.
-
-The bulk constitutive models include
-\begin{itemize}
-\item linearly elastic for 2-D plane stress, 2-D plane strain, and 3-D;
-\item Maxwell linear viscoelastic for 2-D plane strain [TODO] and 3-D;
-\item generalized Maxwell viscoelastic for 2-D plane strain [TODO] and
-  3-D; and
-\item power-law viscoelastic for 2-D plane strain [TODO] and 3-D.
-\end{itemize}
-The boundary conditions include
-\begin{itemize}
-\item Dirichlet with fixed displacements or constant velocities,
-\item Neumann with constant tractions, and
-\item absorbing boundaries with simple dashpots.
-\end{itemize}
-
-Slip on faults can be specified using several different slip time
-functions. For dynamic coseismic slip PyLith includes the
-\cite{Liu:etal:2006} time-function composed of sine-cosine
-functions and the integral of Brune's far-field time function
-\cite{Brune:1970}. The \citet{Liu:etal:2006} function provides a
-sharper initial rise and more abrupt termination than the
-\citet{Brune:1970} function. For quasi-static coseismic slip, PyLith
-includes a step function, and for aseismic creep, it includes a
-constant slip rate time function. Multiple, overlapping sources of
-slip can be specified on any fault surface.
-
-PyLith supports both simplices (line, triangular, and tetrahedral
-cells) and boxes (line, quadrilateral, and hexahedral cells) for
-discretization of the model domain. Fields within the cells are
-described using basis functions with integration performed through
-numerical quadrature. Although the discretization is limited to
-isoparametric cells (the basis functions define the geometry of the
-cell as well as the interpolation of the field in space), a user can
-use arbitrary basis functions and quadrature points.
-
-PyLith uses the FIAT~\cite{KirbyTOMS} package to manage finite element spaces and quadrature. FIAT provides a great
-number of element families for arbitrary order, and for any quadrature order. PyLith retrieves a tabulation of the basis
-functions and derivatives of arbitrary order at the quadrature points, on the fly so that the element may be changed at
-any time during the run. Thus, our residual and Jacobian assembly is independent of both the element and quadrature. The
-assembly code is also independent of the mesh element shape and dimension since it uses the Sieve interface in order to
-structure the finite element integration, detailed in Section~\ref{sec:sieveImpl}.
-
-% ----------------------------------------------------------------------
-\section{Architecture}
-\label{sec:architecture}
-
-In order to achieve the three primary design objectives for PyLith,
-modularity, scalability, and extensibility, we divide the
-implementation into two pieces: problem specification and flow control,
-and finite element computation. Furthermore, as illustrated in
-Figure~\ref{fig:architecture}, we leverage the flexibility, scripting
-capabilities, and expressiveness of the Python computer language by
-implementing the program specification and flow control in Python, and
-the greater efficiency of C++ by implementing the finite element
-computation in C++. Both languages support modularity and
-encapsulation through an object-oriented approach. By controlling the
-program flow in Python, all of the inter-language interfacing is
-associated with calls from Python to C++. This simplifies the
-interface between the two languages, and we use the Simplified Wrapper
-and Interface Generator (SWIG) to automatically generate the Python
-wrappers for the C++ code. We found SWIG to be more robust and less
-time consuming that manually writing the wrappers or generating the
-wrappers with tools designed for the C language, such as Pyrex.
-
-
-\begin{figure}[htbp]
-  \centering
-  INSERT DIAGRAM HERE
-  %\includegraphics{figs/architecture}
-  \caption{ADD CAPTION HERE}
-  \label{fig:architecture}
-\end{figure}
-
-In addition to Sieve and Spatialdata mentioned earlier, PyLith relies
-upon several other CIG and third-party software packages, and our
-choice to implement the problem specification and flow control in
-Python and the finite element computation in C++ was largely driven by
-the desire to leverage these other tools. Because Sieve and
-Spatialdata are written in C++ it is natural to use C++ for the
-finite element computation portion of PyLith. The other main
-infrastructure component used by PyLith is Pyre, which collects the
-user's specification of the simulation, launches the parallel
-application, performs unit conversions, and controls the verbosity of
-the output. Because Pyre is written in Python the problem
-specification and flow control portion of PyLith is written in Python.
-
-The other software packages used by PyLith include
-\begin{description}
-\item[FIAT] FInite element Automatic Tabulator tabulates basis
-  functions and their derivatives using Jacobi-type quadrature rules;
-\item[MPI] Message Passing Interface for parallel processing;
-\item[nemesis] Uses the Message Passing Interface (MPI) to run Python
-  in parallel; developed by CIG;
-\item[numpy] Efficient array storage, manipulation, and processing in
-  Python;
-\item[PETSc] Portable, Extensive Toolkit for Scientific Computation
-  for parallel linear algebra and solvers;
-\item[PROJ.4] Cartographic projections library for converting among
-  geographic coordinates and Cartesian coordinates in geographic
-  projections;
-\end{description}
-
-\begin{figure}[htbp]
-  \centering
-  INSERT DIAGRAM HERE
-  %\includegraphics{figs/dependencies}
-  \caption{ADD CAPTION HERE}
-  \label{fig:dependencies}
-\end{figure}
-
-
-
-% ----------------------------------------------------------------------
-\section{Implementation}
-\label{sec:implementation}
-
-\subsection{Sieve}\label{sec:sieveImpl}
-
-Sieve is a component of the larger Portable, Extensive Toolkit for
-Scientific Computation (PETSc), which provides data structures and
-routines for the scalable solution of partial differential equations.
-PETSc is traditionally incorporated into an existing application code
-by adopting its linear algebra interface. Since all higher level PETSc
-classes, such as linear and nonlinear solvers, use this interface, a
-user need only convert their linear algebra to the PETSc model in
-order to make use of the solvers and data management classes.
-
-In a finite element formulation, fields defined over the mesh are
-stored in PETSc \code{Vec} objects. The memory for this \code{Vec}
-storage can be managed by PETSc, or the user may choose to provide an
-array for the \code{Vec}. Since the memory can be directly accessed,
-little change to the existed code is usually necessary. For parallel
-codes, PETSc provides a \code{VecScatter} class to manage
-communication between \code{Vec} entries on different processes. With
-this interface, the user must manage all fields, field components, and
-index mappings. 
-
-The Sieve interface provides the topological and geometric relations
-necessary to construct the finite element formulation of the governing
-equations. As a result, we arrive at the quite simple, yet, powerful
-interface shown in Table~\ref{table:SieveOps}. These simple operations
-are sufficient to construct a complex finite element solver, and their
-very simplicity facilitates considerable reuse. For example, PyLith
-uses the same assembly routine for one, two, and three dimensional
-meshes of both simplices (line, triangular, and tetrahedral cells) and
-boxes (line, quadrilateral, and hexahedral cells). This is possible
-because Sieve has stripped away the inessential designations of shape
-and dimension, preserving only the adjacency relations which are
-crucial to the finite element traversal and field layout.
-
-\begin{table}
-  \begin{tabular}{|l|l|}
-    \hline
-    cone(p)    & sequence of points covering a given point p \\\hline
-    closure(p) & transitive closure of cone \\\hline
-    support(p) & sequence of points covered by a given point p\\\hline
-    star(p)    & transitive closure of support \\\hline
-    meet(p,q)  & minimal separator of closure(p) and closure(q)\\ \hline
-    join(p,q)  & minimal separator of star(p) and star(q)\\ \hline
-  \end{tabular}
-  \caption{Typical operations on a Sieve.}
-  \label{table:SieveOps}
-\end{table}
-
-%Higher level abstractions for FEM codes
-
-Sieve provides canonical views of the data at three, nested levels, as well as transformations between levels, and
-traversals over the data on each level. The most familiar level of organization is the \emph{global} view of a
-completely assembled function or operator. This is also the level at which traditional PETSc linear algebra
-operates. All unknowns are globally ordered across processes, so that any unknown can be referenced on any process by
-a global number. The user can retrieve the array from PETSc storage and manipulate unknowns as they please, however it
-must be through the global order, which usually introduces complex and error prone indexing overhead.
-
-At the \emph{local} level of organization, only unknowns associated with a given process are accessible. These local
-unknowns are ``ghosted'', in the sense that unknowns may exist on multiple processes. This level demands only a local
-order, and is thus inherently more scalable than the global level. The PETSc DA, which models Cartesian grids, provides
-this level through local \code{Vec} objects, and \code{DAGlobalToLocal()}/\code{DALocalToGlobal()} mapping
-methods, which just execute a \code{VecScatter} operation. Sieve provides a \code{VecScatter} between a globally
-assembled \code{Vec} and a locally assembled \code{Section}. The \code{Section} is merely a \code{Vec} which is
-augmented to allow indexing by topology (cell, edge, vertex, etc.) rather than degree of freedom number. For instance,
-this allows users to iterate over the local cells, which is how assembly is accomplished in PyLith.
-
-At the lowest, or \emph{element} level, Sieve provides data associated with a toplogical object, such as a cell, or a
-set of objects, such as the closure of a cell. Access is organized as raw arrays for both speed and ease of use. The
-\code{restrict()} method retrieves data associated to a topological object, and the dual \code{update()} method merges
-the existing data with the input. These methods provide a mapping between local and element storage. All values are
-indexed by topological object rather than index. Notice that the retrieval mechanism is purely topological, using only
-the closure traversal, and thus will not change across meshes of different cell shape or dimension. The quadrature and
-basis functions are certainly dependent on geometry, however this information is autogenerated and stored in
-arrays. Thus, we have a single assembly routine for the residual, and also for the Jacobian.
-
-[PROVIDE SOME SIMPLE EXAMPLES OF HOW OPERATIONS USE THIS INTERFACE;
-Get vertices of a cell, assemble cell matrix into global matrix?]
-Maybe give as the example, the entire residual assembly loop, and indicate where parts fit together.
-
-The Sieve interface is divorced from the implementation. PETSc includes two complete implementations with another
-constructed for the FEniCS project~\cite{FEniCS}. One PETSc implementation is optimized for static mesh topologies using
-compact data structures, whereas the other is optimized for dynamic topologies using data structures which allow fast
-updates at the expensive of increased storage and some searching.
-
-\begin{itemize}
-  \item[Charles] Bulk rheologies
-\end{itemize}
-
-\begin{itemize}
-  \item[Brad] Earthquake sources
-
-  \item[Brad] Boundary conditions
-  \begin{itemize}
-     \item Absorbing dampers
-     \item Dirichlet
-     \item[Charles] Neumann
-  \end{itemize}
-\end{itemize}
-
-\subsection{Solvers: Matt}
-    PETSc is used to solve the linear and nonlinear algebraic problems that arise from discretizing the equations for
-elasticity. PETSc provides a generic solver interface which requires only the residual evaluation and the Jacobian
-construction or action. In fact, a default finite difference routine is provided which can compute the Jacobian action
-from the residual evaluation if the Jacobian is unavailable. The linear solver will only need the initial residual and a
-Jacobian, but can be handled with the same interface.
-
-  \subsubsection{Linear Problems}
-    We currently use a traditional Additive Schwarz Method (ASM)~\cite{Schwarz} preconditioner with
-GMRES~\cite{SaadSchultz} as a Krylov accelerator. Each subdomain has an inner Krylov solver, GMRES, and a
-preconditioner, usually ILU(0)~\cite{ILU}. However, any of the twenty types of PETSc solvers are available, as
-well as almost twenty
-preconditioners~\cite{http://www.mcs.anl.gov/petsc/petsc-as/documentation/linearsolvertable.html}. We have also
-experimented with parallel sparse direct solvers, such as MUMPS~\cite{MUMPS}. This is very effective for smaller
-problems, and should always be used a test of new models. However, the memory requirements for three dimensional PyLith
-problems increase very steeply with size, making it unsuitable for typical research problems.
-
-    In the future, we will take advantage of the saddle point structure arising from Lagrange multiplier used to
-enforce the fault constraints. We will be able to construct \code{PC\_FieldSplit} preconditioner using information from
-the Sieve interface, which will allow a host of saddle point preconditioners~\cite{DaveMay} to be applited, for instance
-the BFBT preconditioner~\cite{BFBT}. The diagonal block would require a good preconditioner for elasticity, for example
-FETI-DP~\cite{KlawonnRheinbach}. We also plan to investigate a multilevel approach using unstructured coarse grids
-generated using a new algorithm~\cite{BruneThesis}. The challenge here will be implement an efficient interpolation
-operator between coarse and fine meshes with an acceptable energy bound.
-
-  \subsubsection{Nonlinear Problems}
-    \begin{itemize}
-      \item Newton w/ several line search strategies
-      \item Future
-      \begin{itemize}
-        \item Hybrid Picard-Newton
-      \end{itemize}
-    \end{itemize}
-
-% ----------------------------------------------------------------------
-\section{Benchmarks}
-\label{sec:benchmarks}
-
-% -- BRAD --
-
-  Local and global error
-
-\subsection{Post-seismic deformation for a strike-slip earthquake}
-\label{sec:benchmarks:strike-slip}
-
-    resolution
-
-    cell type
-
-    parallel scaling
-
-\subsection{Post-seismic deformation for a reverse-slip earthquake}
-\label{sec:benchmarks:reverse-slip}
-
-  Reverse-slip
-
-\subsection{Repeating earthquakes on a strike-slip fault}
-\label{sec:benchmarks:savage:prescott}
-
-% -- CHARLES --
-    resolution
-
-    cell type
-
-    parallel scaling
-
-
-
-% ------------------------------------------------------------------
-\section*{Acknowledgments}
-
-CIG, Leif Strand, Sue Kientz
-
-funding sources
-
-% ------------------------------------------------------------------
-
-% For submission, comment out the bibliography command, uncomment the
-% subsequent lines and paste the BBL file.
-
-\bibliographystyle{elsarticle-harv}
-
-\bibliography{pylith}
-
-%\begin{thebibliography}{00}
-
-% Paste BBL file here
-
-%\end{thebibliography}
-
-% ==================================================================
-\end{document}
-
-
-% End of file
diff -r 6da349163758 -r 020cfc86ea0a makefile
--- a/makefile	Tue Oct 25 17:35:54 2011 -0500
+++ b/makefile	Mon Mar 26 17:34:10 2012 -0700
@@ -1,44 +1,24 @@ sourceroot = faultRup
 sourceroot = faultRup
-
 
 fig_dirs = figs
 
 sourcefile = $(sourceroot).tex
 auxfile = $(sourcefile:.tex=.aux)
 bibfiles = $(sourcefile:.tex=.blg) $(sourcefile:.tex=.bbl)
-dvifile = $(sourcefile:.tex=.dvi)
-psfile = $(sourcefile:.tex=.ps)
 pdffile = $(sourcefile:.tex=.pdf)
 
-default: $(dvifile)
-
-$(dvifile) dvi: $(sourcefile)
-	latex $<
+default: $(pdffile)
 
 again:
-	latex $(sourcefile)
+	pdflatex $(sourcefile)
 
 bib: $(sourcefile)
-	BIBINPUTS=${BIBINPUTS}:${PETSC_DIR}/src/docs/tex bibtex $(sourceroot)
-
-ps $(psfile): $(dvifile)
-	dvips -o $(psfile) $(dvifile)
+	bibtex $(sourceroot)
 
 pdf $(pdffile): $(sourcefile)
 	pdflatex $(sourcefile)
 
 clean:
-	rm -f $(auxfile) $(bibfiles) \
-		$(dvifile) $(psfile) $(pdffile) \
+	rm -f $(auxfile) $(bibfiles) $(pdffile) \
 		$(sourceroot).log *~
 	rm -fr auto
-	rm  `find $(fig_dirs) -name "*.pdf"`
-
-pdffigs:
-	for i in `find $(fig_dirs) -name *.eps`; do epstopdf $$i; done
-
-uncompressfigs:
-	for i in `find $(fig_dirs) -name *.eps.gz`; do gunzip $$i; done
-
-compressfigs:
-	for i in `find $(fig_dirs) -name *.eps`; do gzip $$i; done



More information about the CIG-COMMITS mailing list