create stateful model
[notebooks.git] / ametsoc.bst
blob195e83123815d37f55763fbf9a3dcae929c8628c
1 %%
2 %% This is file `ametsoc.bst',
3 %% generated with the docstrip utility.
4 %%
5 %% The original source files were:
6 %%
7 %% merlin.mbs  (with options: `,ay,nat,nm-rev1,nmdash,dt-beg,note-yr,vol-bf,vnum-x,volp-com,pp-last,bkpg-x,pg-bk,pre-pub,url,url-nl,edby,edbyy,blk-tit,au-col,in-x,pp,ed,xedn,jabr,em-it')
8 %% ----------------------------------------
9 %% *** Lakshman (Nov. 1999), for American Meteorological Society publications ***
10 %% 
11 %% Copyright 1994-1999 Patrick W Daly
12  % ===============================================================
13  % IMPORTANT NOTICE:
14  % This bibliographic style (bst) file has been generated from one or
15  % more master bibliographic style (mbs) files, listed above.
16  %
17  % This generated file can be redistributed and/or modified under the terms
18  % of the LaTeX Project Public License Distributed from CTAN
19  % archives in directory macros/latex/base/lppl.txt; either
20  % version 1 of the License, or any later version.
21  % ===============================================================
22  % Name and version information of the main mbs file:
23  % \ProvidesFile{merlin.mbs}[1999/03/18 3.88 (PWD)]
24  %   For use with BibTeX version 0.99a or later
25  %-------------------------------------------------------------------
26  % This bibliography style file is intended for texts in ENGLISH
27  % This is an author-year citation style bibliography. As such, it is
28  % non-standard LaTeX, and requires a special package file to function properly.
29  % Such a package is    natbib.sty   by Patrick W. Daly
30  % The form of the \bibitem entries is
31  %   \bibitem[Jones et al.(1990)]{key}...
32  %   \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
33  % The essential feature is that the label (the part in brackets) consists
34  % of the author names, as they should appear in the citation, with the year
35  % in parentheses following. There must be no space before the opening
36  % parenthesis!
37  % With natbib v5.3, a full list of authors may also follow the year.
38  % In natbib.sty, it is possible to define the type of enclosures that is
39  % really wanted (brackets or parentheses), but in either case, there must
40  % be parentheses in the label.
41  % The \cite command functions as follows:
42  %   \citet{key} ==>>                Jones et al. (1990)
43  %   \citet*{key} ==>>               Jones, Baker, and Smith (1990)
44  %   \citep{key} ==>>                (Jones et al., 1990)
45  %   \citep*{key} ==>>               (Jones, Baker, and Smith, 1990)
46  %   \citep[chap. 2]{key} ==>>       (Jones et al., 1990, chap. 2)
47  %   \citep[e.g.][]{key} ==>>        (e.g. Jones et al., 1990)
48  %   \citep[e.g.][p. 32]{key} ==>>   (e.g. Jones et al., p. 32)
49  %   \citeauthor{key} ==>>           Jones et al.
50  %   \citeauthor*{key} ==>>          Jones, Baker, and Smith
51  %   \citeyear{key} ==>>             1990
52  %---------------------------------------------------------------------
54 ENTRY
55   { address
56     author
57     booktitle
58     chapter
59     edition
60     editor
61     howpublished
62     institution
63     journal
64     doi
65     key
66     month
67     note
68     number
69     organization
70     pages
71     publisher
72     school
73     series
74     title
75     type
76     url
77     volume
78     year
79   }
80   {}
81   { label extra.label sort.label short.list }
83 INTEGERS { output.state before.all mid.sentence after.sentence after.block }
85 FUNCTION {init.state.consts}
86 { #0 'before.all :=
87   #1 'mid.sentence :=
88   #2 'after.sentence :=
89   #3 'after.block :=
92 STRINGS { s t }
94 FUNCTION {output.nonnull}
95 { 's :=
96   output.state mid.sentence =
97     { ", " * write$ }
98     { output.state after.block =
99         { add.period$ write$
100           newline$
101           "\newblock " write$
102         }
103         { output.state before.all =
104             'write$
105             { add.period$ " " * write$ }
106           if$
107         }
108       if$
109       mid.sentence 'output.state :=
110     }
111   if$
112   s
115 FUNCTION {output}
116 { duplicate$ empty$
117     'pop$
118     'output.nonnull
119   if$
122 FUNCTION {output.check}
123 { 't :=
124   duplicate$ empty$
125     { pop$ "empty " t * " in " * cite$ * warning$ }
126     'output.nonnull
127   if$
130 FUNCTION {fin.entry}
131 { add.period$
132   write$
133   newline$
136 FUNCTION {new.block}
137 { output.state before.all =
138     'skip$
139     { after.block 'output.state := }
140   if$
143 FUNCTION {new.sentence}
144 { output.state after.block =
145     'skip$
146     { output.state before.all =
147         'skip$
148         { after.sentence 'output.state := }
149       if$
150     }
151   if$
154 FUNCTION {add.blank}
155 {  " " * before.all 'output.state :=
158 FUNCTION {add.colon}
159 { duplicate$ empty$
160     'skip$
161     { ":" * add.blank }
162   if$
165 FUNCTION {date.block}
167   skip$
170 FUNCTION {not}
171 {   { #0 }
172     { #1 }
173   if$
176 FUNCTION {and}
177 {   'skip$
178     { pop$ #0 }
179   if$
182 FUNCTION {or}
183 {   { pop$ #1 }
184     'skip$
185   if$
188 FUNCTION {new.block.checkb}
189 { empty$
190   swap$ empty$
191   and
192     'skip$
193     'new.block
194   if$
197 FUNCTION {field.or.null}
198 { duplicate$ empty$
199     { pop$ "" }
200     'skip$
201   if$
204 FUNCTION {emphasize}
205 { duplicate$ empty$
206     { pop$ "" }
207     { "{\it " swap$ * "\/}" * }
208   if$
211 FUNCTION {bolden}
212 { duplicate$ empty$
213     { pop$ "" }
214     { "{\bf " swap$ * "}" * }
215   if$
218 FUNCTION {capitalize}
219 { "u" change.case$ "t" change.case$ }
221 FUNCTION {space.word}
222 { " " swap$ * " " * }
224  % Here are the language-specific definitions for explicit words.
225  % Each function has a name bbl.xxx where xxx is the English word.
226  % The language selected here is ENGLISH
227 FUNCTION {bbl.and}
228 { "and"}
230 FUNCTION {bbl.etal}
231 { "et~al." }
233 FUNCTION {bbl.editors}
234 { "eds." }
236 FUNCTION {bbl.editor}
237 { "ed." }
239 FUNCTION {bbl.edby}
240 { "edited by" }
242 FUNCTION {bbl.edition}
243 { "edition" }
245 FUNCTION {bbl.volume}
246 { "volume" }
248 FUNCTION {bbl.of}
249 { "of" }
251 FUNCTION {bbl.number}
252 { "number" }
254 FUNCTION {bbl.nr}
255 { "no." }
257 FUNCTION {bbl.in}
258 { "in" }
260 FUNCTION {bbl.pages}
261 { "pp." }
263 FUNCTION {bbl.page}
264 { "p." }
266 FUNCTION {bbl.chapter}
267 { "chapter" }
269 FUNCTION {bbl.techrep}
270 { "Technical Report" }
272 FUNCTION {bbl.mthesis}
273 { "Master's thesis" }
275 FUNCTION {bbl.phdthesis}
276 { "Ph.D. thesis" }
278 MACRO {jan} {"January"}
280 MACRO {feb} {"February"}
282 MACRO {mar} {"March"}
284 MACRO {apr} {"April"}
286 MACRO {may} {"May"}
288 MACRO {jun} {"June"}
290 MACRO {jul} {"July"}
292 MACRO {aug} {"August"}
294 MACRO {sep} {"September"}
296 MACRO {oct} {"October"}
298 MACRO {nov} {"November"}
300 MACRO {dec} {"December"}
303  %-------------------------------------------------------------------
304  % Begin module:
305  % \ProvidesFile{physjour.mbs}[1999/02/24 2.0d (PWD)]
306 MACRO {ar} {"Atmos. Res."}
308 MACRO {aa}{"Astron. \& Astrophys."}
309 MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."}
310 MACRO {aph} {"Acta Phys."}
311 MACRO {advp} {"Adv. Phys."}
312 MACRO {ajp} {"Amer. J. Phys."}
313 MACRO {ajm} {"Amer. J. Math."}
314 MACRO {amsci} {"Amer. Sci."}
315 MACRO {anofd} {"Ann. Fluid Dyn."}
316 MACRO {am} {"Ann. Math."}
317 MACRO {ap} {"Ann. Phys. (NY)"}
318 MACRO {adp} {"Ann. Phys. (Leipzig)"}
319 MACRO {ao} {"Appl. Opt."}
320 MACRO {apl} {"Appl. Phys. Lett."}
321 MACRO {app} {"Astroparticle Phys."}
322 MACRO {apj} {"Astrophys. J."}
323 MACRO {apjsup} {"Astrophys. J. Suppl. Ser."}
324 MACRO {baps} {"Bull. Amer. Phys. Soc."}
325 MACRO {cmp} {"Comm. Math. Phys."}
326 MACRO {cpam} {"Commun. Pure Appl. Math."}
327 MACRO {cppcf} {"Comm. Plasma Phys. \& Controlled Fusion"}
328 MACRO {cpc} {"Comp. Phys. Comm."}
329 MACRO {cqg} {"Class. Quant. Grav."}
330 MACRO {cra} {"C. R. Acad. Sci. A"}
331 MACRO {fed} {"Fusion Eng. \& Design"}
332 MACRO {ft} {"Fusion Tech."}
333 MACRO {grg} {"Gen. Relativ. Gravit."}
334 MACRO {ieeens} {"IEEE Trans. Nucl. Sci."}
335 MACRO {ieeeps} {"IEEE Trans. Plasma Sci."}
336 MACRO {ijimw} {"Interntl. J. Infrared \& Millimeter Waves"}
337 MACRO {ip} {"Infrared Phys."}
338 MACRO {irp} {"Infrared Phys."}
339 MACRO {jap} {"J. Appl. Phys."}
340 MACRO {jasa} {"J. Acoust. Soc. America"}
341 MACRO {jcp} {"J. Comp. Phys."}
342 MACRO {jetp} {"Sov. Phys.--JETP"}
343 MACRO {jfe} {"J. Fusion Energy"}
344 MACRO {jfm} {"J. Fluid Mech."}
345 MACRO {jmp} {"J. Math. Phys."}
346 MACRO {jne} {"J. Nucl. Energy"}
347 MACRO {jnec} {"J. Nucl. Energy, C: Plasma Phys., Accelerators, Thermonucl. Res."}
348 MACRO {jnm} {"J. Nucl. Mat."}
349 MACRO {jpc} {"J. Phys. Chem."}
350 MACRO {jpp} {"J. Plasma Phys."}
351 MACRO {jpsj} {"J. Phys. Soc. Japan"}
352 MACRO {jsi} {"J. Sci. Instrum."}
353 MACRO {jvst} {"J. Vac. Sci. \& Tech."}
354 MACRO {nat} {"Nature"}
355 MACRO {nature} {"Nature"}
356 MACRO {nedf} {"Nucl. Eng. \& Design/Fusion"}
357 MACRO {nf} {"Nucl. Fusion"}
358 MACRO {nim} {"Nucl. Inst. \& Meth."}
359 MACRO {nimpr} {"Nucl. Inst. \& Meth. in Phys. Res."}
360 MACRO {np} {"Nucl. Phys."}
361 MACRO {npb} {"Nucl. Phys. B"}
362 MACRO {nt/f} {"Nucl. Tech./Fusion"}
363 MACRO {npbpc} {"Nucl. Phys. B (Proc. Suppl.)"}
364 MACRO {inc} {"Nuovo Cimento"}
365 MACRO {nc} {"Nuovo Cimento"}
366 MACRO {pf} {"Phys. Fluids"}
367 MACRO {pfa} {"Phys. Fluids A: Fluid Dyn."}
368 MACRO {pfb} {"Phys. Fluids B: Plasma Phys."}
369 MACRO {pl} {"Phys. Lett."}
370 MACRO {pla} {"Phys. Lett. A"}
371 MACRO {plb} {"Phys. Lett. B"}
372 MACRO {prep} {"Phys. Rep."}
373 MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"}
374 MACRO {pp} {"Phys. Plasmas"}
375 MACRO {ppcf} {"Plasma Phys. \& Controlled Fusion"}
376 MACRO {phitrsl} {"Philos. Trans. Roy. Soc. London"}
377 MACRO {prl} {"Phys. Rev. Lett."}
378 MACRO {pr} {"Phys. Rev."}
379 MACRO {physrev} {"Phys. Rev."}
380 MACRO {pra} {"Phys. Rev. A"}
381 MACRO {prb} {"Phys. Rev. B"}
382 MACRO {prc} {"Phys. Rev. C"}
383 MACRO {prd} {"Phys. Rev. D"}
384 MACRO {pre} {"Phys. Rev. E"}
385 MACRO {ps} {"Phys. Scripta"}
386 MACRO {procrsl} {"Proc. Roy. Soc. London"}
387 MACRO {rmp} {"Rev. Mod. Phys."}
388 MACRO {rsi} {"Rev. Sci. Inst."}
389 MACRO {science} {"Science"}
390 MACRO {sciam} {"Sci. Am."}
391 MACRO {sam} {"Stud. Appl. Math."}
392 MACRO {sjpp} {"Sov. J. Plasma Phys."}
393 MACRO {spd} {"Sov. Phys.--Doklady"}
394 MACRO {sptp} {"Sov. Phys.--Tech. Phys."}
395 MACRO {spu} {"Sov. Phys.--Uspeki"}
396  % End module: physjour.mbs
397  %-------------------------------------------------------------------
398  % Begin module:
399  % \ProvidesFile{geojour.mbs}[1999/02/24 2.0e (PWD)]
400 MACRO {aisr} {"Adv. Space Res."}
401 MACRO {ag} {"Ann. Geophys."}
402 MACRO {anigeo} {"Ann. Geofis."}
403 MACRO {angl} {"Ann. Glaciol."}
404 MACRO {andmet} {"Ann. d. Meteor."}
405 MACRO {andgeo} {"Ann. d. Geophys."}
406 MACRO {andphy} {"Ann. d. Phys."}
407 MACRO {afmgb} {"Arch. Meteor. Geophys. Bioklimatol."}
408 MACRO {atph} {"Atm\'osphera"}
409 MACRO {aao} {"Atmos.-Ocean"}
410 MACRO {ass}{"Astrophys. Space Sci."}
411 MACRO {atenv} {"Atmos. Environ."}
412 MACRO {aujag} {"Aust. J. Agric. Res."}
413 MACRO {aumet} {"Aust. Meteor. Mag."}
414 MACRO {blmet} {"Bound.-Layer Meteor."}
415 MACRO {bams} {"Bull. Amer. Meteor. Soc."}
416 MACRO {cch} {"Clim. Change"}
417 MACRO {cdyn} {"Climate Dyn."}
418 MACRO {cbul} {"Climatol. Bull."}
419 MACRO {cap} {"Contrib. Atmos. Phys."}
420 MACRO {dsr} {"Deep-Sea Res."}
421 MACRO {dhz} {"Dtsch. Hydrogr. Z."}
422 MACRO {dao} {"Dyn. Atmos. Oceans"}
423 MACRO {eco} {"Ecology"}
424 MACRO {empl}{"Earth, Moon and Planets"}
425 MACRO {envres} {"Environ. Res."}
426 MACRO {envst} {"Environ. Sci. Technol."}
427 MACRO {ecms} {"Estuarine Coastal Mar. Sci."}
428 MACRO {expa}{"Exper. Astron."}
429 MACRO {geoint} {"Geofis. Int."}
430 MACRO {geopub} {"Geofys. Publ."}
431 MACRO {geogeo} {"Geol. Geofiz."}
432 MACRO {gafd} {"Geophys. Astrophys. Fluid Dyn."}
433 MACRO {gfd} {"Geophys. Fluid Dyn."}
434 MACRO {geomag} {"Geophys. Mag."}
435 MACRO {georl} {"Geophys. Res. Lett."}
436 MACRO {grl} {"Geophys. Res. Lett."}
437 MACRO {ga} {"Geophysica"}
438 MACRO {gs} {"Geophysics"}
439 MACRO {ieeetap} {"IEEE Trans. Antennas Propag."}
440 MACRO {ijawp} {"Int. J. Air Water Pollut."}
441 MACRO {ijc} {"Int. J. Climatol."}
442 MACRO {ijrs} {"Int. J. Remote Sensing"}
443 MACRO {jam} {"J. Appl. Meteor."}
444 MACRO {jaot} {"J. Atmos. Ocean. Technol."}
445 MACRO {jatp} {"J. Atmos. Terr. Phys."}
446 MACRO {jce} {"J. Climate"}
447 MACRO {jcam} {"J. Climate Appl. Meteor."}
448 MACRO {jcm} {"J. Climate Meteor."}
449 MACRO {jcy} {"J. Climatol."}
450 MACRO {jgr} {"J. Geophys. Res."}
451 MACRO {jga} {"J. Glaciol."}
452 MACRO {jh} {"J. Hydrol."}
453 MACRO {jmr} {"J. Mar. Res."}
454 MACRO {jmrj} {"J. Meteor. Res. Japan"}
455 MACRO {jm} {"J. Meteor."}
456 MACRO {jpo} {"J. Phys. Oceanogr."}
457 MACRO {jra} {"J. Rech. Atmos."}
458 MACRO {jaes} {"J. Aeronaut. Sci."}
459 MACRO {japca} {"J. Air Pollut. Control Assoc."}
460 MACRO {jas} {"J. Atmos. Sci."}
461 MACRO {jmts} {"J. Mar. Technol. Soc."}
462 MACRO {jmsj} {"J. Meteor. Soc. Japan"}
463 MACRO {josj} {"J. Oceanogr. Soc. Japan"}
464 MACRO {jwm} {"J. Wea. Mod."}
465 MACRO {lao} {"Limnol. Oceanogr."}
466 MACRO {mwl} {"Mar. Wea. Log"}
467 MACRO {mau} {"Mausam"}
468 MACRO {meteor} {"``Meteor'' Forschungsergeb."}
469 MACRO {map} {"Met. Atmos. Phys."}
470 MACRO {metmag} {"Meteor. Mag."}
471 MACRO {metmon} {"Meteor. Monogr."}
472 MACRO {metrun} {"Meteor. Rundsch."}
473 MACRO {metzeit} {"Meteor. Z."}
474 MACRO {metgid} {"Meteor. Gidrol."}
475 MACRO {mwr} {"Mon. Wea. Rev."}
476 MACRO {nwd} {"Natl. Wea. Dig."}
477 MACRO {nzjmfr} {"N. Z. J. Mar. Freshwater Res."}
478 MACRO {npg} {"Nonlin. Proc. Geophys."}
479 MACRO {om} {"Oceanogr. Meteor."}
480 MACRO {ocac} {"Oceanol. Acta"}
481 MACRO {oceanus} {"Oceanus"}
482 MACRO {paleoc} {"Paleoceanography"}
483 MACRO {pce} {"Physics and Chemistry of the Earth"}
484 MACRO {pmg} {"Pap. Meteor. Geophys."}
485 MACRO {ppom} {"Pap. Phys. Oceanogr. Meteor."}
486 MACRO {physzeit} {"Phys. Z."}
487 MACRO {pps} {"Planet. Space Sci."}
488 MACRO {pss} {"Planet. Space Sci."}
489 MACRO {pag} {"Pure Appl. Geophys."}
490 MACRO {qjrms} {"Quart. J. Roy. Meteor. Soc."}
491 MACRO {quatres} {"Quat. Res."}
492 MACRO {rsci} {"Radio Sci."}
493 MACRO {rse} {"Remote Sens. Environ."}
494 MACRO {rgeo} {"Rev. Geophys."}
495 MACRO {rgsp} {"Rev. Geophys. Space Phys."}
496 MACRO {rdgeo} {"Rev. Geofis."}
497 MACRO {revmeta} {"Rev. Meteor."}
498 MACRO {sgp}{"Surveys in Geophys."}
499 MACRO {sp} {"Solar Phys."}
500 MACRO {ssr} {"Space Sci. Rev."}
501 MACRO {tellus} {"Tellus"}
502 MACRO {tac} {"Theor. Appl. Climatol."}
503 MACRO {tagu} {"Trans. Am. Geophys. Union (EOS)"}
504 MACRO {wrr} {"Water Resour. Res."}
505 MACRO {weather} {"Weather"}
506 MACRO {wafc} {"Wea. Forecasting"}
507 MACRO {ww} {"Weatherwise"}
508 MACRO {wmob} {"WMO Bull."}
509 MACRO {zeitmet} {"Z. Meteor."}
510  % End module: geojour.mbs
511 %% Copyright 1994-1999 Patrick W Daly
513 MACRO {acmcs} {"ACM Comput. Surv."}
515 MACRO {acta} {"Acta Inf."}
517 MACRO {cacm} {"Commun. ACM"}
519 MACRO {ibmjrd} {"IBM J. Res. Dev."}
521 MACRO {ibmsj} {"IBM Syst.~J."}
523 MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
525 MACRO {ieeetc} {"IEEE Trans. Comput."}
527 MACRO {ieeetcad}
528  {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
530 MACRO {ipl} {"Inf. Process. Lett."}
532 MACRO {jacm} {"J.~ACM"}
534 MACRO {jcss} {"J.~Comput. Syst. Sci."}
536 MACRO {scp} {"Sci. Comput. Programming"}
538 MACRO {sicomp} {"SIAM J. Comput."}
540 MACRO {tocs} {"ACM Trans. Comput. Syst."}
542 MACRO {tods} {"ACM Trans. Database Syst."}
544 MACRO {tog} {"ACM Trans. Gr."}
546 MACRO {toms} {"ACM Trans. Math. Softw."}
548 MACRO {toois} {"ACM Trans. Office Inf. Syst."}
550 MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
552 MACRO {tcs} {"Theoretical Comput. Sci."}
554 FUNCTION {write.url}
555 { url empty$
556     { skip$ }
557     { "\newline\urlprefix\url{" url * "}" * write$ newline$ }
558   if$
561 FUNCTION {format.doi}
562 { doi empty$
563     { "" }
564     { "doi:" doi * }
565   if$
568 INTEGERS { nameptr namesleft numnames }
570 FUNCTION {format.names}
571 { 's :=
572   #1 'nameptr :=
573   s num.names$ 'numnames :=
574   numnames 'namesleft :=
575     { namesleft #0 > }
576     { nameptr #1 >
577         { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$  }
578         { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$  }
579       if$
580     't :=
581       nameptr #1 >
582         {
583           namesleft #1 >
584             { ", " * t * }
585             {
586               numnames #2 >
587                 { "," * }
588                 'skip$
589               if$
590               s nameptr "{ll}" format.name$ duplicate$ "others" =
591                 { 't := }
592                 { pop$ }
593               if$
594               t "others" =
595                 {
596                   " " * bbl.etal *
597                 }
598                 { bbl.and
599                   space.word * t *
600                 }
601               if$
602             }
603           if$
604         }
605         't
606       if$
607       nameptr #1 + 'nameptr :=
608       namesleft #1 - 'namesleft :=
609     }
610   while$
612 FUNCTION {format.names.ed}
613 { 's :=
614   #1 'nameptr :=
615   s num.names$ 'numnames :=
616   numnames 'namesleft :=
617     { namesleft #0 > }
618     { s nameptr
619       "{f.~}{vv~}{ll}{, jj}"
620       format.name$
621       't :=
622       nameptr #1 >
623         {
624           namesleft #1 >
625             { ", " * t * }
626             {
627               numnames #2 >
628                 { "," * }
629                 'skip$
630               if$
631               s nameptr "{ll}" format.name$ duplicate$ "others" =
632                 { 't := }
633                 { pop$ }
634               if$
635               t "others" =
636                 {
638                   " " * bbl.etal *
639                 }
640                 { bbl.and
641                   space.word * t *
642                 }
643               if$
644             }
645           if$
646         }
647         't
648       if$
649       nameptr #1 + 'nameptr :=
650       namesleft #1 - 'namesleft :=
651     }
652   while$
655 FUNCTION {format.key}
656 { empty$
657     { key field.or.null }
658     { "" }
659   if$
662 FUNCTION {format.authors}
663 { author empty$
664     { "" }
665     { author format.names }
666   if$
669 FUNCTION {format.editors}
670 { editor empty$
671     { "" }
672     { editor format.names
673       editor num.names$ #1 >
674         { ", " * bbl.editors * }
675         { ", " * bbl.editor * }
676       if$
677     }
678   if$
681 FUNCTION {format.in.editors}
682 { editor empty$
683     { "" }
684     { editor format.names.ed
685     }
686   if$
689 FUNCTION {format.book.pages}
690 { pages empty$
691     { "" }
692     { pages " " * bbl.pages * }
693   if$
696 FUNCTION {format.note}
698  note empty$
699     { "" }
700     { note #1 #1 substring$
701       duplicate$ "{" =
702         'skip$
703         { output.state mid.sentence =
704           { "l" }
705           { "u" }
706         if$
707         change.case$
708         }
709       if$
710       note #2 global.max$ substring$ *
711     }
712   if$
715 FUNCTION {format.title}
716 { title empty$
717     { "" }
718     { title "t" change.case$
719     }
720   if$
723 FUNCTION {format.full.names}
724 {'s :=
725   #1 'nameptr :=
726   s num.names$ 'numnames :=
727   numnames 'namesleft :=
728     { namesleft #0 > }
729     { s nameptr
730       "{vv~}{ll}" format.name$
731       't :=
732       nameptr #1 >
733         {
734           namesleft #1 >
735             { ", " * t * }
736             {
737               numnames #2 >
738                 { "," * }
739                 'skip$
740               if$
741               s nameptr "{ll}" format.name$ duplicate$ "others" =
742                 { 't := }
743                 { pop$ }
744               if$
745               t "others" =
746                 {
747                   " " * bbl.etal *
748                 }
749                 { bbl.and
750                   space.word * t *
751                 }
752               if$
753             }
754           if$
755         }
756         't
757       if$
758       nameptr #1 + 'nameptr :=
759       namesleft #1 - 'namesleft :=
760     }
761   while$
764 FUNCTION {author.editor.key.full}
765 { author empty$
766     { editor empty$
767         { key empty$
768             { cite$ #1 #3 substring$ }
769             'key
770           if$
771         }
772         { editor format.full.names }
773       if$
774     }
775     { author format.full.names }
776   if$
779 FUNCTION {author.key.full}
780 { author empty$
781     { key empty$
782          { cite$ #1 #3 substring$ }
783           'key
784       if$
785     }
786     { author format.full.names }
787   if$
790 FUNCTION {editor.key.full}
791 { editor empty$
792     { key empty$
793          { cite$ #1 #3 substring$ }
794           'key
795       if$
796     }
797     { editor format.full.names }
798   if$
801 FUNCTION {make.full.names}
802 { type$ "book" =
803   type$ "inbook" =
804   or
805     'author.editor.key.full
806     { type$ "proceedings" =
807         'editor.key.full
808         'author.key.full
809       if$
810     }
811   if$
814 FUNCTION {output.bibitem}
815 { newline$
816   "\bibitem[{" write$
817   label write$
818   ")" make.full.names duplicate$ short.list =
819      { pop$ }
820      { * }
821    if$
822   "}]{" * write$
823   cite$ write$
824   "}" write$
825   newline$
826   ""
827   before.all 'output.state :=
830 FUNCTION {n.dashify}
832   't :=
833   ""
834     { t empty$ not }
835     { t #1 #1 substring$ "-" =
836         { t #1 #2 substring$ "--" = not
837             { "--" *
838               t #2 global.max$ substring$ 't :=
839             }
840             {   { t #1 #1 substring$ "-" = }
841                 { "-" *
842                   t #2 global.max$ substring$ 't :=
843                 }
844               while$
845             }
846           if$
847         }
848         { t #1 #1 substring$ *
849           t #2 global.max$ substring$ 't :=
850         }
851       if$
852     }
853   while$
856 FUNCTION {word.in}
857 { "" }
859 FUNCTION {format.date}
860 { year duplicate$ empty$
861     { "empty year in " cite$ * "; set to ????" * warning$
862        pop$ "????" }
863     'skip$
864   if$
865   extra.label *
868 FUNCTION {format.btitle}
869 { title emphasize
872 FUNCTION {tie.or.space.connect}
873 { duplicate$ text.length$ #3 <
874     { "~" }
875     { " " }
876   if$
877   swap$ * *
880 FUNCTION {either.or.check}
881 { empty$
882     'pop$
883     { "can't use both " swap$ * " fields in " * cite$ * warning$ }
884   if$
887 FUNCTION {format.bvolume}
888 { volume empty$
889     { "" }
890     { bbl.volume volume tie.or.space.connect
891       series empty$
892         'skip$
893         { bbl.of space.word * series emphasize * }
894       if$
895       "volume and number" number either.or.check
896     }
897   if$
900 FUNCTION {format.number.series}
901 { volume empty$
902     { number empty$
903         { series field.or.null }
904         { output.state mid.sentence =
905             { bbl.number }
906             { bbl.number capitalize }
907           if$
908           number tie.or.space.connect
909           series empty$
910             { "there's a number but no series in " cite$ * warning$ }
911             { bbl.in space.word * series * }
912           if$
913         }
914       if$
915     }
916     { "" }
917   if$
921 FUNCTION {format.edition}
922 { edition empty$
923     { "" }
924     { output.state mid.sentence =
925         { edition "l" change.case$ " " * bbl.edition * }
926         { edition "t" change.case$ " " * bbl.edition * }
927       if$
928     }
929   if$
932 INTEGERS { multiresult }
934 FUNCTION {multi.page.check}
935 { 't :=
936   #0 'multiresult :=
937     { multiresult not
938       t empty$ not
939       and
940     }
941     { t #1 #1 substring$
942       duplicate$ "-" =
943       swap$ duplicate$ "," =
944       swap$ "+" =
945       or or
946         { #1 'multiresult := }
947         { t #2 global.max$ substring$ 't := }
948       if$
949     }
950   while$
951   multiresult
954 FUNCTION {format.pages}
955 { pages empty$
956     { "" }
957     { pages multi.page.check
958         { pages n.dashify }
959         { pages }
960       if$
961     }
962   if$
965 FUNCTION {format.journal.pages}
966 { pages empty$
967     'skip$
968     { duplicate$ empty$
969         { pop$ format.pages }
970         {
971           ", " *
972           pages n.dashify *
973         }
974       if$
975     }
976   if$
979 FUNCTION {format.vol.num.pages}
980 { volume field.or.null
981   bolden
984 FUNCTION {format.chapter.pages}
985 { chapter empty$
986     { "" }
987     { type empty$
988         { bbl.chapter }
989         { type "l" change.case$ }
990       if$
991       chapter tie.or.space.connect
992     }
993   if$
996 FUNCTION {format.in.ed.booktitle}
997 { booktitle empty$
998     { "" }
999     { editor empty$
1000         { word.in booktitle emphasize * }
1001         { word.in booktitle emphasize *
1002           ", " *
1003           format.in.editors *
1004           ", " *
1005           editor num.names$ #1 >
1006             { bbl.editors }
1007             { bbl.editor }
1008           if$
1009           *
1010         }
1011       if$
1012     }
1013   if$
1016 FUNCTION {format.thesis.type}
1017 { type empty$
1018     'skip$
1019     { pop$
1020       type "t" change.case$
1021     }
1022   if$
1025 FUNCTION {format.tr.number}
1026 { type empty$
1027     { bbl.techrep }
1028     'type
1029   if$
1030   number empty$
1031     { "t" change.case$ }
1032     { number tie.or.space.connect }
1033   if$
1036 FUNCTION {format.article.crossref}
1038   word.in
1039   " \cite{" * crossref * "}" *
1042 FUNCTION {format.book.crossref}
1043 { volume empty$
1044     { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
1045       word.in
1046     }
1047     { bbl.volume capitalize
1048       volume tie.or.space.connect
1049       bbl.of space.word *
1050     }
1051   if$
1052   " \cite{" * crossref * "}" *
1055 FUNCTION {format.incoll.inproc.crossref}
1057   word.in
1058   " \cite{" * crossref * "}" *
1061 FUNCTION {format.org.or.pub}
1062 { 't :=
1063   ""
1064   address empty$ t empty$ and
1065     'skip$
1066     {
1067       t empty$
1068         { address empty$
1069           'skip$
1070           { address * }
1071           if$
1072         }
1073         { t *
1074           address empty$
1075             'skip$
1076             { ", " * address * }
1077           if$
1078         }
1079       if$
1080     }
1081   if$
1084 FUNCTION {format.publisher.address}
1085 { publisher empty$
1086     { "empty publisher in " cite$ * warning$
1087       ""
1088     }
1089     { publisher }
1090   if$
1091   format.org.or.pub
1094 FUNCTION {format.organization.address}
1095 { organization empty$
1096     { "" }
1097     { organization }
1098   if$
1099   format.org.or.pub
1102 STRINGS {oldname}
1104 FUNCTION {name.or.dash}
1105 { 's :=
1106    oldname empty$
1107      { s 'oldname := s }
1108      { s oldname =
1109          { "---" add.blank }
1110          { s 'oldname := s }
1111        if$
1112      }
1113    if$
1116 FUNCTION {article}
1117 { output.bibitem
1118   format.authors "author" output.check
1119   author format.key output
1120   name.or.dash
1121   format.date "year" output.check
1122   add.colon
1123   date.block
1124   format.title "title" output.check
1125   new.sentence
1126   crossref missing$
1127     { journal
1128       emphasize
1129       "journal" output.check
1130       format.vol.num.pages output
1131     }
1132     { format.article.crossref output.nonnull
1133       format.pages output
1134     }
1135   if$
1136   format.journal.pages
1137   format.doi output
1138   format.note output
1139   fin.entry
1140   write.url
1143 FUNCTION {book}
1144 { output.bibitem
1145   author empty$
1146     { format.editors "author and editor" output.check
1147       editor format.key output
1148       name.or.dash
1149     }
1150     { format.authors output.nonnull
1151       name.or.dash
1152       crossref missing$
1153         { "author and editor" editor either.or.check }
1154         'skip$
1155       if$
1156     }
1157   if$
1158   format.date "year" output.check
1159   add.colon
1160   date.block
1161   format.btitle "title" output.check
1162   crossref missing$
1163     { format.bvolume output
1164   new.sentence
1165       format.number.series output
1166       format.publisher.address output
1167     }
1168     {
1169   new.sentence
1170       format.book.crossref output.nonnull
1171     }
1172   if$
1173   format.edition output
1174   format.book.pages output
1175   format.note output
1176   fin.entry
1177   write.url
1180 FUNCTION {booklet}
1181 { output.bibitem
1182   format.authors output
1183   author format.key output
1184   name.or.dash
1185   format.date "year" output.check
1186   add.colon
1187   date.block
1188   format.title "title" output.check
1189   new.sentence
1190   howpublished output
1191   address output
1192   format.book.pages output
1193   format.note output
1194   fin.entry
1195   write.url
1198 FUNCTION {inbook}
1199 { output.bibitem
1200   author empty$
1201     { format.editors "author and editor" output.check
1202       editor format.key output
1203       name.or.dash
1204     }
1205     { format.authors output.nonnull
1206       name.or.dash
1207       crossref missing$
1208         { "author and editor" editor either.or.check }
1209         'skip$
1210       if$
1211     }
1212   if$
1213   format.date "year" output.check
1214   add.colon
1215   date.block
1216   format.btitle "title" output.check
1217   crossref missing$
1218     {
1219       format.publisher.address output
1220       format.bvolume output
1221       format.chapter.pages "chapter and pages" output.check
1222   new.sentence
1223       format.number.series output
1224     }
1225     {
1226       format.chapter.pages "chapter and pages" output.check
1227   new.sentence
1228       format.book.crossref output.nonnull
1229     }
1230   if$
1231   format.edition output
1232   format.pages "pages" output.check
1233   format.note output
1234   fin.entry
1235   write.url
1238 FUNCTION {incollection}
1239 { output.bibitem
1240   format.authors "author" output.check
1241   author format.key output
1242   name.or.dash
1243   format.date "year" output.check
1244   add.colon
1245   date.block
1246   format.title "title" output.check
1247   new.sentence
1248   crossref missing$
1249     { format.in.ed.booktitle "booktitle" output.check
1250       format.publisher.address output
1251       format.bvolume output
1252       format.number.series output
1253       format.chapter.pages output
1254       format.edition output
1255     }
1256     { format.incoll.inproc.crossref output.nonnull
1257       format.chapter.pages output
1258     }
1259   if$
1260   format.pages "pages" output.check
1261   format.note output
1262   fin.entry
1263   write.url
1266 FUNCTION {inproceedings}
1267 { output.bibitem
1268   format.authors "author" output.check
1269   author format.key output
1270   name.or.dash
1271   format.date "year" output.check
1272   add.colon
1273   date.block
1274   format.title "title" output.check
1275   new.sentence
1276   crossref missing$
1277     { format.in.ed.booktitle "booktitle" output.check
1278       publisher empty$
1279         { format.organization.address output }
1280         { organization output
1281           format.publisher.address output
1282         }
1283       if$
1284       format.bvolume output
1285       format.number.series output
1286       format.pages output
1287     }
1288     { format.incoll.inproc.crossref output.nonnull
1289       format.pages output
1290     }
1291   if$
1292   format.note output
1293   fin.entry
1294   write.url
1297 FUNCTION {conference} { inproceedings }
1299 FUNCTION {manual}
1300 { output.bibitem
1301   format.authors output
1302   author format.key output
1303   name.or.dash
1304   format.date "year" output.check
1305   add.colon
1306   date.block
1307   format.btitle "title" output.check
1308   new.sentence
1309   organization output
1310   address output
1311   format.edition output
1312   format.note output
1313   fin.entry
1314   write.url
1317 FUNCTION {mastersthesis}
1318 { output.bibitem
1319   format.authors "author" output.check
1320   author format.key output
1321   name.or.dash
1322   format.date "year" output.check
1323   add.colon
1324   date.block
1325   format.btitle "title" output.check
1326   new.sentence
1327   bbl.mthesis format.thesis.type output.nonnull
1328   school "school" output.check
1329   address output
1330   format.book.pages output
1331   format.note output
1332   fin.entry
1333   write.url
1336 FUNCTION {misc}
1337 { output.bibitem
1338   format.authors output
1339   author format.key output
1340   name.or.dash
1341   format.date "year" output.check
1342   add.colon
1343   date.block
1344   format.title output
1345   new.sentence
1346   howpublished output
1347   format.note output
1348   fin.entry
1349   write.url
1352 FUNCTION {phdthesis}
1353 { output.bibitem
1354   format.authors "author" output.check
1355   author format.key output
1356   name.or.dash
1357   format.date "year" output.check
1358   add.colon
1359   date.block
1360   format.btitle "title" output.check
1361   new.sentence
1362   bbl.phdthesis format.thesis.type output.nonnull
1363   school "school" output.check
1364   address output
1365   format.book.pages output
1366   format.note output
1367   fin.entry
1368   write.url
1371 FUNCTION {proceedings}
1372 { output.bibitem
1373   format.editors output
1374   editor format.key output
1375   name.or.dash
1376   format.date "year" output.check
1377   add.colon
1378   date.block
1379   format.btitle "title" output.check
1380   format.bvolume output
1381   format.number.series output
1382   publisher empty$
1383     { format.organization.address output }
1384     { organization output
1385       format.publisher.address output
1386     }
1387   if$
1388   format.note output
1389   fin.entry
1390   write.url
1393 FUNCTION {techreport}
1394 { output.bibitem
1395   format.authors "author" output.check
1396   author format.key output
1397   name.or.dash
1398   format.date "year" output.check
1399   add.colon
1400   date.block
1401   format.title "title" output.check
1402   new.sentence
1403   format.tr.number output.nonnull
1404   institution "institution" output.check
1405   address output
1406   format.note output
1407   fin.entry
1408   write.url
1411 FUNCTION {unpublished}
1412 { output.bibitem
1413   format.authors "author" output.check
1414   author format.key output
1415   name.or.dash
1416   format.date "year" output.check
1417   add.colon
1418   date.block
1419   format.title "title" output.check
1420   format.note "note" output.check
1421   fin.entry
1422   write.url
1425 FUNCTION {default.type} { misc }
1427 READ
1429 FUNCTION {sortify}
1430 { purify$
1431   "l" change.case$
1434 INTEGERS { len }
1436 FUNCTION {chop.word}
1437 { 's :=
1438   'len :=
1439   s #1 len substring$ =
1440     { s len #1 + global.max$ substring$ }
1441     's
1442   if$
1445 FUNCTION {format.lab.names}
1446 { 's :=
1447   s #1 "{vv~}{ll}" format.name$
1448   s num.names$ duplicate$
1449   #2 >
1450     { pop$
1451       " " * bbl.etal *
1452     }
1453     { #2 <
1454         'skip$
1455         { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
1456             {
1457               " " * bbl.etal *
1458             }
1459             { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
1460               * }
1461           if$
1462         }
1463       if$
1464     }
1465   if$
1468 FUNCTION {author.key.label}
1469 { author empty$
1470     { key empty$
1471         { cite$ #1 #3 substring$ }
1472         'key
1473       if$
1474     }
1475     { author format.lab.names }
1476   if$
1479 FUNCTION {author.editor.key.label}
1480 { author empty$
1481     { editor empty$
1482         { key empty$
1483             { cite$ #1 #3 substring$ }
1484             'key
1485           if$
1486         }
1487         { editor format.lab.names }
1488       if$
1489     }
1490     { author format.lab.names }
1491   if$
1494 FUNCTION {editor.key.label}
1495 { editor empty$
1496     { key empty$
1497         { cite$ #1 #3 substring$ }
1498         'key
1499       if$
1500     }
1501     { editor format.lab.names }
1502   if$
1505 FUNCTION {calc.short.authors}
1506 { type$ "book" =
1507   type$ "inbook" =
1508   or
1509     'author.editor.key.label
1510     { type$ "proceedings" =
1511         'editor.key.label
1512         'author.key.label
1513       if$
1514     }
1515   if$
1516   'short.list :=
1519 FUNCTION {calc.label}
1520 { calc.short.authors
1521   short.list
1522   "("
1523   *
1524   year duplicate$ empty$
1525      { pop$ "????" }
1526      'skip$
1527   if$
1528   *
1529   'label :=
1532 FUNCTION {sort.format.names}
1533 { 's :=
1534   #1 'nameptr :=
1535   ""
1536   s num.names$ 'numnames :=
1537   numnames 'namesleft :=
1538     { namesleft #0 > }
1539     { s nameptr
1540       "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}"
1541       format.name$ 't :=
1542       nameptr #1 >
1543         {
1544           "   "  *
1545           namesleft #1 = t "others" = and
1546             { "zzzzz" * }
1547             { t sortify * }
1548           if$
1549         }
1550         { t sortify * }
1551       if$
1552       nameptr #1 + 'nameptr :=
1553       namesleft #1 - 'namesleft :=
1554     }
1555   while$
1558 FUNCTION {sort.format.title}
1559 { 't :=
1560   "A " #2
1561     "An " #3
1562       "The " #4 t chop.word
1563     chop.word
1564   chop.word
1565   sortify
1566   #1 global.max$ substring$
1569 FUNCTION {author.sort}
1570 { author empty$
1571     { key empty$
1572         { "to sort, need author or key in " cite$ * warning$
1573           ""
1574         }
1575         { key sortify }
1576       if$
1577     }
1578     { author sort.format.names }
1579   if$
1582 FUNCTION {author.editor.sort}
1583 { author empty$
1584     { editor empty$
1585         { key empty$
1586             { "to sort, need author, editor, or key in " cite$ * warning$
1587               ""
1588             }
1589             { key sortify }
1590           if$
1591         }
1592         { editor sort.format.names }
1593       if$
1594     }
1595     { author sort.format.names }
1596   if$
1599 FUNCTION {editor.sort}
1600 { editor empty$
1601     { key empty$
1602         { "to sort, need editor or key in " cite$ * warning$
1603           ""
1604         }
1605         { key sortify }
1606       if$
1607     }
1608     { editor sort.format.names }
1609   if$
1612 FUNCTION {presort}
1613 { calc.label
1614   label sortify
1615   "    "
1616   *
1617   type$ "book" =
1618   type$ "inbook" =
1619   or
1620     'author.editor.sort
1621     { type$ "proceedings" =
1622         'editor.sort
1623         'author.sort
1624       if$
1625     }
1626   if$
1627   #1 entry.max$ substring$
1628   'sort.label :=
1629   sort.label
1630   *
1631   "    "
1632   *
1633   title field.or.null
1634   sort.format.title
1635   *
1636   #1 entry.max$ substring$
1637   'sort.key$ :=
1640 ITERATE {presort}
1642 SORT
1644 STRINGS { last.label next.extra }
1646 INTEGERS { last.extra.num number.label }
1648 FUNCTION {initialize.extra.label.stuff}
1649 { #0 int.to.chr$ 'last.label :=
1650   "" 'next.extra :=
1651   #0 'last.extra.num :=
1652   #0 'number.label :=
1655 FUNCTION {forward.pass}
1656 { last.label label =
1657     { last.extra.num #1 + 'last.extra.num :=
1658       last.extra.num int.to.chr$ 'extra.label :=
1659     }
1660     { "a" chr.to.int$ 'last.extra.num :=
1661       "" 'extra.label :=
1662       label 'last.label :=
1663     }
1664   if$
1665   number.label #1 + 'number.label :=
1668 FUNCTION {reverse.pass}
1669 { next.extra "b" =
1670     { "a" 'extra.label := }
1671     'skip$
1672   if$
1673   extra.label 'next.extra :=
1674   extra.label
1675   duplicate$ empty$
1676     'skip$
1677     { "{\natexlab{" swap$ * "}}" * }
1678   if$
1679   'extra.label :=
1680   label extra.label * 'label :=
1683 EXECUTE {initialize.extra.label.stuff}
1685 ITERATE {forward.pass}
1687 REVERSE {reverse.pass}
1689 FUNCTION {bib.sort.order}
1690 { sort.label
1691   "    "
1692   *
1693   year field.or.null sortify
1694   *
1695   "    "
1696   *
1697   title field.or.null
1698   sort.format.title
1699   *
1700   #1 entry.max$ substring$
1701   'sort.key$ :=
1704 ITERATE {bib.sort.order}
1706 SORT
1708 FUNCTION {begin.bib}
1709 { preamble$ empty$
1710     'skip$
1711     { preamble$ write$ newline$ }
1712   if$
1713   "\begin{thebibliography}{" number.label int.to.str$ * "}" *
1714   write$ newline$
1715   "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi"
1716   write$ newline$
1717   "\expandafter\ifx\csname url\endcsname\relax"
1718   write$ newline$
1719   "  \def\url#1{{\tt #1}}\fi"
1720   write$ newline$
1721   "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi"
1722   write$ newline$
1723   "\expandafter\ifx\csname doiprefix\endcsname\relax\def\doiprefix{doi:}\fi"
1724   write$ newline$
1727 EXECUTE {begin.bib}
1729 EXECUTE {init.state.consts}
1731 ITERATE {call.type$}
1733 FUNCTION {end.bib}
1734 { newline$
1735   "\end{thebibliography}" write$ newline$
1738 EXECUTE {end.bib}
1739 %% End of customized bst file
1741 %% End of file `ametsoc.bst'.