ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/electrostaticMethodsPaper/jcp2.bst
Revision: 2617
Committed: Tue Mar 14 16:22:54 2006 UTC (18 years, 5 months ago) by gezelter
File size: 22724 byte(s)
Log Message:
we're writing a paper.  What more do you want?

File Contents

# User Rev Content
1 gezelter 2617 %%
2     %% This is file `jcp.bst',
3     %% generated with the docstrip utility.
4     %%
5     %% The original source files were:
6     %%
7     %% merlin.mbs (with options: `,seq-no,nm-init,yr-par,jtit-x,vol-bf,vnum-x,volp-com,jpg-1,jnm-x,pub-date,blk-com,jabr,etal-it')
8     %% ----------------------------------------
9     %% *** Journal of Chemical Physics ***
10     %%
11     %-------------------------------------------------------------------
12     % The original source file contains the following version information:
13     % \ProvidesFile{merlin.mbs}[1996/12/16 3.82 (PWD)]
14     %
15     % NOTICE:
16     % This file may be used for non-profit purposes.
17     % It may not be distributed in exchange for money,
18     % other than distribution costs.
19     %
20     % The author provides it `as is' and does not guarantee it in any way.
21     %
22     % Copyright (C) 1994, 1995, 1996 Patrick W. Daly
23     %-------------------------------------------------------------------
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 a numerical citation style, and as such is standard LaTeX.
28     % It requires no extra package to interface to the main text.
29     % The form of the \bibitem entries is
30     % \bibitem{key}...
31     % Usage of \cite is as follows:
32     % \cite{key} ==>> [#]
33     % \cite[chap. 2]{key} ==>> [#, chap. 2]
34     % where # is a number determined by the ordering in the reference list.
35     % The order in the reference list is that by which the works were originally
36     % cited in the text, or that in the database.
37     %---------------------------------------------------------------------
38    
39     ENTRY
40     { address
41     author
42     booktitle
43     chapter
44     edition
45     editor
46     howpublished
47     institution
48     journal
49     key
50     month
51     note
52     number
53     organization
54     pages
55     publisher
56     school
57     series
58     title
59     type
60     volume
61     year
62     }
63     {}
64     { label }
65    
66     INTEGERS { output.state before.all mid.sentence after.sentence after.block }
67    
68     FUNCTION {init.state.consts}
69     { #0 'before.all :=
70     #1 'mid.sentence :=
71     #2 'after.sentence :=
72     #3 'after.block :=
73     }
74    
75     STRINGS { s t }
76    
77     FUNCTION {output.nonnull}
78     { 's :=
79     output.state mid.sentence =
80     { ", " * write$ }
81     { output.state after.block =
82     { add.period$ write$
83     newline$
84     "\newblock " write$
85     }
86     { output.state before.all =
87     'write$
88     { add.period$ " " * write$ }
89     if$
90     }
91     if$
92     mid.sentence 'output.state :=
93     }
94     if$
95     s
96     }
97    
98     FUNCTION {output}
99     { duplicate$ empty$
100     'pop$
101     'output.nonnull
102     if$
103     }
104    
105     FUNCTION {output.check}
106     { 't :=
107     duplicate$ empty$
108     { pop$ "empty " t * " in " * cite$ * warning$ }
109     'output.nonnull
110     if$
111     }
112    
113     FUNCTION {fin.entry}
114     { add.period$
115     write$
116     newline$
117     }
118    
119     FUNCTION {new.block}
120     { output.state before.all =
121     'skip$
122     { after.block 'output.state := }
123     if$
124     }
125    
126     FUNCTION {new.sentence}
127     { output.state after.block =
128     'skip$
129     { output.state before.all =
130     'skip$
131     { after.sentence 'output.state := }
132     if$
133     }
134     if$
135     }
136    
137     FUNCTION {add.blank}
138     { " " * before.all 'output.state :=
139     }
140    
141     FUNCTION {date.block}
142     {
143     skip$
144     }
145    
146     FUNCTION {not}
147     { { #0 }
148     { #1 }
149     if$
150     }
151    
152     FUNCTION {and}
153     { 'skip$
154     { pop$ #0 }
155     if$
156     }
157    
158     FUNCTION {or}
159     { { pop$ #1 }
160     'skip$
161     if$
162     }
163    
164     FUNCTION {non.stop}
165     { duplicate$
166     "}" * add.period$
167     #-1 #1 substring$ "." =
168     }
169    
170     FUNCTION {new.block.checka}
171     { empty$
172     'skip$
173     'new.block
174     if$
175     }
176    
177     FUNCTION {new.block.checkb}
178     { empty$
179     swap$ empty$
180     and
181     'skip$
182     'new.block
183     if$
184     }
185    
186     FUNCTION {new.sentence.checka}
187     { empty$
188     'skip$
189     'new.sentence
190     if$
191     }
192    
193     FUNCTION {new.sentence.checkb}
194     { empty$
195     swap$ empty$
196     and
197     'skip$
198     'new.sentence
199     if$
200     }
201    
202     FUNCTION {field.or.null}
203     { duplicate$ empty$
204     { pop$ "" }
205     'skip$
206     if$
207     }
208    
209     FUNCTION {emphasize}
210     { duplicate$ empty$
211     { pop$ "" }
212     { "{\em " swap$ * "\/}" * }
213     if$
214     }
215    
216     FUNCTION {bolden}
217     { duplicate$ empty$
218     { pop$ "" }
219     { "{\bf " swap$ * "}" * }
220     if$
221     }
222    
223     FUNCTION {capitalize}
224     { "u" change.case$ "t" change.case$ }
225    
226     FUNCTION {space.word}
227     { " " swap$ * " " * }
228    
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.editors}
236     { "editors" }
237    
238     FUNCTION {bbl.editor}
239     { "editor" }
240    
241     FUNCTION {bbl.edby}
242     { "edited by" }
243    
244     FUNCTION {bbl.edition}
245     { "edition" }
246    
247     FUNCTION {bbl.volume}
248     { "volume" }
249    
250     FUNCTION {bbl.of}
251     { "of" }
252    
253     FUNCTION {bbl.number}
254     { "number" }
255    
256     FUNCTION {bbl.nr}
257     { "no." }
258    
259     FUNCTION {bbl.in}
260     { "in" }
261    
262     FUNCTION {bbl.pages}
263     { "pages" }
264    
265     FUNCTION {bbl.page}
266     { "page" }
267    
268     FUNCTION {bbl.chapter}
269     { "chapter" }
270    
271     FUNCTION {bbl.techrep}
272     { "Technical Report" }
273    
274     FUNCTION {bbl.mthesis}
275     { "Master's thesis" }
276    
277     FUNCTION {bbl.phdthesis}
278     { "Ph.D. thesis" }
279    
280     FUNCTION {bbl.first}
281     { "First" }
282    
283     FUNCTION {bbl.second}
284     { "Second" }
285    
286     FUNCTION {bbl.third}
287     { "Third" }
288    
289     FUNCTION {bbl.fourth}
290     { "Fourth" }
291    
292     FUNCTION {bbl.fifth}
293     { "Fifth" }
294    
295     FUNCTION {bbl.st}
296     { "st" }
297    
298     FUNCTION {bbl.nd}
299     { "nd" }
300    
301     FUNCTION {bbl.rd}
302     { "rd" }
303    
304     FUNCTION {bbl.th}
305     { "th" }
306    
307     MACRO {jan} {"January"}
308    
309     MACRO {feb} {"February"}
310    
311     MACRO {mar} {"March"}
312    
313     MACRO {apr} {"April"}
314    
315     MACRO {may} {"May"}
316    
317     MACRO {jun} {"June"}
318    
319     MACRO {jul} {"July"}
320    
321     MACRO {aug} {"August"}
322    
323     MACRO {sep} {"September"}
324    
325     MACRO {oct} {"October"}
326    
327     MACRO {nov} {"November"}
328    
329     MACRO {dec} {"December"}
330    
331     FUNCTION {eng.ord}
332     { duplicate$ "1" swap$ *
333     #-2 #1 substring$ "1" =
334     { bbl.th * }
335     { duplicate$ #-1 #1 substring$
336     duplicate$ "1" =
337     { pop$ bbl.st * }
338     { duplicate$ "2" =
339     { pop$ bbl.nd * }
340     { "3" =
341     { bbl.rd * }
342     { bbl.th * }
343     if$
344     }
345     if$
346     }
347     if$
348     }
349     if$
350     }
351    
352     MACRO {acmcs} {"ACM Comput. Surv."}
353    
354     MACRO {acta} {"Acta Inf."}
355    
356     MACRO {cacm} {"Commun. ACM"}
357    
358     MACRO {ibmjrd} {"IBM J. Res. Dev."}
359    
360     MACRO {ibmsj} {"IBM Syst.~J."}
361    
362     MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
363    
364     MACRO {ieeetc} {"IEEE Trans. Comput."}
365    
366     MACRO {ieeetcad}
367     {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
368    
369     MACRO {ipl} {"Inf. Process. Lett."}
370    
371     MACRO {jacm} {"J.~ACM"}
372    
373     MACRO {jcss} {"J.~Comput. Syst. Sci."}
374    
375     MACRO {scp} {"Sci. Comput. Programming"}
376    
377     MACRO {sicomp} {"SIAM J. Comput."}
378    
379     MACRO {tocs} {"ACM Trans. Comput. Syst."}
380    
381     MACRO {tods} {"ACM Trans. Database Syst."}
382    
383     MACRO {tog} {"ACM Trans. Gr."}
384    
385     MACRO {toms} {"ACM Trans. Math. Softw."}
386    
387     MACRO {toois} {"ACM Trans. Office Inf. Syst."}
388    
389     MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
390    
391     MACRO {tcs} {"Theoretical Comput. Sci."}
392    
393     INTEGERS { nameptr namesleft numnames }
394    
395     FUNCTION {format.names}
396     { 's :=
397     #1 'nameptr :=
398     s num.names$ 'numnames :=
399     numnames 'namesleft :=
400     { namesleft #0 > }
401     { s nameptr
402     "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
403     nameptr #1 >
404     {
405     namesleft #1 >
406     { ", " * t * }
407     {
408     numnames #2 >
409     { "," * }
410     'skip$
411     if$
412     t "others" =
413     { " " * "et~al." emphasize * }
414     { bbl.and space.word * t * }
415     if$
416     }
417     if$
418     }
419     't
420     if$
421     nameptr #1 + 'nameptr :=
422     namesleft #1 - 'namesleft :=
423     }
424     while$
425     }
426    
427     FUNCTION {format.names.ed}
428     { 's :=
429     #1 'nameptr :=
430     s num.names$ 'numnames :=
431     numnames 'namesleft :=
432     { namesleft #0 > }
433     { s nameptr
434     "{f.~}{vv~}{ll}{, jj}"
435     format.name$ 't :=
436     nameptr #1 >
437     {
438     namesleft #1 >
439     { ", " * t * }
440     {
441     numnames #2 >
442     { "," * }
443     'skip$
444     if$
445     t "others" =
446     { " " * "et~al." emphasize * }
447     { bbl.and space.word * t * }
448     if$
449     }
450     if$
451     }
452     't
453     if$
454     nameptr #1 + 'nameptr :=
455     namesleft #1 - 'namesleft :=
456     }
457     while$
458     }
459    
460     FUNCTION {format.authors}
461     { author empty$
462     { "" }
463     {
464     author format.names
465     }
466     if$
467     }
468    
469     FUNCTION {format.editors}
470     { editor empty$
471     { "" }
472     {
473     editor format.names
474     editor num.names$ #1 >
475     { ", " * bbl.editors * }
476     { ", " * bbl.editor * }
477     if$
478     }
479     if$
480     }
481    
482     FUNCTION {format.in.editors}
483     { editor empty$
484     { "" }
485     { editor format.names.ed
486     editor num.names$ #1 >
487     { ", " * bbl.editors * }
488     { ", " * bbl.editor * }
489     if$
490     }
491     if$
492     }
493    
494     FUNCTION {format.title}
495     { title empty$
496     { "" }
497     { title "t" change.case$
498     }
499     if$
500     }
501    
502     FUNCTION {output.bibitem}
503     { newline$
504     "\bibitem{" write$
505     cite$ write$
506     "}" write$
507     newline$
508     ""
509     before.all 'output.state :=
510     }
511    
512     FUNCTION {n.dashify}
513     { 't :=
514     ""
515     { t empty$ not }
516     { t #1 #1 substring$ "-" =
517     { t #1 #2 substring$ "--" = not
518     { "--" *
519     t #2 global.max$ substring$ 't :=
520     }
521     { { t #1 #1 substring$ "-" = }
522     { "-" *
523     t #2 global.max$ substring$ 't :=
524     }
525     while$
526     }
527     if$
528     }
529     { t #1 #1 substring$ *
530     t #2 global.max$ substring$ 't :=
531     }
532     if$
533     }
534     while$
535     }
536    
537     FUNCTION {word.in}
538     { bbl.in
539     " " * }
540    
541     FUNCTION {format.date}
542     { year empty$
543     { month empty$
544     { "" }
545     { "there's a month but no year in " cite$ * warning$
546     month
547     }
548     if$
549     }
550     { month empty$
551     'year
552     { month " " * year * }
553     if$
554     }
555     if$
556     duplicate$ empty$
557     'skip$
558     {
559     before.all 'output.state :=
560     " (" swap$ * ")" *
561     }
562     if$
563     }
564    
565     FUNCTION {format.btitle}
566     { title emphasize
567     }
568    
569     FUNCTION {tie.or.space.connect}
570     { duplicate$ text.length$ #3 <
571     { "~" }
572     { " " }
573     if$
574     swap$ * *
575     }
576    
577     FUNCTION {either.or.check}
578     { empty$
579     'pop$
580     { "can't use both " swap$ * " fields in " * cite$ * warning$ }
581     if$
582     }
583    
584     FUNCTION {format.bvolume}
585     { volume empty$
586     { "" }
587     { bbl.volume volume tie.or.space.connect
588     series empty$
589     'skip$
590     { bbl.of space.word * series emphasize * }
591     if$
592     "volume and number" number either.or.check
593     }
594     if$
595     }
596    
597     FUNCTION {format.number.series}
598     { volume empty$
599     { number empty$
600     { series field.or.null }
601     { output.state mid.sentence =
602     { bbl.number }
603     { bbl.number capitalize }
604     if$
605     number tie.or.space.connect
606     series empty$
607     { "there's a number but no series in " cite$ * warning$ }
608     { bbl.in space.word * series * }
609     if$
610     }
611     if$
612     }
613     { "" }
614     if$
615     }
616    
617     FUNCTION {is.num}
618     { chr.to.int$
619     duplicate$ "0" chr.to.int$ < not
620     swap$ "9" chr.to.int$ > not and
621     }
622    
623     FUNCTION {extract.num}
624     { duplicate$ 't :=
625     "" 's :=
626     { t empty$ not }
627     { t #1 #1 substring$
628     t #2 global.max$ substring$ 't :=
629     duplicate$ is.num
630     { s swap$ * 's := }
631     { pop$ "" 't := }
632     if$
633     }
634     while$
635     s empty$
636     'skip$
637     { pop$ s }
638     if$
639     }
640    
641     FUNCTION {convert.edition}
642     { edition extract.num "l" change.case$ 's :=
643     s "first" = s "1" = or
644     { bbl.first 't := }
645     { s "second" = s "2" = or
646     { bbl.second 't := }
647     { s "third" = s "3" = or
648     { bbl.third 't := }
649     { s "fourth" = s "4" = or
650     { bbl.fourth 't := }
651     { s "fifth" = s "5" = or
652     { bbl.fifth 't := }
653     { s #1 #1 substring$ is.num
654     { s eng.ord 't := }
655     { edition 't := }
656     if$
657     }
658     if$
659     }
660     if$
661     }
662     if$
663     }
664     if$
665     }
666     if$
667     t
668     }
669    
670     FUNCTION {format.edition}
671     { edition empty$
672     { "" }
673     { output.state mid.sentence =
674     { convert.edition "l" change.case$ " " * bbl.edition * }
675     { convert.edition "t" change.case$ " " * bbl.edition * }
676     if$
677     }
678     if$
679     }
680    
681     INTEGERS { multiresult }
682    
683     FUNCTION {multi.page.check}
684     { 't :=
685     #0 'multiresult :=
686     { multiresult not
687     t empty$ not
688     and
689     }
690     { t #1 #1 substring$
691     duplicate$ "-" =
692     swap$ duplicate$ "," =
693     swap$ "+" =
694     or or
695     { #1 'multiresult := }
696     { t #2 global.max$ substring$ 't := }
697     if$
698     }
699     while$
700     multiresult
701     }
702    
703     FUNCTION {format.pages}
704     { pages empty$
705     { "" }
706     { pages multi.page.check
707     { bbl.pages pages n.dashify tie.or.space.connect }
708     { bbl.page pages tie.or.space.connect }
709     if$
710     }
711     if$
712     }
713    
714     FUNCTION {first.page}
715     { 't :=
716     ""
717     { t empty$ not t #1 #1 substring$ "-" = not and }
718     { t #1 #1 substring$ *
719     t #2 global.max$ substring$ 't :=
720     }
721     while$
722     }
723    
724     FUNCTION {format.journal.pages}
725     {
726     pages empty$
727     'skip$
728     { duplicate$ empty$
729     { pop$ format.pages }
730     { ", " * pages first.page * }
731     if$
732     }
733     if$
734     }
735    
736     FUNCTION {format.vol.num.pages}
737     { volume field.or.null
738     bolden
739     format.journal.pages
740     }
741    
742     FUNCTION {format.chapter.pages}
743     { chapter empty$
744     'format.pages
745     { type empty$
746     { bbl.chapter }
747     { type "l" change.case$ }
748     if$
749     chapter tie.or.space.connect
750     pages empty$
751     'skip$
752     { ", " * format.pages * }
753     if$
754     }
755     if$
756     }
757    
758     FUNCTION {format.in.ed.booktitle}
759     { booktitle empty$
760     { "" }
761     { editor empty$
762     { word.in booktitle emphasize * }
763     { word.in format.in.editors * ", " *
764     booktitle emphasize * }
765     if$
766     }
767     if$
768     }
769    
770     FUNCTION {empty.misc.check}
771     { author empty$ title empty$ howpublished empty$
772     month empty$ year empty$ note empty$
773     and and and and and
774     { "all relevant fields are empty in " cite$ * warning$ }
775     'skip$
776     if$
777     }
778    
779     FUNCTION {format.thesis.type}
780     { type empty$
781     'skip$
782     { pop$
783     type "t" change.case$
784     }
785     if$
786     }
787    
788     FUNCTION {format.tr.number}
789     { type empty$
790     { bbl.techrep }
791     'type
792     if$
793     number empty$
794     { "t" change.case$ }
795     { number tie.or.space.connect }
796     if$
797     }
798    
799     FUNCTION {format.article.crossref}
800     {
801     key empty$
802     { journal empty$
803     { "need key or journal for " cite$ * " to crossref " * crossref *
804     warning$
805     ""
806     }
807     { word.in journal emphasize * }
808     if$
809     }
810     { word.in key * " " *}
811     if$
812     " \cite{" * crossref * "}" *
813     }
814    
815     FUNCTION {format.crossref.editor}
816     { editor #1 "{vv~}{ll}" format.name$
817     editor num.names$ duplicate$
818     #2 >
819     { pop$ " " * "et~al." emphasize * }
820     { #2 <
821     'skip$
822     { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
823     { " " * "et~al." emphasize * }
824     { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$ * }
825     if$
826     }
827     if$
828     }
829     if$
830     }
831    
832     FUNCTION {format.book.crossref}
833     { volume empty$
834     { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
835     word.in
836     }
837     { bbl.volume volume tie.or.space.connect
838     bbl.of space.word *
839     }
840     if$
841     editor empty$
842     editor field.or.null author field.or.null =
843     or
844     { key empty$
845     { series empty$
846     { "need editor, key, or series for " cite$ * " to crossref " *
847     crossref * warning$
848     "" *
849     }
850     { series emphasize * }
851     if$
852     }
853     { key * }
854     if$
855     }
856     { format.crossref.editor * }
857     if$
858     " \cite{" * crossref * "}" *
859     }
860    
861     FUNCTION {format.incoll.inproc.crossref}
862     {
863     editor empty$
864     editor field.or.null author field.or.null =
865     or
866     { key empty$
867     { booktitle empty$
868     { "need editor, key, or booktitle for " cite$ * " to crossref " *
869     crossref * warning$
870     ""
871     }
872     { word.in booktitle emphasize * }
873     if$
874     }
875     { word.in key * " " *}
876     if$
877     }
878     { word.in format.crossref.editor * " " *}
879     if$
880     " \cite{" * crossref * "}" *
881     }
882    
883     FUNCTION {format.publisher}
884     { publisher empty$
885     { "empty publisher in " cite$ * warning$ }
886     'skip$
887     if$
888     ""
889     year empty$
890     { "empty year in " cite$ * warning$ }
891     'skip$
892     if$
893     address empty$ publisher empty$ and
894     year empty$ and
895     'skip$
896     {
897     add.blank "(" *
898     publisher empty$
899     { address empty$
900     'skip$
901     { address * }
902     if$
903     }
904     { publisher *
905     address empty$
906     'skip$
907     { ", " * address * }
908     if$
909     }
910     if$
911     year empty$
912     'skip$
913     { publisher empty$ address empty$ and
914     'skip$
915     { ", " * }
916     if$
917     year *
918     }
919     if$
920     ")" *
921     }
922     if$
923     output
924     }
925    
926     FUNCTION {article}
927     { output.bibitem
928     format.authors "author" output.check
929     crossref missing$
930     { journal
931     emphasize
932     "journal" output.check
933     add.blank
934     format.vol.num.pages output
935     format.date "year" output.check
936     }
937     { format.article.crossref output.nonnull
938     format.pages output
939     }
940     if$
941     note output
942     fin.entry
943     }
944    
945     FUNCTION {book}
946     { output.bibitem
947     author empty$
948     { format.editors "author and editor" output.check
949     }
950     { format.authors output.nonnull
951     crossref missing$
952     { "author and editor" editor either.or.check }
953     'skip$
954     if$
955     }
956     if$
957     format.btitle "title" output.check
958     crossref missing$
959     { format.bvolume output
960     format.number.series output
961     format.publisher
962     }
963     {
964     format.book.crossref output.nonnull
965     format.date "year" output.check
966     }
967     if$
968     format.edition output
969     note output
970     fin.entry
971     }
972    
973     FUNCTION {booklet}
974     { output.bibitem
975     format.authors output
976     format.title "title" output.check
977     howpublished output
978     address output
979     format.date output
980     note output
981     fin.entry
982     }
983    
984     FUNCTION {inbook}
985     { output.bibitem
986     author empty$
987     { format.editors "author and editor" output.check
988     }
989     { format.authors output.nonnull
990     crossref missing$
991     { "author and editor" editor either.or.check }
992     'skip$
993     if$
994     }
995     if$
996     format.btitle "title" output.check
997     crossref missing$
998     {
999     format.bvolume output
1000     format.chapter.pages "chapter and pages" output.check
1001     format.number.series output
1002     format.publisher
1003     }
1004     {
1005     format.chapter.pages "chapter and pages" output.check
1006     format.book.crossref output.nonnull
1007     format.date "year" output.check
1008     }
1009     if$
1010     format.edition output
1011     note output
1012     fin.entry
1013     }
1014    
1015     FUNCTION {incollection}
1016     { output.bibitem
1017     format.authors "author" output.check
1018     crossref missing$
1019     { format.in.ed.booktitle "booktitle" output.check
1020     format.bvolume output
1021     format.number.series output
1022     format.chapter.pages output
1023     format.publisher
1024     format.edition output
1025     }
1026     { format.incoll.inproc.crossref output.nonnull
1027     format.chapter.pages output
1028     }
1029     if$
1030     note output
1031     fin.entry
1032     }
1033    
1034     FUNCTION {inproceedings}
1035     { output.bibitem
1036     format.authors "author" output.check
1037     crossref missing$
1038     { format.in.ed.booktitle "booktitle" output.check
1039     format.bvolume output
1040     format.number.series output
1041     format.pages output
1042     publisher empty$
1043     { organization output
1044     address output
1045     format.date "year" output.check
1046     }
1047     { organization output
1048     format.publisher
1049     }
1050     if$
1051     }
1052     { format.incoll.inproc.crossref output.nonnull
1053     format.pages output
1054     }
1055     if$
1056     note output
1057     fin.entry
1058     }
1059    
1060     FUNCTION {conference} { inproceedings }
1061    
1062     FUNCTION {manual}
1063     { output.bibitem
1064     author empty$
1065     { organization empty$
1066     'skip$
1067     { organization output.nonnull
1068     address output
1069     }
1070     if$
1071     }
1072     { format.authors output.nonnull }
1073     if$
1074     format.btitle "title" output.check
1075     author empty$
1076     { organization empty$
1077     {
1078     address output
1079     }
1080     'skip$
1081     if$
1082     }
1083     {
1084     organization output
1085     address output
1086     }
1087     if$
1088     format.edition output
1089     format.date output
1090     note output
1091     fin.entry
1092     }
1093    
1094     FUNCTION {mastersthesis}
1095     { output.bibitem
1096     format.authors "author" output.check
1097     format.btitle "title" output.check
1098     bbl.mthesis format.thesis.type output.nonnull
1099     school "school" output.check
1100     address output
1101     format.date "year" output.check
1102     note output
1103     fin.entry
1104     }
1105    
1106     FUNCTION {misc}
1107     { output.bibitem
1108     format.authors output
1109     format.title output
1110     howpublished output
1111     format.date output
1112     note output
1113     fin.entry
1114     empty.misc.check
1115     }
1116    
1117     FUNCTION {phdthesis}
1118     { output.bibitem
1119     format.authors "author" output.check
1120     format.btitle "title" output.check
1121     bbl.phdthesis format.thesis.type output.nonnull
1122     school "school" output.check
1123     address output
1124     format.date "year" output.check
1125     note output
1126     fin.entry
1127     }
1128    
1129     FUNCTION {proceedings}
1130     { output.bibitem
1131     editor empty$
1132     { organization output }
1133     { format.editors output.nonnull }
1134     if$
1135     format.btitle "title" output.check
1136     format.bvolume output
1137     format.number.series output
1138     address empty$
1139     { editor empty$
1140     { publisher new.sentence.checka }
1141     { organization publisher new.sentence.checkb
1142     organization output
1143     }
1144     if$
1145     publisher output
1146     format.date "year" output.check
1147     }
1148     { address output.nonnull
1149     format.date "year" output.check
1150     editor empty$
1151     'skip$
1152     { organization output }
1153     if$
1154     publisher output
1155     }
1156     if$
1157     note output
1158     fin.entry
1159     }
1160    
1161     FUNCTION {techreport}
1162     { output.bibitem
1163     format.authors "author" output.check
1164     format.title "title" output.check
1165     format.tr.number output.nonnull
1166     institution "institution" output.check
1167     address output
1168     format.date "year" output.check
1169     note output
1170     fin.entry
1171     }
1172    
1173     FUNCTION {unpublished}
1174     { output.bibitem
1175     format.authors "author" output.check
1176     format.title "title" output.check
1177     note "note" output.check
1178     fin.entry
1179     }
1180    
1181     FUNCTION {default.type} { misc }
1182    
1183     READ
1184    
1185     STRINGS { longest.label }
1186    
1187     INTEGERS { number.label longest.label.width }
1188    
1189     FUNCTION {initialize.longest.label}
1190     { "" 'longest.label :=
1191     #1 'number.label :=
1192     #0 'longest.label.width :=
1193     }
1194    
1195     FUNCTION {longest.label.pass}
1196     { number.label int.to.str$ 'label :=
1197     number.label #1 + 'number.label :=
1198     label width$ longest.label.width >
1199     { label 'longest.label :=
1200     label width$ 'longest.label.width :=
1201     }
1202     'skip$
1203     if$
1204     }
1205    
1206     EXECUTE {initialize.longest.label}
1207    
1208     ITERATE {longest.label.pass}
1209    
1210     FUNCTION {begin.bib}
1211     { preamble$ empty$
1212     'skip$
1213     { preamble$ write$ newline$ }
1214     if$
1215     "\begin{thebibliography}{" longest.label * "}" *
1216     write$ newline$
1217     }
1218    
1219     EXECUTE {begin.bib}
1220    
1221     EXECUTE {init.state.consts}
1222    
1223     ITERATE {call.type$}
1224    
1225     FUNCTION {end.bib}
1226     { newline$
1227     "\end{thebibliography}" write$ newline$
1228     }
1229    
1230     EXECUTE {end.bib}
1231     %% End of customized bst file
1232     %%
1233     %% End of file `jcp.bst'.