waves-16-arma

Simulation of Standing and Propagating Sea Waves with Three-Dimensional ARMA Model
git clone https://git.igankevich.com/waves-16-arma.git
Log | Files | Refs

spphys.bst (28600B)


      1 %%
      2 %% This is file `spphys.bst',
      3 %% generated with the docstrip utility.
      4 %%
      5 %% The original source files were:
      6 %%
      7 %% merlin.mbs  (with options: `seq-no,vonx,nm-init,ed-au,yr-par,xmth,jtit-x,jttl-rm,thtit-a,vol-bf,volp-com,jpg-1,pgsep-c,num-xser,ser-vol,ser-ed,jnm-x,pub-date,pre-pub,doi,edpar,edby,fin-bare,pp,ed,abr,ord,jabr,xand,url,url-blk,nfss,')
      8 %% ----------------------------------------
      9 %%********************************************************************************%%
     10 %%                                                                                %%
     11 %% For Springer physics publications. Based on the APS reference style.           %%
     12 %% Report bugs and improvements to: Joylene Vette-Guillaume or Frank Holzwarth    %%
     13 %%                                              Springer-Verlag 2004/10/15        %%
     14 %%                                                                                %%
     15 %%********************************************************************************%%
     16 %%
     17 %% Copyright 1994-2004 Patrick W Daly
     18  % ===============================================================
     19  % IMPORTANT NOTICE:
     20  % This bibliographic style (bst) file has been generated from one or
     21  % more master bibliographic style (mbs) files, listed above.
     22  %
     23  % This generated file can be redistributed and/or modified under the terms
     24  % of the LaTeX Project Public License Distributed from CTAN
     25  % archives in directory macros/latex/base/lppl.txt; either
     26  % version 1 of the License, or any later version.
     27  % ===============================================================
     28  % Name and version information of the main mbs file:
     29  % \ProvidesFile{merlin.mbs}[2004/02/09 4.13 (PWD, AO, DPC)]
     30  %   For use with BibTeX version 0.99a or later
     31  %-------------------------------------------------------------------
     32  % This bibliography style file is intended for texts in ENGLISH
     33  % This is a numerical citation style, and as such is standard LaTeX.
     34  % It requires no extra package to interface to the main text.
     35  % The form of the \bibitem entries is
     36  %   \bibitem{key}...
     37  % Usage of \cite is as follows:
     38  %   \cite{key} ==>>          [#]
     39  %   \cite[chap. 2]{key} ==>> [#, chap. 2]
     40  % where # is a number determined by the ordering in the reference list.
     41  % The order in the reference list is that by which the works were originally
     42  %   cited in the text, or that in the database.
     43  %---------------------------------------------------------------------
     44 
     45 ENTRY
     46   { address
     47     author
     48     booktitle
     49     chapter
     50     doi
     51     edition
     52     editor
     53     eid
     54     howpublished
     55     institution
     56     journal
     57     key
     58     month
     59     note
     60     number
     61     organization
     62     pages
     63     publisher
     64     school
     65     series
     66     title
     67     type
     68     url
     69     volume
     70     year
     71   }
     72   {}
     73   { label }
     74 INTEGERS { output.state before.all mid.sentence after.sentence after.block }
     75 FUNCTION {init.state.consts}
     76 { #0 'before.all :=
     77   #1 'mid.sentence :=
     78   #2 'after.sentence :=
     79   #3 'after.block :=
     80 }
     81 STRINGS { s t}
     82 FUNCTION {output.nonnull}
     83 { 's :=
     84   output.state mid.sentence =
     85     { ", " * write$ }
     86     { output.state after.block =
     87         { add.period$ write$
     88           newline$
     89           "\newblock " write$
     90         }
     91         { output.state before.all =
     92             'write$
     93             { add.period$ " " * write$ }
     94           if$
     95         }
     96       if$
     97       mid.sentence 'output.state :=
     98     }
     99   if$
    100   s
    101 }
    102 FUNCTION {output}
    103 { duplicate$ empty$
    104     'pop$
    105     'output.nonnull
    106   if$
    107 }
    108 FUNCTION {output.check}
    109 { 't :=
    110   duplicate$ empty$
    111     { pop$ "empty " t * " in " * cite$ * warning$ }
    112     'output.nonnull
    113   if$
    114 }
    115 FUNCTION {fin.entry}
    116 { duplicate$ empty$
    117     'pop$
    118     'write$
    119   if$
    120   newline$
    121 }
    122 
    123 FUNCTION {new.block}
    124 { output.state before.all =
    125     'skip$
    126     { after.block 'output.state := }
    127   if$
    128 }
    129 FUNCTION {new.sentence}
    130 { output.state after.block =
    131     'skip$
    132     { output.state before.all =
    133         'skip$
    134         { after.sentence 'output.state := }
    135       if$
    136     }
    137   if$
    138 }
    139 FUNCTION {add.blank}
    140 {  " " * before.all 'output.state :=
    141 }
    142 
    143 FUNCTION {add.comma}
    144 { duplicate$ empty$
    145     'skip$
    146     { "," * add.blank }
    147   if$
    148 }
    149 
    150 FUNCTION {date.block}
    151 {
    152   new.block
    153 }
    154 
    155 FUNCTION {not}
    156 {   { #0 }
    157     { #1 }
    158   if$
    159 }
    160 FUNCTION {and}
    161 {   'skip$
    162     { pop$ #0 }
    163   if$
    164 }
    165 FUNCTION {or}
    166 {   { pop$ #1 }
    167     'skip$
    168   if$
    169 }
    170 FUNCTION {new.block.checka}
    171 { empty$
    172     'skip$
    173     'new.block
    174   if$
    175 }
    176 FUNCTION {new.block.checkb}
    177 { empty$
    178   swap$ empty$
    179   and
    180     'skip$
    181     'new.block
    182   if$
    183 }
    184 FUNCTION {new.sentence.checka}
    185 { empty$
    186     'skip$
    187     'new.sentence
    188   if$
    189 }
    190 FUNCTION {new.sentence.checkb}
    191 { empty$
    192   swap$ empty$
    193   and
    194     'skip$
    195     'new.sentence
    196   if$
    197 }
    198 FUNCTION {field.or.null}
    199 { duplicate$ empty$
    200     { pop$ "" }
    201     'skip$
    202   if$
    203 }
    204 FUNCTION {emphasize}
    205 { duplicate$ empty$
    206     { pop$ "" }
    207     { "\emph{" swap$ * "}" * }
    208   if$
    209 }
    210 FUNCTION {bolden}
    211 { duplicate$ empty$
    212     { pop$ "" }
    213     { "\textbf{" swap$ * "}" * }
    214   if$
    215 }
    216 FUNCTION {tie.or.space.prefix}
    217 { duplicate$ text.length$ #3 <
    218     { "~" }
    219     { " " }
    220   if$
    221   swap$
    222 }
    223 
    224 FUNCTION {capitalize}
    225 { "u" change.case$ "t" change.case$ }
    226 
    227 FUNCTION {space.word}
    228 { " " swap$ * " " * }
    229  % Here are the language-specific definitions for explicit words.
    230  % Each function has a name bbl.xxx where xxx is the English word.
    231  % The language selected here is ENGLISH
    232 FUNCTION {bbl.and}
    233 { "and"}
    234 
    235 FUNCTION {bbl.etal}
    236 { "et~al." }
    237 
    238 FUNCTION {bbl.editors}
    239 { "eds." }
    240 
    241 FUNCTION {bbl.editor}
    242 { "ed." }
    243 
    244 FUNCTION {bbl.edby}
    245 { "ed. by" }
    246 
    247 FUNCTION {bbl.edition}
    248 { "edn." }
    249 
    250 FUNCTION {bbl.volume}
    251 { "vol." }
    252 
    253 FUNCTION {bbl.of}
    254 { "of" }
    255 
    256 FUNCTION {bbl.number}
    257 { "no." }
    258 
    259 FUNCTION {bbl.nr}
    260 { "no." }
    261 
    262 FUNCTION {bbl.in}
    263 { "in" }
    264 
    265 FUNCTION {bbl.pages}
    266 { "pp." }
    267 
    268 FUNCTION {bbl.page}
    269 { "p." }
    270 
    271 FUNCTION {bbl.chapter}
    272 { "chap." }
    273 
    274 FUNCTION {bbl.techrep}
    275 { "Tech. Rep." }
    276 
    277 FUNCTION {bbl.mthesis}
    278 { "Master's thesis" }
    279 
    280 FUNCTION {bbl.phdthesis}
    281 { "Ph.D. thesis" }
    282 
    283 FUNCTION {bbl.first}
    284 { "1st" }
    285 
    286 FUNCTION {bbl.second}
    287 { "2nd" }
    288 
    289 FUNCTION {bbl.third}
    290 { "3rd" }
    291 
    292 FUNCTION {bbl.fourth}
    293 { "4th" }
    294 
    295 FUNCTION {bbl.fifth}
    296 { "5th" }
    297 
    298 FUNCTION {bbl.st}
    299 { "st" }
    300 
    301 FUNCTION {bbl.nd}
    302 { "nd" }
    303 
    304 FUNCTION {bbl.rd}
    305 { "rd" }
    306 
    307 FUNCTION {bbl.th}
    308 { "th" }
    309 
    310 MACRO {jan} {"Jan."}
    311 
    312 MACRO {feb} {"Feb."}
    313 
    314 MACRO {mar} {"Mar."}
    315 
    316 MACRO {apr} {"Apr."}
    317 
    318 MACRO {may} {"May"}
    319 
    320 MACRO {jun} {"Jun."}
    321 
    322 MACRO {jul} {"Jul."}
    323 
    324 MACRO {aug} {"Aug."}
    325 
    326 MACRO {sep} {"Sep."}
    327 
    328 MACRO {oct} {"Oct."}
    329 
    330 MACRO {nov} {"Nov."}
    331 
    332 MACRO {dec} {"Dec."}
    333 
    334 FUNCTION {eng.ord}
    335 { duplicate$ "1" swap$ *
    336   #-2 #1 substring$ "1" =
    337      { bbl.th * }
    338      { duplicate$ #-1 #1 substring$
    339        duplicate$ "1" =
    340          { pop$ bbl.st * }
    341          { duplicate$ "2" =
    342              { pop$ bbl.nd * }
    343              { "3" =
    344                  { bbl.rd * }
    345                  { bbl.th * }
    346                if$
    347              }
    348            if$
    349           }
    350        if$
    351      }
    352    if$
    353 }
    354 
    355 MACRO {acmcs} {"ACM Comput. Surv."}
    356 
    357 MACRO {acta} {"Acta Inf."}
    358 
    359 MACRO {cacm} {"Commun. ACM"}
    360 
    361 MACRO {ibmjrd} {"IBM J. Res. Dev."}
    362 
    363 MACRO {ibmsj} {"IBM Syst.~J."}
    364 
    365 MACRO {ieeese} {"IEEE Trans. Software Eng."}
    366 
    367 MACRO {ieeetc} {"IEEE Trans. Comput."}
    368 
    369 MACRO {ieeetcad}
    370  {"IEEE Trans. Comput. Aid. Des."}
    371 
    372 MACRO {ipl} {"Inf. Process. Lett."}
    373 
    374 MACRO {jacm} {"J.~ACM"}
    375 
    376 MACRO {jcss} {"J.~Comput. Syst. Sci."}
    377 
    378 MACRO {scp} {"Sci. Comput. Program."}
    379 
    380 MACRO {sicomp} {"SIAM J. Comput."}
    381 
    382 MACRO {tocs} {"ACM Trans. Comput. Syst."}
    383 
    384 MACRO {tods} {"ACM Trans. Database Syst."}
    385 
    386 MACRO {tog} {"ACM Trans. Graphic."}
    387 
    388 MACRO {toms} {"ACM Trans. Math. Software"}
    389 
    390 MACRO {toois} {"ACM Trans. Office Inf. Syst."}
    391 
    392 MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
    393 
    394 MACRO {tcs} {"Theor. Comput. Sci."}
    395 
    396 FUNCTION {bibinfo.check}
    397 { swap$
    398   duplicate$ missing$
    399     {
    400       pop$ pop$
    401       ""
    402     }
    403     { duplicate$ empty$
    404         {
    405           swap$ pop$
    406         }
    407         { swap$
    408           pop$
    409         }
    410       if$
    411     }
    412   if$
    413 }
    414 FUNCTION {bibinfo.warn}
    415 { swap$
    416   duplicate$ missing$
    417     {
    418       swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
    419       ""
    420     }
    421     { duplicate$ empty$
    422         {
    423           swap$ "empty " swap$ * " in " * cite$ * warning$
    424         }
    425         { swap$
    426           pop$
    427         }
    428       if$
    429     }
    430   if$
    431 }
    432 FUNCTION {format.url}
    433 { url empty$
    434     { "" }
    435     { "\urlprefix\url{" url * "}" * }
    436   if$
    437 }
    438 
    439 STRINGS  { bibinfo}
    440 INTEGERS { nameptr namesleft numnames }
    441 
    442 FUNCTION {format.names}
    443 { 'bibinfo :=
    444   duplicate$ empty$ 'skip$ {
    445   's :=
    446   "" 't :=
    447   #1 'nameptr :=
    448   s num.names$ 'numnames :=
    449   numnames 'namesleft :=
    450     { namesleft #0 > }
    451     { s nameptr
    452       "{f{.}.~}{vv~}{ll}{, jj}"
    453       format.name$
    454       bibinfo bibinfo.check
    455       't :=
    456       nameptr #1 >
    457         {
    458           namesleft #1 >
    459             { ", " * t * }
    460             {
    461               "," *
    462               s nameptr "{ll}" format.name$ duplicate$ "others" =
    463                 { 't := }
    464                 { pop$ }
    465               if$
    466               t "others" =
    467                 {
    468                   " " * bbl.etal *
    469                 }
    470                 { " " * t * }
    471               if$
    472             }
    473           if$
    474         }
    475         't
    476       if$
    477       nameptr #1 + 'nameptr :=
    478       namesleft #1 - 'namesleft :=
    479     }
    480   while$
    481   } if$
    482 }
    483 FUNCTION {format.names.ed}
    484 {
    485   format.names
    486 }
    487 FUNCTION {format.authors}
    488 { author "author" format.names
    489 }
    490 FUNCTION {get.bbl.editor}
    491 { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
    492 
    493 FUNCTION {format.editors}
    494 { editor "editor" format.names duplicate$ empty$ 'skip$
    495     {
    496       " " *
    497       get.bbl.editor
    498    "(" swap$ * ")" *
    499       *
    500     }
    501   if$
    502 }
    503 FUNCTION {format.doi}
    504 { doi "doi" bibinfo.check
    505   duplicate$ empty$ 'skip$
    506     {
    507       new.block
    508       "\doi{" swap$ * "}" *
    509     }
    510   if$
    511 }
    512 FUNCTION {format.note}
    513 {
    514  note empty$
    515     { "" }
    516     { note #1 #1 substring$
    517       duplicate$ "{" =
    518         'skip$
    519         { output.state mid.sentence =
    520           { "l" }
    521           { "u" }
    522         if$
    523         change.case$
    524         }
    525       if$
    526       note #2 global.max$ substring$ * "note" bibinfo.check
    527     }
    528   if$
    529 }
    530 
    531 FUNCTION {format.title}
    532 { title
    533   duplicate$ empty$ 'skip$
    534     { "t" change.case$ }
    535   if$
    536   "title" bibinfo.check
    537 }
    538 FUNCTION {output.bibitem}
    539 { newline$
    540   "\bibitem{" write$
    541   cite$ write$
    542   "}" write$
    543   newline$
    544   ""
    545   before.all 'output.state :=
    546 }
    547 
    548 FUNCTION {if.digit}
    549 { duplicate$ "0" =
    550   swap$ duplicate$ "1" =
    551   swap$ duplicate$ "2" =
    552   swap$ duplicate$ "3" =
    553   swap$ duplicate$ "4" =
    554   swap$ duplicate$ "5" =
    555   swap$ duplicate$ "6" =
    556   swap$ duplicate$ "7" =
    557   swap$ duplicate$ "8" =
    558   swap$ "9" = or or or or or or or or or
    559 }
    560 FUNCTION {n.separate}
    561 { 't :=
    562   ""
    563   #0 'numnames :=
    564   { t empty$ not }
    565   { t #-1 #1 substring$ if.digit
    566       { numnames #1 + 'numnames := }
    567       { #0 'numnames := }
    568     if$
    569     t #-1 #1 substring$ swap$ *
    570     t #-2 global.max$ substring$ 't :=
    571     numnames #5 =
    572       { duplicate$ #1 #2 substring$ swap$
    573         #3 global.max$ substring$
    574         "," swap$ * *
    575       }
    576       'skip$
    577     if$
    578   }
    579   while$
    580 }
    581 FUNCTION {n.dashify}
    582 {
    583   n.separate
    584   't :=
    585   ""
    586     { t empty$ not }
    587     { t #1 #1 substring$ "-" =
    588         { t #1 #2 substring$ "--" = not
    589             { "--" *
    590               t #2 global.max$ substring$ 't :=
    591             }
    592             {   { t #1 #1 substring$ "-" = }
    593                 { "-" *
    594                   t #2 global.max$ substring$ 't :=
    595                 }
    596               while$
    597             }
    598           if$
    599         }
    600         { t #1 #1 substring$ *
    601           t #2 global.max$ substring$ 't :=
    602         }
    603       if$
    604     }
    605   while$
    606 }
    607 
    608 FUNCTION {word.in}
    609 { bbl.in
    610   " " * }
    611 
    612 FUNCTION {format.date}
    613 {
    614   ""
    615   duplicate$ empty$
    616   year  "year"  bibinfo.check duplicate$ empty$
    617     { swap$ 'skip$
    618         { "there's a month but no year in " cite$ * warning$ }
    619       if$
    620       *
    621     }
    622     { swap$ 'skip$
    623         {
    624           swap$
    625           " " * swap$
    626         }
    627       if$
    628       *
    629     }
    630   if$
    631   duplicate$ empty$
    632     'skip$
    633     {
    634       before.all 'output.state :=
    635     " (" swap$ * ")" *
    636     }
    637   if$
    638 }
    639 FUNCTION {format.btitle}
    640 { title "title" bibinfo.check
    641   duplicate$ empty$ 'skip$
    642     {
    643       emphasize
    644     }
    645   if$
    646 }
    647 FUNCTION {either.or.check}
    648 { empty$
    649     'pop$
    650     { "can't use both " swap$ * " fields in " * cite$ * warning$ }
    651   if$
    652 }
    653 FUNCTION {format.bvolume}
    654 { volume empty$
    655     { "" }
    656     { bbl.volume volume tie.or.space.prefix
    657       "volume" bibinfo.check * *
    658       series "series" bibinfo.check
    659       duplicate$ empty$ 'pop$
    660         { emphasize ", " * swap$ * }
    661       if$
    662       "volume and number" number either.or.check
    663     }
    664   if$
    665 }
    666 FUNCTION {format.number.series}
    667 { volume empty$
    668     { number empty$
    669         { series field.or.null }
    670         { series empty$
    671             { number "number" bibinfo.check }
    672             { output.state mid.sentence =
    673                 { bbl.number }
    674                 { bbl.number capitalize }
    675               if$
    676               number tie.or.space.prefix "number" bibinfo.check * *
    677               bbl.in space.word *
    678               series "series" bibinfo.check *
    679             }
    680           if$
    681         }
    682       if$
    683     }
    684     { "" }
    685   if$
    686 }
    687 FUNCTION {is.num}
    688 { chr.to.int$
    689   duplicate$ "0" chr.to.int$ < not
    690   swap$ "9" chr.to.int$ > not and
    691 }
    692 
    693 FUNCTION {extract.num}
    694 { duplicate$ 't :=
    695   "" 's :=
    696   { t empty$ not }
    697   { t #1 #1 substring$
    698     t #2 global.max$ substring$ 't :=
    699     duplicate$ is.num
    700       { s swap$ * 's := }
    701       { pop$ "" 't := }
    702     if$
    703   }
    704   while$
    705   s empty$
    706     'skip$
    707     { pop$ s }
    708   if$
    709 }
    710 
    711 FUNCTION {convert.edition}
    712 { extract.num "l" change.case$ 's :=
    713   s "first" = s "1" = or
    714     { bbl.first 't := }
    715     { s "second" = s "2" = or
    716         { bbl.second 't := }
    717         { s "third" = s "3" = or
    718             { bbl.third 't := }
    719             { s "fourth" = s "4" = or
    720                 { bbl.fourth 't := }
    721                 { s "fifth" = s "5" = or
    722                     { bbl.fifth 't := }
    723                     { s #1 #1 substring$ is.num
    724                         { s eng.ord 't := }
    725                         { edition 't := }
    726                       if$
    727                     }
    728                   if$
    729                 }
    730               if$
    731             }
    732           if$
    733         }
    734       if$
    735     }
    736   if$
    737   t
    738 }
    739 
    740 FUNCTION {format.edition}
    741 { edition duplicate$ empty$ 'skip$
    742     {
    743       convert.edition
    744       output.state mid.sentence =
    745         { "l" }
    746         { "t" }
    747       if$ change.case$
    748       "edition" bibinfo.check
    749       " " * bbl.edition *
    750     }
    751   if$
    752 }
    753 INTEGERS { multiresult }
    754 FUNCTION {multi.page.check}
    755 { 't :=
    756   #0 'multiresult :=
    757     { multiresult not
    758       t empty$ not
    759       and
    760     }
    761     { t #1 #1 substring$
    762       duplicate$ "-" =
    763       swap$ duplicate$ "," =
    764       swap$ "+" =
    765       or or
    766         { #1 'multiresult := }
    767         { t #2 global.max$ substring$ 't := }
    768       if$
    769     }
    770   while$
    771   multiresult
    772 }
    773 FUNCTION {format.pages}
    774 { pages duplicate$ empty$ 'skip$
    775     { duplicate$ multi.page.check
    776         {
    777           bbl.pages swap$
    778           n.dashify
    779         }
    780         {
    781           bbl.page swap$
    782         }
    783       if$
    784       tie.or.space.prefix
    785       "pages" bibinfo.check
    786       * *
    787     }
    788   if$
    789 }
    790 FUNCTION {first.page}
    791 { 't :=
    792   ""
    793     {  t empty$ not t #1 #1 substring$ "-" = not and }
    794     { t #1 #1 substring$ *
    795       t #2 global.max$ substring$ 't :=
    796     }
    797   while$
    798 }
    799 
    800 FUNCTION {format.journal.pages}
    801 { pages duplicate$ empty$ 'pop$
    802     { swap$ duplicate$ empty$
    803         { pop$ pop$ format.pages }
    804         {
    805           ", " *
    806           swap$
    807           first.page
    808           "pages" bibinfo.check
    809           *
    810         }
    811       if$
    812     }
    813   if$
    814 }
    815 FUNCTION {format.journal.eid}
    816 { eid "eid" bibinfo.check
    817   duplicate$ empty$ 'pop$
    818     { swap$ duplicate$ empty$ 'skip$
    819       {
    820           ", " *
    821       }
    822       if$
    823       swap$ *
    824     }
    825   if$
    826 }
    827 FUNCTION {format.vol.num.pages}
    828 { volume field.or.null
    829   duplicate$ empty$ 'skip$
    830     {
    831       "volume" bibinfo.check
    832     }
    833   if$
    834   bolden
    835   number "number" bibinfo.check duplicate$ empty$ 'skip$
    836     {
    837       swap$ duplicate$ empty$
    838         { "there's a number but no volume in " cite$ * warning$ }
    839         'skip$
    840       if$
    841       swap$
    842       "(" swap$ * ")" *
    843     }
    844   if$ *
    845   eid empty$
    846     { format.journal.pages }
    847     { format.journal.eid }
    848   if$
    849 }
    850 
    851 FUNCTION {format.chapter.pages}
    852 { chapter empty$
    853     'format.pages
    854     { type empty$
    855         { bbl.chapter }
    856         { type "l" change.case$
    857           "type" bibinfo.check
    858         }
    859       if$
    860       chapter tie.or.space.prefix
    861       "chapter" bibinfo.check
    862       * *
    863       pages empty$
    864         'skip$
    865         { ", " * format.pages * }
    866       if$
    867     }
    868   if$
    869 }
    870 
    871 FUNCTION {format.booktitle}
    872 {
    873   booktitle "booktitle" bibinfo.check
    874   emphasize
    875 }
    876 FUNCTION {format.in.ed.booktitle}
    877 { format.booktitle duplicate$ empty$ 'skip$
    878     {
    879       format.bvolume duplicate$ empty$ 'pop$
    880         { ", " swap$ * * }
    881       if$
    882       editor "editor" format.names.ed duplicate$ empty$ 'pop$
    883         {
    884           bbl.edby
    885           " " * swap$ *
    886           swap$
    887           "," *
    888           " " * swap$
    889           * }
    890       if$
    891       word.in swap$ *
    892     }
    893   if$
    894 }
    895 FUNCTION {empty.misc.check}
    896 { author empty$ title empty$ howpublished empty$
    897   month empty$ year empty$ note empty$
    898   and and and and and
    899     { "all relevant fields are empty in " cite$ * warning$ }
    900     'skip$
    901   if$
    902 }
    903 FUNCTION {format.thesis.type}
    904 { type duplicate$ empty$
    905     'pop$
    906     { swap$ pop$
    907       "t" change.case$ "type" bibinfo.check
    908     }
    909   if$
    910 }
    911 FUNCTION {format.tr.number}
    912 { number "number" bibinfo.check
    913   type duplicate$ empty$
    914     { pop$ bbl.techrep }
    915     'skip$
    916   if$
    917   "type" bibinfo.check
    918   swap$ duplicate$ empty$
    919     { pop$ "t" change.case$ }
    920     { tie.or.space.prefix * * }
    921   if$
    922 }
    923 FUNCTION {format.article.crossref}
    924 {
    925   key duplicate$ empty$
    926     { pop$
    927       journal duplicate$ empty$
    928         { "need key or journal for " cite$ * " to crossref " * crossref * warning$ }
    929         { "journal" bibinfo.check emphasize word.in swap$ * }
    930       if$
    931     }
    932     { word.in swap$ * " " *}
    933   if$
    934   " \cite{" * crossref * "}" *
    935 }
    936 FUNCTION {format.crossref.editor}
    937 { editor #1 "{vv~}{ll}" format.name$
    938   "editor" bibinfo.check
    939   editor num.names$ duplicate$
    940   #2 >
    941     { pop$
    942       "editor" bibinfo.check
    943       " " * bbl.etal
    944       *
    945     }
    946     { #2 <
    947         'skip$
    948         { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
    949             {
    950               "editor" bibinfo.check
    951               " " * bbl.etal
    952               *
    953             }
    954             {
    955              bbl.and space.word
    956               * editor #2 "{vv~}{ll}" format.name$
    957               "editor" bibinfo.check
    958               *
    959             }
    960           if$
    961         }
    962       if$
    963     }
    964   if$
    965 }
    966 FUNCTION {format.book.crossref}
    967 { volume duplicate$ empty$
    968     { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
    969       pop$ word.in
    970     }
    971     { bbl.volume
    972       capitalize
    973       swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
    974     }
    975   if$
    976   editor empty$
    977   editor field.or.null author field.or.null =
    978   or
    979     { key empty$
    980         { series empty$
    981             { "need editor, key, or series for " cite$ * " to crossref " *
    982               crossref * warning$
    983               "" *
    984             }
    985             { series emphasize * }
    986           if$
    987         }
    988         { key * }
    989       if$
    990     }
    991     { format.crossref.editor * }
    992   if$
    993   " \cite{" * crossref * "}" *
    994 }
    995 FUNCTION {format.incoll.inproc.crossref}
    996 {
    997   editor empty$
    998   editor field.or.null author field.or.null =
    999   or
   1000     { key empty$
   1001         { format.booktitle duplicate$ empty$
   1002             { "need editor, key, or booktitle for " cite$ * " to crossref " *
   1003               crossref * warning$
   1004             }
   1005             { word.in swap$ * }
   1006           if$
   1007         }
   1008         { word.in key * " " *}
   1009       if$
   1010     }
   1011     { word.in format.crossref.editor * " " *}
   1012   if$
   1013   " \cite{" * crossref * "}" *
   1014 }
   1015 FUNCTION {format.org.or.pub}
   1016 { 't :=
   1017   ""
   1018   year empty$
   1019     { "empty year in " cite$ * warning$ }
   1020     'skip$
   1021   if$
   1022   address empty$ t empty$ and
   1023   year empty$ and
   1024     'skip$
   1025     {
   1026       add.blank "(" *
   1027       t empty$
   1028         { address "address" bibinfo.check *
   1029         }
   1030         { t *
   1031           address empty$
   1032             'skip$
   1033             { ", " * address "address" bibinfo.check * }
   1034           if$
   1035         }
   1036       if$
   1037       year empty$
   1038         'skip$
   1039         { t empty$ address empty$ and
   1040             'skip$
   1041             { ", " * }
   1042           if$
   1043           year "year" bibinfo.check
   1044           *
   1045         }
   1046       if$
   1047       ")" *
   1048     }
   1049   if$
   1050 }
   1051 FUNCTION {format.publisher.address}
   1052 { publisher "publisher" bibinfo.warn format.org.or.pub
   1053 }
   1054 
   1055 FUNCTION {format.organization.address}
   1056 { organization "organization" bibinfo.check format.org.or.pub
   1057 }
   1058 
   1059 FUNCTION {article}
   1060 { output.bibitem
   1061   format.authors "author" output.check
   1062   add.comma
   1063   crossref missing$
   1064     {
   1065       journal
   1066       "journal" bibinfo.check
   1067       "journal" output.check
   1068       add.blank
   1069       format.vol.num.pages output
   1070       format.date "year" output.check
   1071     }
   1072     { format.article.crossref output.nonnull
   1073       format.pages output
   1074     }
   1075   if$
   1076   format.doi output
   1077   new.block
   1078   format.url output
   1079   new.block
   1080   format.note output
   1081   fin.entry
   1082 }
   1083 FUNCTION {book}
   1084 { output.bibitem
   1085   author empty$
   1086     { format.editors "author and editor" output.check
   1087     }
   1088     { format.authors output.nonnull
   1089       crossref missing$
   1090         { "author and editor" editor either.or.check }
   1091         'skip$
   1092       if$
   1093     }
   1094   if$
   1095   add.comma
   1096   format.btitle "title" output.check
   1097   crossref missing$
   1098     { format.bvolume output
   1099       format.edition output
   1100       new.block
   1101       format.number.series output
   1102       new.sentence
   1103       format.publisher.address output
   1104     }
   1105     {
   1106       new.block
   1107       format.book.crossref output.nonnull
   1108       format.date "year" output.check
   1109     }
   1110   if$
   1111   format.doi output
   1112   new.block
   1113   format.url output
   1114   new.block
   1115   format.note output
   1116   fin.entry
   1117 }
   1118 FUNCTION {booklet}
   1119 { output.bibitem
   1120   format.authors output
   1121   add.comma
   1122   format.title "title" output.check
   1123   new.block
   1124   howpublished "howpublished" bibinfo.check output
   1125   address "address" bibinfo.check output
   1126   format.date output
   1127   format.doi output
   1128   new.block
   1129   format.url output
   1130   new.block
   1131   format.note output
   1132   fin.entry
   1133 }
   1134 
   1135 FUNCTION {inbook}
   1136 { output.bibitem
   1137   author empty$
   1138     { format.editors "author and editor" output.check
   1139     }
   1140     { format.authors output.nonnull
   1141       crossref missing$
   1142         { "author and editor" editor either.or.check }
   1143         'skip$
   1144       if$
   1145     }
   1146   if$
   1147   add.comma
   1148   format.btitle "title" output.check
   1149   crossref missing$
   1150     {
   1151       format.publisher.address output
   1152       format.bvolume output
   1153       format.edition output
   1154       format.chapter.pages "chapter and pages" output.check
   1155       new.block
   1156       format.number.series output
   1157       new.sentence
   1158     }
   1159     {
   1160       format.chapter.pages "chapter and pages" output.check
   1161       new.block
   1162       format.book.crossref output.nonnull
   1163       format.date "year" output.check
   1164     }
   1165   if$
   1166   format.doi output
   1167   new.block
   1168   format.url output
   1169   new.block
   1170   format.note output
   1171   fin.entry
   1172 }
   1173 
   1174 FUNCTION {incollection}
   1175 { output.bibitem
   1176   format.authors "author" output.check
   1177   add.comma
   1178   crossref missing$
   1179     { format.in.ed.booktitle "booktitle" output.check
   1180       format.edition output
   1181       format.number.series output
   1182       format.publisher.address output
   1183       format.chapter.pages output
   1184       new.sentence
   1185     }
   1186     { format.incoll.inproc.crossref output.nonnull
   1187       format.chapter.pages output
   1188     }
   1189   if$
   1190   format.doi output
   1191   new.block
   1192   format.url output
   1193   new.block
   1194   format.note output
   1195   fin.entry
   1196 }
   1197 FUNCTION {inproceedings}
   1198 { output.bibitem
   1199   format.authors "author" output.check
   1200   add.comma
   1201   crossref missing$
   1202     { format.in.ed.booktitle "booktitle" output.check
   1203       new.sentence
   1204       publisher empty$
   1205         { format.organization.address output }
   1206         { organization "organization" bibinfo.check output
   1207           format.publisher.address output
   1208         }
   1209       if$
   1210       format.bvolume output
   1211       format.number.series output
   1212       format.pages output
   1213     }
   1214     { format.incoll.inproc.crossref output.nonnull
   1215       format.pages output
   1216     }
   1217   if$
   1218   format.doi output
   1219   new.block
   1220   format.url output
   1221   new.block
   1222   format.note output
   1223   fin.entry
   1224 }
   1225 FUNCTION {conference} { inproceedings }
   1226 FUNCTION {manual}
   1227 { output.bibitem
   1228   author empty$
   1229     { organization "organization" bibinfo.check
   1230       duplicate$ empty$ 'pop$
   1231         { output
   1232           address "address" bibinfo.check output
   1233         }
   1234       if$
   1235     }
   1236     { format.authors output.nonnull }
   1237   if$
   1238   add.comma
   1239   format.btitle "title" output.check
   1240   author empty$
   1241     { organization empty$
   1242         {
   1243           address new.block.checka
   1244           address "address" bibinfo.check output
   1245         }
   1246         'skip$
   1247       if$
   1248     }
   1249     {
   1250       organization address new.block.checkb
   1251       organization "organization" bibinfo.check output
   1252       address "address" bibinfo.check output
   1253     }
   1254   if$
   1255   format.edition output
   1256   format.date output
   1257   format.doi output
   1258   new.block
   1259   format.url output
   1260   new.block
   1261   format.note output
   1262   fin.entry
   1263 }
   1264 
   1265 FUNCTION {mastersthesis}
   1266 { output.bibitem
   1267   format.authors "author" output.check
   1268   add.comma
   1269   format.title
   1270   "title" output.check
   1271   new.block
   1272   bbl.mthesis format.thesis.type output.nonnull
   1273   school "school" bibinfo.warn output
   1274   address "address" bibinfo.check output
   1275   format.date "year" output.check
   1276   format.doi output
   1277   new.block
   1278   format.url output
   1279   new.block
   1280   format.note output
   1281   fin.entry
   1282 }
   1283 
   1284 FUNCTION {misc}
   1285 { output.bibitem
   1286   format.authors output
   1287   title howpublished new.block.checkb
   1288   format.title output
   1289   howpublished new.block.checka
   1290   howpublished "howpublished" bibinfo.check output
   1291   format.date output
   1292   format.doi output
   1293   new.block
   1294   format.url output
   1295   new.block
   1296   format.note output
   1297   fin.entry
   1298   empty.misc.check
   1299 }
   1300 FUNCTION {phdthesis}
   1301 { output.bibitem
   1302   format.authors "author" output.check
   1303   add.comma
   1304   format.title
   1305   "title" output.check
   1306   new.block
   1307   bbl.phdthesis format.thesis.type output.nonnull
   1308   school "school" bibinfo.warn output
   1309   address "address" bibinfo.check output
   1310   format.date "year" output.check
   1311   format.doi output
   1312   new.block
   1313   format.url output
   1314   new.block
   1315   format.note output
   1316   fin.entry
   1317 }
   1318 
   1319 FUNCTION {proceedings}
   1320 { output.bibitem
   1321   editor empty$
   1322     { organization "organization" bibinfo.check output
   1323     }
   1324     { format.editors output.nonnull }
   1325   if$
   1326   new.block
   1327   format.btitle "title" output.check
   1328   format.bvolume output
   1329   format.number.series output
   1330   editor empty$
   1331     { publisher empty$
   1332         'skip$
   1333         {
   1334           new.sentence
   1335           format.publisher.address output
   1336         }
   1337       if$
   1338     }
   1339     { publisher empty$
   1340         {
   1341           new.sentence
   1342           format.organization.address output }
   1343         {
   1344           new.sentence
   1345           organization "organization" bibinfo.check output
   1346           format.publisher.address output
   1347         }
   1348       if$
   1349      }
   1350   if$
   1351   format.doi output
   1352   new.block
   1353   format.url output
   1354   new.block
   1355   format.note output
   1356   fin.entry
   1357 }
   1358 
   1359 FUNCTION {techreport}
   1360 { output.bibitem
   1361   format.authors "author" output.check
   1362   add.comma
   1363   format.title
   1364   "title" output.check
   1365   new.block
   1366   format.tr.number output.nonnull
   1367   institution "institution" bibinfo.warn output
   1368   address "address" bibinfo.check output
   1369   format.date "year" output.check
   1370   format.doi output
   1371   new.block
   1372   format.url output
   1373   new.block
   1374   format.note output
   1375   fin.entry
   1376 }
   1377 
   1378 FUNCTION {unpublished}
   1379 { output.bibitem
   1380   format.authors "author" output.check
   1381   add.comma
   1382   format.title "title" output.check
   1383   format.date output
   1384   format.doi output
   1385   new.block
   1386   format.url output
   1387   new.block
   1388   format.note "note" output.check
   1389   fin.entry
   1390 }
   1391 
   1392 FUNCTION {default.type} { misc }
   1393 READ
   1394 STRINGS { longest.label }
   1395 INTEGERS { number.label longest.label.width }
   1396 FUNCTION {initialize.longest.label}
   1397 { "" 'longest.label :=
   1398   #1 'number.label :=
   1399   #0 'longest.label.width :=
   1400 }
   1401 FUNCTION {longest.label.pass}
   1402 { number.label int.to.str$ 'label :=
   1403   number.label #1 + 'number.label :=
   1404   label width$ longest.label.width >
   1405     { label 'longest.label :=
   1406       label width$ 'longest.label.width :=
   1407     }
   1408     'skip$
   1409   if$
   1410 }
   1411 EXECUTE {initialize.longest.label}
   1412 ITERATE {longest.label.pass}
   1413 FUNCTION {begin.bib}
   1414 { preamble$ empty$
   1415     'skip$
   1416     { preamble$ write$ newline$ }
   1417   if$
   1418   "\begin{thebibliography}{"  longest.label  * "}" *
   1419   write$ newline$
   1420   "\providecommand{\url}[1]{{#1}}"
   1421   write$ newline$
   1422   "\providecommand{\urlprefix}{URL }"
   1423   write$ newline$
   1424   "\expandafter\ifx\csname urlstyle\endcsname\relax"
   1425   write$ newline$
   1426   "  \providecommand{\doi}[1]{DOI \discretionary{}{}{}#1}\else"
   1427   write$ newline$
   1428   "  \providecommand{\doi}{DOI \discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi"
   1429   write$ newline$
   1430 }
   1431 EXECUTE {begin.bib}
   1432 EXECUTE {init.state.consts}
   1433 ITERATE {call.type$}
   1434 FUNCTION {end.bib}
   1435 { newline$
   1436   "\end{thebibliography}" write$ newline$
   1437 }
   1438 EXECUTE {end.bib}
   1439 %% End of customized bst file
   1440 %%
   1441 %% End of file `spphys.bst'.
   1442