| 1 | %% #define AIP 1                % Fri Jun 15 10:51:17 1990 | 
| 2 | %% #include "TEX$ROOT:[BIBTEX]PHYSICS.BTX" | 
| 3 | % Please notify Charles Karney (Karney@Princeton.EDU) | 
| 4 | % of any bugs, improvements, etc. | 
| 5 |  | 
| 6 | % For American Institute of Physics Journals | 
| 7 |  | 
| 8 | % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. | 
| 9 | % Copyright (C) 1985, all rights reserved. | 
| 10 | % Copying of this file is authorized only if either | 
| 11 | % (1) you make absolutely no changes to your copy, including name, or | 
| 12 | % (2) if you do make changes, you name it something other than | 
| 13 | % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. | 
| 14 | % This restriction helps ensure that all standard styles are identical. | 
| 15 | % The file btxbst.doc has the documentation for this style. | 
| 16 |  | 
| 17 | ENTRY | 
| 18 | { address | 
| 19 | author | 
| 20 | booktitle | 
| 21 | chapter | 
| 22 | edition | 
| 23 | editor | 
| 24 | howpublished | 
| 25 | institution | 
| 26 | journal | 
| 27 | key | 
| 28 | month | 
| 29 | note | 
| 30 | number | 
| 31 | organization | 
| 32 | pages | 
| 33 | publisher | 
| 34 | school | 
| 35 | series | 
| 36 | title | 
| 37 | type | 
| 38 | volume | 
| 39 | year | 
| 40 | } | 
| 41 | {} | 
| 42 | { label } | 
| 43 |  | 
| 44 | INTEGERS { output.state before.all mid.sentence after.sentence after.block } | 
| 45 |  | 
| 46 | FUNCTION {init.state.consts} | 
| 47 | { #0 'before.all := | 
| 48 | #1 'mid.sentence := | 
| 49 | #2 'after.sentence := | 
| 50 | #3 'after.block := | 
| 51 | } | 
| 52 |  | 
| 53 | STRINGS { s t } | 
| 54 |  | 
| 55 | FUNCTION {output.nonnull} | 
| 56 | { 's := | 
| 57 | output.state mid.sentence = | 
| 58 | { ", " * write$ } | 
| 59 | { output.state after.block = | 
| 60 | { "," * write$ | 
| 61 | newline$ | 
| 62 | "\newblock " write$ | 
| 63 | } | 
| 64 | { output.state before.all = | 
| 65 | 'write$ | 
| 66 | { add.period$ " " * write$ } | 
| 67 | if$ | 
| 68 | } | 
| 69 | if$ | 
| 70 | mid.sentence 'output.state := | 
| 71 | } | 
| 72 | if$ | 
| 73 | s | 
| 74 | } | 
| 75 |  | 
| 76 | FUNCTION {output} | 
| 77 | { duplicate$ empty$ | 
| 78 | 'pop$ | 
| 79 | 'output.nonnull | 
| 80 | if$ | 
| 81 | } | 
| 82 |  | 
| 83 | FUNCTION {output.check} | 
| 84 | { 't := | 
| 85 | duplicate$ empty$ | 
| 86 | { pop$ "empty " t * " in " * cite$ * warning$ } | 
| 87 | 'output.nonnull | 
| 88 | if$ | 
| 89 | } | 
| 90 |  | 
| 91 | FUNCTION {output.bibitem} | 
| 92 | { newline$ | 
| 93 | "\bibitem{" write$ | 
| 94 | cite$ write$ | 
| 95 | "}" write$ | 
| 96 | newline$ | 
| 97 | "" | 
| 98 | before.all 'output.state := | 
| 99 | } | 
| 100 |  | 
| 101 | FUNCTION {fin.entry} | 
| 102 | { add.period$ | 
| 103 | write$ | 
| 104 | newline$ | 
| 105 | } | 
| 106 |  | 
| 107 | FUNCTION {new.block} | 
| 108 | { output.state before.all = | 
| 109 | 'skip$ | 
| 110 | { after.block 'output.state := } | 
| 111 | if$ | 
| 112 | } | 
| 113 |  | 
| 114 | FUNCTION {new.sentence} | 
| 115 | { skip$ | 
| 116 | } | 
| 117 |  | 
| 118 | FUNCTION {not} | 
| 119 | {   { #0 } | 
| 120 | { #1 } | 
| 121 | if$ | 
| 122 | } | 
| 123 |  | 
| 124 | FUNCTION {and} | 
| 125 | {   'skip$ | 
| 126 | { pop$ #0 } | 
| 127 | if$ | 
| 128 | } | 
| 129 |  | 
| 130 | FUNCTION {or} | 
| 131 | {   { pop$ #1 } | 
| 132 | 'skip$ | 
| 133 | if$ | 
| 134 | } | 
| 135 |  | 
| 136 | FUNCTION {new.block.checka} | 
| 137 | { empty$ | 
| 138 | 'skip$ | 
| 139 | 'new.block | 
| 140 | if$ | 
| 141 | } | 
| 142 |  | 
| 143 | FUNCTION {new.block.checkb} | 
| 144 | { empty$ | 
| 145 | swap$ empty$ | 
| 146 | and | 
| 147 | 'skip$ | 
| 148 | 'new.block | 
| 149 | if$ | 
| 150 | } | 
| 151 |  | 
| 152 | FUNCTION {new.sentence.checka} | 
| 153 | { empty$ | 
| 154 | 'skip$ | 
| 155 | 'new.sentence | 
| 156 | if$ | 
| 157 | } | 
| 158 |  | 
| 159 | FUNCTION {new.sentence.checkb} | 
| 160 | { empty$ | 
| 161 | swap$ empty$ | 
| 162 | and | 
| 163 | 'skip$ | 
| 164 | 'new.sentence | 
| 165 | if$ | 
| 166 | } | 
| 167 |  | 
| 168 | FUNCTION {field.or.null} | 
| 169 | { duplicate$ empty$ | 
| 170 | { pop$ "" } | 
| 171 | 'skip$ | 
| 172 | if$ | 
| 173 | } | 
| 174 |  | 
| 175 | FUNCTION {emphasize} | 
| 176 | { duplicate$ empty$ | 
| 177 | { pop$ "" } | 
| 178 | { "{\em " swap$ * "}" * } | 
| 179 | if$ | 
| 180 | } | 
| 181 |  | 
| 182 | FUNCTION {embolden} | 
| 183 | { duplicate$ empty$ | 
| 184 | { pop$ "" } | 
| 185 | { "{\bf " swap$ * "}" * } | 
| 186 | if$ | 
| 187 | } | 
| 188 |  | 
| 189 | FUNCTION {paren} | 
| 190 | { duplicate$ empty$ | 
| 191 | { pop$ "" } | 
| 192 | { "(" swap$ * ")" * } | 
| 193 | if$ | 
| 194 | } | 
| 195 |  | 
| 196 | INTEGERS { nameptr namesleft numnames } | 
| 197 |  | 
| 198 | INTEGERS { etal } | 
| 199 |  | 
| 200 | FUNCTION {format.names} | 
| 201 | { 's := | 
| 202 | #1 'nameptr := | 
| 203 | s num.names$ 'numnames := | 
| 204 | numnames #5 > | 
| 205 | s numnames "{ll}" format.name$ "others" = numnames #1 > and | 
| 206 | or 'etal := | 
| 207 | etal | 
| 208 | { #1 #1 + 'namesleft := } | 
| 209 | { numnames 'namesleft := } | 
| 210 | if$ | 
| 211 | { namesleft #0 > } | 
| 212 | { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := | 
| 213 | nameptr #1 > | 
| 214 | { namesleft #1 > | 
| 215 | { ", " * t * } | 
| 216 | { nameptr #2 > | 
| 217 | { "," * } | 
| 218 | 'skip$ | 
| 219 | if$ | 
| 220 | t "others" = | 
| 221 | etal or | 
| 222 | { " et~al." * } | 
| 223 | { " and " * t * } | 
| 224 | if$ | 
| 225 | } | 
| 226 | if$ | 
| 227 | } | 
| 228 | 't | 
| 229 | if$ | 
| 230 | nameptr #1 + 'nameptr := | 
| 231 | namesleft #1 - 'namesleft := | 
| 232 | } | 
| 233 | while$ | 
| 234 | } | 
| 235 |  | 
| 236 | FUNCTION {format.authors} | 
| 237 | { author empty$ | 
| 238 | { "" } | 
| 239 | { author format.names } | 
| 240 | if$ | 
| 241 | } | 
| 242 |  | 
| 243 | FUNCTION {format.editors} | 
| 244 | { editor empty$ | 
| 245 | { "" } | 
| 246 | { editor format.names | 
| 247 | editor num.names$ #1 > | 
| 248 | { ", editors" * } | 
| 249 | { ", editor" * } | 
| 250 | if$ | 
| 251 | } | 
| 252 | if$ | 
| 253 | } | 
| 254 |  | 
| 255 | FUNCTION {format.edited} | 
| 256 | { editor empty$ | 
| 257 | { "" } | 
| 258 | { "edited by " editor format.names * } | 
| 259 | if$ | 
| 260 | } | 
| 261 |  | 
| 262 | FUNCTION {format.title} | 
| 263 | { title empty$ | 
| 264 | { "" } | 
| 265 | { title "t" change.case$ } | 
| 266 | if$ | 
| 267 | } | 
| 268 |  | 
| 269 | FUNCTION {n.dashify} | 
| 270 | { 't := | 
| 271 | "" | 
| 272 | { t empty$ not } | 
| 273 | { t #1 #1 substring$ "-" = | 
| 274 | { t #1 #2 substring$ "--" = not | 
| 275 | { "--" * | 
| 276 | t #2 global.max$ substring$ 't := | 
| 277 | } | 
| 278 | {   { t #1 #1 substring$ "-" = } | 
| 279 | { "-" * | 
| 280 | t #2 global.max$ substring$ 't := | 
| 281 | } | 
| 282 | while$ | 
| 283 | } | 
| 284 | if$ | 
| 285 | } | 
| 286 | { t #1 #1 substring$ * | 
| 287 | t #2 global.max$ substring$ 't := | 
| 288 | } | 
| 289 | if$ | 
| 290 | } | 
| 291 | while$ | 
| 292 | } | 
| 293 |  | 
| 294 | FUNCTION {first.page} | 
| 295 | { 't := | 
| 296 | "" | 
| 297 | {  t empty$ not t #1 #1 substring$ "-" = not and } | 
| 298 | { t #1 #1 substring$ * | 
| 299 | t #2 global.max$ substring$ 't := | 
| 300 | } | 
| 301 | while$ | 
| 302 | } | 
| 303 |  | 
| 304 | FUNCTION {format.date} | 
| 305 | { year empty$ | 
| 306 | { "" } | 
| 307 | 'year | 
| 308 | if$ | 
| 309 | } | 
| 310 |  | 
| 311 | FUNCTION {format.btitle} | 
| 312 | { title emphasize | 
| 313 | } | 
| 314 |  | 
| 315 | FUNCTION {tie.or.space.connect} | 
| 316 | { duplicate$ text.length$ #3 < | 
| 317 | { "~" } | 
| 318 | { " " } | 
| 319 | if$ | 
| 320 | swap$ * * | 
| 321 | } | 
| 322 |  | 
| 323 | FUNCTION {either.or.check} | 
| 324 | { empty$ | 
| 325 | 'pop$ | 
| 326 | { "can't use both " swap$ * " fields in " * cite$ * warning$ } | 
| 327 | if$ | 
| 328 | } | 
| 329 |  | 
| 330 | FUNCTION {format.bvolume} | 
| 331 | { volume empty$ | 
| 332 | { "" } | 
| 333 | { "volume" volume tie.or.space.connect | 
| 334 | series empty$ | 
| 335 | 'skip$ | 
| 336 | { " of " * series emphasize * } | 
| 337 | if$ | 
| 338 | "volume and number" number either.or.check | 
| 339 | } | 
| 340 | if$ | 
| 341 | } | 
| 342 |  | 
| 343 | FUNCTION {format.number.series} | 
| 344 | { volume empty$ | 
| 345 | { number empty$ | 
| 346 | { series field.or.null } | 
| 347 | { output.state mid.sentence = | 
| 348 | { "number" } | 
| 349 | { "Number" } | 
| 350 | if$ | 
| 351 | number tie.or.space.connect | 
| 352 | series empty$ | 
| 353 | { "there's a number but no series in " cite$ * warning$ } | 
| 354 | { " in " * series * } | 
| 355 | if$ | 
| 356 | } | 
| 357 | if$ | 
| 358 | } | 
| 359 | { "" } | 
| 360 | if$ | 
| 361 | } | 
| 362 |  | 
| 363 | FUNCTION {format.edition} | 
| 364 | { edition empty$ | 
| 365 | { "" } | 
| 366 | { output.state mid.sentence = | 
| 367 | { edition "l" change.case$ " edition" * } | 
| 368 | { edition "t" change.case$ " edition" * } | 
| 369 | if$ | 
| 370 | } | 
| 371 | if$ | 
| 372 | } | 
| 373 |  | 
| 374 | INTEGERS { multiresult } | 
| 375 |  | 
| 376 | FUNCTION {multi.page.check} | 
| 377 | { 't := | 
| 378 | #0 'multiresult := | 
| 379 | { multiresult not | 
| 380 | t empty$ not | 
| 381 | and | 
| 382 | } | 
| 383 | { t #1 #1 substring$ | 
| 384 | duplicate$ "-" = | 
| 385 | swap$ duplicate$ "," = | 
| 386 | swap$ "+" = | 
| 387 | or or | 
| 388 | { #1 'multiresult := } | 
| 389 | { t #2 global.max$ substring$ 't := } | 
| 390 | if$ | 
| 391 | } | 
| 392 | while$ | 
| 393 | multiresult | 
| 394 | } | 
| 395 |  | 
| 396 | FUNCTION {format.pages} | 
| 397 | { pages empty$ | 
| 398 | { "" } | 
| 399 | { pages multi.page.check | 
| 400 | { "pages" pages n.dashify tie.or.space.connect } | 
| 401 | { "page" pages tie.or.space.connect } | 
| 402 | if$ | 
| 403 | } | 
| 404 | if$ | 
| 405 | } | 
| 406 |  | 
| 407 | FUNCTION {format.pages.a} | 
| 408 | { pages empty$ | 
| 409 | { "" } | 
| 410 | { "page" pages first.page tie.or.space.connect } | 
| 411 | if$ | 
| 412 | } | 
| 413 |  | 
| 414 | FUNCTION {format.vol.num.pages} | 
| 415 | { volume field.or.null embolden | 
| 416 | " " swap$ * * | 
| 417 | pages empty$ | 
| 418 | 'skip$ | 
| 419 | { duplicate$ empty$ | 
| 420 | { pop$ format.pages.a } | 
| 421 | { ", " * pages first.page * } | 
| 422 | if$ | 
| 423 | } | 
| 424 | if$ | 
| 425 | } | 
| 426 |  | 
| 427 | FUNCTION {format.chapter.pages} | 
| 428 | { chapter empty$ | 
| 429 | 'format.pages | 
| 430 | { type empty$ | 
| 431 | { "chapter" } | 
| 432 | { type "l" change.case$ } | 
| 433 | if$ | 
| 434 | chapter tie.or.space.connect | 
| 435 | pages empty$ | 
| 436 | 'skip$ | 
| 437 | { ", " * format.pages * } | 
| 438 | if$ | 
| 439 | } | 
| 440 | if$ | 
| 441 | } | 
| 442 |  | 
| 443 | FUNCTION {format.in.ed.booktitle} | 
| 444 | { booktitle empty$ | 
| 445 | { "" } | 
| 446 | { editor empty$ | 
| 447 | { "in " booktitle emphasize * } | 
| 448 | { "in " booktitle emphasize * ", " * format.edited * } | 
| 449 | if$ | 
| 450 | } | 
| 451 | if$ | 
| 452 | } | 
| 453 |  | 
| 454 | FUNCTION {empty.misc.check} | 
| 455 | { author empty$ title empty$ howpublished empty$ | 
| 456 | month empty$ year empty$ note empty$ | 
| 457 | and and and and and | 
| 458 | { "all relevant fields are empty in " cite$ * warning$ } | 
| 459 | 'skip$ | 
| 460 | if$ | 
| 461 | } | 
| 462 |  | 
| 463 | FUNCTION {format.thesis.type} | 
| 464 | { type empty$ | 
| 465 | 'skip$ | 
| 466 | { pop$ | 
| 467 | type "t" change.case$ | 
| 468 | } | 
| 469 | if$ | 
| 470 | } | 
| 471 |  | 
| 472 | FUNCTION {format.tr.number} | 
| 473 | { type empty$ | 
| 474 | { "Technical Report" } | 
| 475 | 'type | 
| 476 | if$ | 
| 477 | number empty$ | 
| 478 | { "t" change.case$ } | 
| 479 | { number tie.or.space.connect } | 
| 480 | if$ | 
| 481 | } | 
| 482 |  | 
| 483 | FUNCTION {format.article.crossref} | 
| 484 | { key empty$ | 
| 485 | { journal empty$ | 
| 486 | { "need key or journal for " cite$ * " to crossref " * crossref * | 
| 487 | warning$ | 
| 488 | "" | 
| 489 | } | 
| 490 | { "In " journal emphasize * } | 
| 491 | if$ | 
| 492 | } | 
| 493 | { "In " key * } | 
| 494 | if$ | 
| 495 | " \cite{" * crossref * "}" * | 
| 496 | } | 
| 497 |  | 
| 498 | FUNCTION {format.crossref.editor} | 
| 499 | { editor #1 "{vv~}{ll}" format.name$ | 
| 500 | editor num.names$ duplicate$ | 
| 501 | #2 > | 
| 502 | { pop$ " et~al." * } | 
| 503 | { #2 < | 
| 504 | 'skip$ | 
| 505 | { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = | 
| 506 | { " et~al." * } | 
| 507 | { " and " * editor #2 "{vv~}{ll}" format.name$ * } | 
| 508 | if$ | 
| 509 | } | 
| 510 | if$ | 
| 511 | } | 
| 512 | if$ | 
| 513 | } | 
| 514 |  | 
| 515 | FUNCTION {format.book.crossref} | 
| 516 | { volume empty$ | 
| 517 | { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ | 
| 518 | "In " | 
| 519 | } | 
| 520 | { "Volume" volume tie.or.space.connect | 
| 521 | " of " * | 
| 522 | } | 
| 523 | if$ | 
| 524 | editor empty$ | 
| 525 | editor field.or.null author field.or.null = | 
| 526 | or | 
| 527 | { key empty$ | 
| 528 | { series empty$ | 
| 529 | { "need editor, key, or series for " cite$ * " to crossref " * | 
| 530 | crossref * warning$ | 
| 531 | "" * | 
| 532 | } | 
| 533 | { "{\em " * series * "\/}" * } | 
| 534 | if$ | 
| 535 | } | 
| 536 | { key * } | 
| 537 | if$ | 
| 538 | } | 
| 539 | { format.crossref.editor * } | 
| 540 | if$ | 
| 541 | " \cite{" * crossref * "}" * | 
| 542 | } | 
| 543 |  | 
| 544 | FUNCTION {format.incoll.inproc.crossref} | 
| 545 | { editor empty$ | 
| 546 | editor field.or.null author field.or.null = | 
| 547 | or | 
| 548 | { key empty$ | 
| 549 | { booktitle empty$ | 
| 550 | { "need editor, key, or booktitle for " cite$ * " to crossref " * | 
| 551 | crossref * warning$ | 
| 552 | "" | 
| 553 | } | 
| 554 | { "In {\em " booktitle * "\/}" * } | 
| 555 | if$ | 
| 556 | } | 
| 557 | { "In " key * } | 
| 558 | if$ | 
| 559 | } | 
| 560 | { "In " format.crossref.editor * } | 
| 561 | if$ | 
| 562 | " \cite{" * crossref * "}" * | 
| 563 | } | 
| 564 |  | 
| 565 | FUNCTION {article} | 
| 566 | { output.bibitem | 
| 567 | format.authors "author" output.check | 
| 568 | new.block | 
| 569 | crossref missing$ | 
| 570 | { journal emphasize field.or.null | 
| 571 | format.vol.num.pages | 
| 572 | format.date empty$ | 
| 573 | 'skip$ | 
| 574 | { duplicate$ empty$ | 
| 575 | { pop$ format.date paren } | 
| 576 | { " " * format.date paren * } | 
| 577 | if$ | 
| 578 | } | 
| 579 | if$ | 
| 580 | output | 
| 581 | } | 
| 582 | { format.article.crossref output.nonnull | 
| 583 | format.pages output | 
| 584 | } | 
| 585 | if$ | 
| 586 | new.block | 
| 587 | note output | 
| 588 | fin.entry | 
| 589 | } | 
| 590 |  | 
| 591 | FUNCTION {book} | 
| 592 | { output.bibitem | 
| 593 | author empty$ | 
| 594 | { format.editors "author and editor" output.check } | 
| 595 | { format.authors output.nonnull | 
| 596 | crossref missing$ | 
| 597 | { "author and editor" editor either.or.check } | 
| 598 | 'skip$ | 
| 599 | if$ | 
| 600 | } | 
| 601 | if$ | 
| 602 | new.block | 
| 603 | format.btitle "title" output.check | 
| 604 | crossref missing$ | 
| 605 | { format.bvolume output | 
| 606 | new.block | 
| 607 | format.number.series output | 
| 608 | new.sentence | 
| 609 | publisher "publisher" output.check | 
| 610 | address output | 
| 611 | } | 
| 612 | { new.block | 
| 613 | format.book.crossref output.nonnull | 
| 614 | } | 
| 615 | if$ | 
| 616 | format.edition output | 
| 617 | format.date "year" output.check | 
| 618 | new.block | 
| 619 | note output | 
| 620 | fin.entry | 
| 621 | } | 
| 622 |  | 
| 623 | FUNCTION {booklet} | 
| 624 | { output.bibitem | 
| 625 | format.authors output | 
| 626 | new.block | 
| 627 | format.title "title" output.check | 
| 628 | howpublished address new.block.checkb | 
| 629 | howpublished output | 
| 630 | address output | 
| 631 | format.date output | 
| 632 | new.block | 
| 633 | note output | 
| 634 | fin.entry | 
| 635 | } | 
| 636 |  | 
| 637 | FUNCTION {inbook} | 
| 638 | { output.bibitem | 
| 639 | author empty$ | 
| 640 | { format.editors "author and editor" output.check } | 
| 641 | { format.authors output.nonnull | 
| 642 | crossref missing$ | 
| 643 | { "author and editor" editor either.or.check } | 
| 644 | 'skip$ | 
| 645 | if$ | 
| 646 | } | 
| 647 | if$ | 
| 648 | new.block | 
| 649 | format.btitle "title" output.check | 
| 650 | crossref missing$ | 
| 651 | { format.bvolume output | 
| 652 | format.chapter.pages "chapter and pages" output.check | 
| 653 | new.block | 
| 654 | format.number.series output | 
| 655 | new.sentence | 
| 656 | publisher "publisher" output.check | 
| 657 | address output | 
| 658 | } | 
| 659 | { format.chapter.pages "chapter and pages" output.check | 
| 660 | new.block | 
| 661 | format.book.crossref output.nonnull | 
| 662 | } | 
| 663 | if$ | 
| 664 | format.edition output | 
| 665 | format.date "year" output.check | 
| 666 | new.block | 
| 667 | note output | 
| 668 | fin.entry | 
| 669 | } | 
| 670 |  | 
| 671 | FUNCTION {incollection} | 
| 672 | { output.bibitem | 
| 673 | format.authors "author" output.check | 
| 674 | new.block | 
| 675 | format.title "title" output.check | 
| 676 | new.block | 
| 677 | crossref missing$ | 
| 678 | { format.in.ed.booktitle "booktitle" output.check | 
| 679 | format.bvolume output | 
| 680 | format.number.series output | 
| 681 | format.chapter.pages output | 
| 682 | new.sentence | 
| 683 | publisher "publisher" output.check | 
| 684 | address output | 
| 685 | format.edition output | 
| 686 | format.date "year" output.check | 
| 687 | } | 
| 688 | { format.incoll.inproc.crossref output.nonnull | 
| 689 | format.chapter.pages output | 
| 690 | } | 
| 691 | if$ | 
| 692 | new.block | 
| 693 | note output | 
| 694 | fin.entry | 
| 695 | } | 
| 696 |  | 
| 697 | FUNCTION {inproceedings} | 
| 698 | { output.bibitem | 
| 699 | format.authors "author" output.check | 
| 700 | new.block | 
| 701 | format.title "title" output.check | 
| 702 | new.block | 
| 703 | crossref missing$ | 
| 704 | { format.in.ed.booktitle "booktitle" output.check | 
| 705 | format.bvolume output | 
| 706 | format.number.series output | 
| 707 | format.pages output | 
| 708 | address empty$ | 
| 709 | { organization publisher new.sentence.checkb | 
| 710 | organization output | 
| 711 | publisher output | 
| 712 | format.date "year" output.check | 
| 713 | } | 
| 714 | { address output.nonnull | 
| 715 | format.date "year" output.check | 
| 716 | new.sentence | 
| 717 | organization output | 
| 718 | publisher output | 
| 719 | } | 
| 720 | if$ | 
| 721 | } | 
| 722 | { format.incoll.inproc.crossref output.nonnull | 
| 723 | format.pages output | 
| 724 | } | 
| 725 | if$ | 
| 726 | new.block | 
| 727 | note output | 
| 728 | fin.entry | 
| 729 | } | 
| 730 |  | 
| 731 | FUNCTION {conference} { inproceedings } | 
| 732 |  | 
| 733 | FUNCTION {manual} | 
| 734 | { output.bibitem | 
| 735 | author empty$ | 
| 736 | { organization empty$ | 
| 737 | 'skip$ | 
| 738 | { organization output.nonnull | 
| 739 | address output | 
| 740 | } | 
| 741 | if$ | 
| 742 | } | 
| 743 | { format.authors output.nonnull } | 
| 744 | if$ | 
| 745 | new.block | 
| 746 | format.btitle "title" output.check | 
| 747 | author empty$ | 
| 748 | { organization empty$ | 
| 749 | { address new.block.checka | 
| 750 | address output | 
| 751 | } | 
| 752 | 'skip$ | 
| 753 | if$ | 
| 754 | } | 
| 755 | { organization address new.block.checkb | 
| 756 | organization output | 
| 757 | address output | 
| 758 | } | 
| 759 | if$ | 
| 760 | format.edition output | 
| 761 | format.date output | 
| 762 | new.block | 
| 763 | note output | 
| 764 | fin.entry | 
| 765 | } | 
| 766 |  | 
| 767 | FUNCTION {mastersthesis} | 
| 768 | { output.bibitem | 
| 769 | format.authors "author" output.check | 
| 770 | new.block | 
| 771 | format.title "title" output.check | 
| 772 | new.block | 
| 773 | "Master's thesis" format.thesis.type output.nonnull | 
| 774 | school "school" output.check | 
| 775 | address output | 
| 776 | format.date "year" output.check | 
| 777 | new.block | 
| 778 | note output | 
| 779 | fin.entry | 
| 780 | } | 
| 781 |  | 
| 782 | FUNCTION {misc} | 
| 783 | { output.bibitem | 
| 784 | format.authors output | 
| 785 | title howpublished new.block.checkb | 
| 786 | format.title output | 
| 787 | howpublished new.block.checka | 
| 788 | howpublished output | 
| 789 | format.date output | 
| 790 | new.block | 
| 791 | note output | 
| 792 | fin.entry | 
| 793 | empty.misc.check | 
| 794 | } | 
| 795 |  | 
| 796 | FUNCTION {phdthesis} | 
| 797 | { output.bibitem | 
| 798 | format.authors "author" output.check | 
| 799 | new.block | 
| 800 | format.btitle "title" output.check | 
| 801 | new.block | 
| 802 | "PhD thesis" format.thesis.type output.nonnull | 
| 803 | school "school" output.check | 
| 804 | address output | 
| 805 | format.date "year" output.check | 
| 806 | new.block | 
| 807 | note output | 
| 808 | fin.entry | 
| 809 | } | 
| 810 |  | 
| 811 | FUNCTION {proceedings} | 
| 812 | { output.bibitem | 
| 813 | editor empty$ | 
| 814 | { organization output } | 
| 815 | { format.editors output.nonnull } | 
| 816 | if$ | 
| 817 | new.block | 
| 818 | format.btitle "title" output.check | 
| 819 | format.bvolume output | 
| 820 | format.number.series output | 
| 821 | address empty$ | 
| 822 | { editor empty$ | 
| 823 | { publisher new.sentence.checka } | 
| 824 | { organization publisher new.sentence.checkb | 
| 825 | organization output | 
| 826 | } | 
| 827 | if$ | 
| 828 | publisher output | 
| 829 | format.date "year" output.check | 
| 830 | } | 
| 831 | { address output.nonnull | 
| 832 | format.date "year" output.check | 
| 833 | new.sentence | 
| 834 | editor empty$ | 
| 835 | 'skip$ | 
| 836 | { organization output } | 
| 837 | if$ | 
| 838 | publisher output | 
| 839 | } | 
| 840 | if$ | 
| 841 | new.block | 
| 842 | note output | 
| 843 | fin.entry | 
| 844 | } | 
| 845 |  | 
| 846 | FUNCTION {techreport} | 
| 847 | { output.bibitem | 
| 848 | format.authors "author" output.check | 
| 849 | new.block | 
| 850 | format.title "title" output.check | 
| 851 | new.block | 
| 852 | format.tr.number output.nonnull | 
| 853 | institution "institution" output.check | 
| 854 | address output | 
| 855 | format.date "year" output.check | 
| 856 | new.block | 
| 857 | note output | 
| 858 | fin.entry | 
| 859 | } | 
| 860 |  | 
| 861 | FUNCTION {unpublished} | 
| 862 | { output.bibitem | 
| 863 | format.authors "author" output.check | 
| 864 | new.block | 
| 865 | format.title "title" output.check | 
| 866 | new.block | 
| 867 | note "note" output.check | 
| 868 | format.date output | 
| 869 | fin.entry | 
| 870 | } | 
| 871 |  | 
| 872 | FUNCTION {default.type} { misc } | 
| 873 |  | 
| 874 | MACRO {jan} {"Jan."} | 
| 875 |  | 
| 876 | MACRO {feb} {"Feb."} | 
| 877 |  | 
| 878 | MACRO {mar} {"Mar."} | 
| 879 |  | 
| 880 | MACRO {apr} {"Apr."} | 
| 881 |  | 
| 882 | MACRO {may} {"May"} | 
| 883 |  | 
| 884 | MACRO {jun} {"June"} | 
| 885 |  | 
| 886 | MACRO {jul} {"July"} | 
| 887 |  | 
| 888 | MACRO {aug} {"Aug."} | 
| 889 |  | 
| 890 | MACRO {sep} {"Sept."} | 
| 891 |  | 
| 892 | MACRO {oct} {"Oct."} | 
| 893 |  | 
| 894 | MACRO {nov} {"Nov."} | 
| 895 |  | 
| 896 | MACRO {dec} {"Dec."} | 
| 897 |  | 
| 898 | MACRO {acmcs} {"ACM Comput. Surv."} | 
| 899 |  | 
| 900 | MACRO {acta} {"Acta Inf."} | 
| 901 |  | 
| 902 | MACRO {cacm} {"Commun. ACM"} | 
| 903 |  | 
| 904 | MACRO {ibmjrd} {"IBM J. Res. Dev."} | 
| 905 |  | 
| 906 | MACRO {ibmsj} {"IBM Syst.~J."} | 
| 907 |  | 
| 908 | MACRO {ieeese} {"IEEE Trans. Softw. Eng."} | 
| 909 |  | 
| 910 | MACRO {ieeetc} {"IEEE Trans. Comput."} | 
| 911 |  | 
| 912 | MACRO {ieeetcad} | 
| 913 | {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} | 
| 914 |  | 
| 915 | MACRO {ipl} {"Inf. Process. Lett."} | 
| 916 |  | 
| 917 | MACRO {jacm} {"J.~ACM"} | 
| 918 |  | 
| 919 | MACRO {jcss} {"J.~Comput. Syst. Sci."} | 
| 920 |  | 
| 921 | MACRO {scp} {"Sci. Comput. Programming"} | 
| 922 |  | 
| 923 | MACRO {sicomp} {"SIAM J. Comput."} | 
| 924 |  | 
| 925 | MACRO {tocs} {"ACM Trans. Comput. Syst."} | 
| 926 |  | 
| 927 | MACRO {tods} {"ACM Trans. Database Syst."} | 
| 928 |  | 
| 929 | MACRO {tog} {"ACM Trans. Gr."} | 
| 930 |  | 
| 931 | MACRO {toms} {"ACM Trans. Math. Softw."} | 
| 932 |  | 
| 933 | MACRO {toois} {"ACM Trans. Office Inf. Syst."} | 
| 934 |  | 
| 935 | MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} | 
| 936 |  | 
| 937 | MACRO {tcs} {"Theoretical Comput. Sci."} | 
| 938 |  | 
| 939 | MACRO {advp} {"Adv. Phys."} | 
| 940 | MACRO {ajp} {"Am. J. Phys."} | 
| 941 | MACRO {ao} {"Appl. Opt."} | 
| 942 | MACRO {apl} {"Appl. Phys. Lett."} | 
| 943 | MACRO {apj} {"Astrophys. J."} | 
| 944 | MACRO {baps} {"Bull. Am. Phys. Soc."} | 
| 945 | MACRO {cpc} {"Computer Phys. Comm."} | 
| 946 | MACRO {cppcf} {"Comments Plasma Phys. Controlled Fusion"} | 
| 947 | MACRO {fed} {"Fusion Eng. Design"} | 
| 948 | MACRO {ft} {"Fusion Tech."} | 
| 949 | MACRO {ieeens} {"IEEE Trans. Nucl. Sci."} | 
| 950 | MACRO {ieeeps} {"IEEE Trans. Plasma Sci."} | 
| 951 | MACRO {ijimw} {"Int. J. Infrared Millimeter Waves"} | 
| 952 | MACRO {ip} {"Infrared Phys."} | 
| 953 | MACRO {jap} {"J. Appl. Phys."} | 
| 954 | MACRO {jcp} {"J. Comput. Phys."} | 
| 955 | MACRO {jetp} {"Sov. Phys.-JETP"} | 
| 956 | MACRO {jfe} {"J. Fusion Energy"} | 
| 957 | MACRO {jfm} {"J. Fluid Mech."} | 
| 958 | MACRO {jgr} {"J. Geophys. Res."} | 
| 959 | MACRO {jmp} {"J. Math. Phys."} | 
| 960 | MACRO {jne} {"J. Nucl. Energy"} | 
| 961 | MACRO {jnec} {"J. Nucl. Energy, Part C"} | 
| 962 | MACRO {jnm} {"J. Nucl. Mater."} | 
| 963 | MACRO {josa} {"J. Opt. Soc. Am."} | 
| 964 | MACRO {jpp} {"J. Plasma Phys."} | 
| 965 | MACRO {jpsj} {"J. Phys. Soc. Jpn"} | 
| 966 | MACRO {jvst} {"J. Vac. Sci. Technol."} | 
| 967 | MACRO {nedf} {"Nucl. Eng. Design/Fusion"} | 
| 968 | MACRO {nf} {"Nucl. Fusion"} | 
| 969 | MACRO {nim} {"Nucl. Instrum. Methods"} | 
| 970 | MACRO {nimpr} {"Nucl. Instrum. Methods Phys. Research"} | 
| 971 | MACRO {nt/f} {"Nucl. Tech./Fusion"} | 
| 972 | MACRO {pf} {"Phys. Fluids"} | 
| 973 | MACRO {pfa} {"Phys. Fluids A"} | 
| 974 | MACRO {pfb} {"Phys. Fluids B"} | 
| 975 | MACRO {pl} {"Phys. Lett."} | 
| 976 | MACRO {pla} {"Phys. Lett. A"} | 
| 977 | MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"} | 
| 978 | MACRO {pp} {"Plasma Phys."} | 
| 979 | MACRO {ppcf} {"Plasma Phys. Controlled Fusion"} | 
| 980 | MACRO {prl} {"Phys. Rev. Lett."} | 
| 981 | MACRO {pr} {"Phys. Rev."} | 
| 982 | MACRO {pra} {"Phys. Rev. A"} | 
| 983 | MACRO {ps} {"Physica Scripta"} | 
| 984 | MACRO {rmp} {"Rev. Mod. Phys."} | 
| 985 | MACRO {rsi} {"Rev. Sci. Instrum."} | 
| 986 | MACRO {sjpp} {"Sov. J. Plasma Phys."} | 
| 987 | MACRO {spd} {"Sov. Phys.-Dokl."} | 
| 988 | MACRO {sptp} {"Sov. Phys.-Tech. Phys."} | 
| 989 | MACRO {spu} {"Sov. Phys.-Usp."} | 
| 990 |  | 
| 991 | READ | 
| 992 |  | 
| 993 | STRINGS { longest.label } | 
| 994 |  | 
| 995 | INTEGERS { number.label longest.label.width } | 
| 996 |  | 
| 997 | FUNCTION {initialize.longest.label} | 
| 998 | { "" 'longest.label := | 
| 999 | #1 'number.label := | 
| 1000 | #0 'longest.label.width := | 
| 1001 | } | 
| 1002 |  | 
| 1003 | FUNCTION {longest.label.pass} | 
| 1004 | { number.label int.to.str$ 'label := | 
| 1005 | number.label #1 + 'number.label := | 
| 1006 | label width$ longest.label.width > | 
| 1007 | { label 'longest.label := | 
| 1008 | label width$ 'longest.label.width := | 
| 1009 | } | 
| 1010 | 'skip$ | 
| 1011 | if$ | 
| 1012 | } | 
| 1013 |  | 
| 1014 | EXECUTE {initialize.longest.label} | 
| 1015 |  | 
| 1016 | ITERATE {longest.label.pass} | 
| 1017 |  | 
| 1018 | FUNCTION {begin.bib} | 
| 1019 | { preamble$ empty$ | 
| 1020 | 'skip$ | 
| 1021 | { preamble$ write$ newline$ } | 
| 1022 | if$ | 
| 1023 | "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$ | 
| 1024 | } | 
| 1025 |  | 
| 1026 | EXECUTE {begin.bib} | 
| 1027 |  | 
| 1028 | EXECUTE {init.state.consts} | 
| 1029 |  | 
| 1030 | ITERATE {call.type$} | 
| 1031 |  | 
| 1032 | FUNCTION {end.bib} | 
| 1033 | { newline$ | 
| 1034 | "\end{thebibliography}" write$ newline$ | 
| 1035 | } | 
| 1036 |  | 
| 1037 | EXECUTE {end.bib} |