%!PS-Adobe-38.0 %%Title:temp %%Creator:TSSD-Mk6 %%Date: 18/08/98 Time: 18:21:18 %%Pages:(atend) %%Jobname: %%EndComments /JobVM save def %%Prolog % Prologue for TSSD Postscript files (06/04/91) % % Create and begin dictionary for TSSD job (end in @tail, % no. of defined items in prologue about 200) 1000 dict begin % Paper dimensions, origin offsets and page mapping are normally % specified in A4.sys, letter.sys, etc., a default set is given % here in case one of these is not included. It specifies that % the page be mapped into the top left-hand corner of A4 paper % with no adjustment of the Postscript origin /@PaperHeight 840 def /@PaperWidth 594 def /@dx 0 def /@dy 0 def /@map {@dx @PaperHeight ph sub @dy add translate} def % Define job delimiters /@Save {/UserVM save def} bind def /@Restore {UserVM restore} bind def /@head { } def /@tail {end} def % Define page delimiters /@beginpage {/PageVM save def @map} bind def /@endpage {showpage PageVM restore} bind def % Define TSSD-Postscript commands /@p {moveto} bind def /@m {rmoveto} bind def /@a {0 rmoveto} bind def /@j {lineto} bind def /@q {@j currentpoint stroke moveto} bind def /@l {rlineto} bind def /@r {@l currentpoint stroke moveto} bind def /@w {setlinewidth} bind def /@t {show} bind def /@sd {0 setdash} bind def /@s {/ps exch def} bind def /@b .75 def /@outline 0 def /@wrk 20 dict def /@setmap { /eta h ps div def 0 setlinejoin currentpoint gsave 2 copy @b .5 sub ps mul add h 2 div sub translate ps ps scale newpath } bind def /@par {exch def} bind def /@fxy {currentfont currentpoint} bind def /@Sx {/Symbol findfont [ps 0 0 xi 0 0] makefont setfont} bind def /@Sh {/Symbol findfont [ps 0 0 h 0 0] makefont setfont} bind def /@EQ {/Courier findfont [.875 ps mul 0 0 .975 ps mul 0 0] makefont setfont} bind def /@TR {/Times-Roman findfont ps scalefont setfont} bind def /@TI {/Times-Italic findfont ps scalefont setfont} bind def /@TB {/Times-Bold findfont ps scalefont setfont} bind def /@TX {/Times-BoldItalic findfont ps scalefont setfont} bind def /@HR {/Helvetica findfont ps scalefont setfont} bind def /@HI {/Helvetica-Oblique findfont ps scalefont setfont} bind def /@HB {/Helvetica-Bold findfont ps scalefont setfont} bind def /@HX {/Helvetica-BoldOblique findfont ps scalefont setfont} bind def /@CR {/Courier findfont ps scalefont setfont} bind def /@CI {/Courier-Oblique findfont ps scalefont setfont} bind def /@CB {/Courier-Bold findfont ps scalefont setfont} bind def /@CX {/Courier-BoldOblique findfont ps scalefont setfont} bind def /@SY {/Symbol findfont ps scalefont setfont} bind def /@SO {/Symbol findfont [ps 0 ps .25 mul ps 0 0] makefont setfont} bind def /@OH {@outline 0 eq { /makeoutlinedict 7 dict def /Helvetica-Bold /Outline 1000 48 div /Helvetica-Bold findfont dup /UniqueID known {/UniqueID get 1 add} {pop 1} ifelse MakeOutlineFont /@outline 1 def} if /Outline findfont [ps 0 0 ps .85 mul 0 0] makefont setfont} bind def % define procedure to make outline fount /MakeOutlineFont { makeoutlinedict begin /uniqueid exch def /strokewidth exch def /newfontname exch def /basefontname exch def /basefontdict basefontname findfont def /numentries basefontdict maxlength 1 add def basefontdict /UniqueID known not {/numentries numentries 1 add def} if /outfontdict numentries dict def basefontdict {exch dup /FID ne {exch outfontdict 3 1 roll put} {pop pop} ifelse } forall outfontdict /FontName newfontname put outfontdict /PaintType 2 put outfontdict /StrokeWidth strokewidth put outfontdict /UniqueID uniqueid put newfontname outfontdict definefont pop end } bind def /@AR {/AvantGarde-Book findfont ps scalefont setfont} bind def /@AI {/AvantGarde-BookOblique findfont ps scalefont setfont} bind def /@AB {/AvantGarde-Demi findfont ps scalefont setfont} bind def /@AX {/AvantGarde-DemiOblique findfont ps scalefont setfont} bind def /@PR {/Palatino-Roman findfont ps scalefont setfont} bind def /@PI {/Palatino-Italic findfont ps scalefont setfont} bind def /@PB {/Palatino-Bold findfont ps scalefont setfont} bind def /@PX {/Palatino-BoldItalic findfont ps scalefont setfont} bind def /@NR {/NewCenturySchlbk-Roman findfont ps scalefont setfont} bind def /@NI {/NewCenturySchlbk-Italic findfont ps scalefont setfont} bind def /@NB {/NewCenturySchlbk-Bold findfont ps scalefont setfont} bind def /@NX {/NewCenturySchlbk-BoldItalic findfont ps scalefont setfont} bind def /@Hr {/Helvetica-Narrow findfont ps scalefont setfont} bind def /@Hi {/Helvetica-Narrow-Oblique findfont ps scalefont setfont} bind def /@Hb {/Helvetica-Narrow-Bold findfont ps scalefont setfont} bind def /@Hx {/Helvetica-Narrow-BoldOblique findfont ps scalefont setfont} bind def /@BR {/Bookman-Light findfont ps scalefont setfont} bind def /@BI {/Bookman-LightItalic findfont ps scalefont setfont} bind def /@BB {/Bookman-Demi findfont ps scalefont setfont} bind def /@BX {/Bookman-DemiItalic findfont ps scalefont setfont} bind def /@ZS {/ZapfChancery-MediumItalic findfont ps scalefont setfont} bind def /@ZD {/ZapfDingbats findfont ps scalefont setfont} bind def /@lcb {({) (\354) (\355) (\356) @brace} def /@rcb {(}) (\374) (\375) (\376) @brace} def /@brace { @wrk begin /bot @par /mid @par /top @par /chr @par /h @par /b .92 def /w .6 ps mul def /dx .08 ps mul def @fxy h ps 3 mul gt {/xi h 3 ps mul sub 2 div def @Sx 2 copy exch dx add exch @b b sub ps mul add 2 copy b ps mul 1 b sub xi mul add add moveto (\357) show 2 copy 1 b sub ps mul b xi mul add sub moveto (\357) show @SY 2 copy ps xi add add moveto top show 2 copy ps xi add sub moveto bot show moveto mid show exch w add exch moveto } {h ps div 1.25 gt {/xi h 3 div def @Sx 2 copy exch dx add exch @b .5 sub ps mul b .5 sub xi mul sub add xi add 2 copy moveto top show xi sub 2 copy moveto mid show xi sub moveto bot show exch w add exch moveto } {@Sh 2 copy @b .5 sub ps h sub mul add moveto chr show exch chr stringwidth pop add exch moveto } ifelse } ifelse setfont end } bind def /@lp {0 @paren} def /@rp {1 @paren} def /@paren { @wrk begin /n @par /h @par /w .35 def /db .08 def /bw .09 def /de .01 def /df .08 de sub def @setmap n 0 gt {w 0 translate -1 1 scale} if /du eta 5 div def /dw w db sub de sub def /hh eta 2 div def dw eta moveto df hh du add df hh du sub dw 0 curveto de 0 rlineto /dw dw de add def /df df bw add def df hh du sub df hh du add dw eta curveto closepath .02 setlinewidth fill grestore exch w ps mul add exch moveto end } bind def /@lb {0 @bracket} def /@rb {1 @bracket} def /@bracket { @wrk begin /n @par /h @par /w .25 def /db .04 def /df .08 def @setmap n 0 gt {w 0 translate -1 1 scale} if w db sub eta moveto df eta 2 copy lineto .02 setlinewidth stroke moveto df 0 2 copy lineto .04 setlinewidth stroke moveto w db sub 0 lineto .02 setlinewidth stroke grestore exch w ps mul add exch moveto end } bind def /@int { @wrk begin /h @par /b .92 def /w .8 ps mul def @fxy h 2.25 ps mul gt {/xi h 2 ps mul sub def @Sx 2 copy @b .5 sub ps mul b .5 sub xi mul sub add 2 copy moveto (\364) show @SY b xi mul 1 b sub ps mul add add 2 copy moveto (\363) show xi ps add sub moveto (\365) show exch w add exch moveto } {h ps div 2 gt {/xi h 2 div def @Sx 2 copy @b .5 sub ps mul 1 b sub xi mul add add 2 copy moveto (\363) show xi sub moveto (\365) show exch w add exch moveto } {@Sh 2 copy @b .5 sub ps mul .39 h mul sub add moveto (\362) show exch (\362) stringwidth pop add exch moveto } ifelse } ifelse setfont end } bind def /@mod { @wrk begin /h @par /w .36 def @setmap w 2 div dup 0 moveto eta lineto .02 setlinewidth stroke grestore exch w ps mul add exch moveto end } bind def /@norm { @wrk begin /h @par /w .54 def @setmap w 3 div dup dup 0 moveto eta lineto .02 setlinewidth stroke 2 mul dup 0 moveto eta lineto stroke grestore exch w ps mul add exch moveto end } bind def /@slash { @wrk begin /h @par /w ps .425 mul def gsave .02 ps mul setlinewidth currentpoint 2 copy @b .5 sub ps mul h 2 div sub add 2 copy moveto exch w add exch h add lineto stroke grestore exch w add exch moveto end } bind def /@sqrt { @wrk begin /h @par /v @par /w .6 def @setmap .385 .075 moveto .175 .55 lineto .025 .5 lineto .025 .55 lineto .225 .65 lineto .4 .25 lineto closepath fill .175 .55 moveto .385 .075 lineto .6 h ps div 2 copy lineto exch v ps div add exch lineto .02 setlinewidth stroke grestore exch w ps mul add exch moveto end } bind def /@sys1 {currentpoint /cy exch def /cx exch def cx w 2 div add cy @b .435 sub ps mul add translate /r w 2.4 div def /c exch def} bind def /@sys2 {/d exch def c 0 eq {w d div setlinewidth stroke} {fill} ifelse grestore cx w add cy moveto} bind def /@pol {gsave @sys1 /p exch def 0 r moveto 0 1 p 1 sub {360 p div rotate 0 r lineto pop} for 24 @sys2} bind def /@cir {gsave @sys1 0 0 r dup 0 moveto 0 360 arc 24 @sys2} bind def /@squ {gsave @sys1 r neg dup moveto 0 r r add rlineto r r add 0 rlineto 0 r r add neg rlineto closepath 24 @sys2} bind def /@sta {gsave @sys1 0 r moveto 0 1 9 {144 rotate 0 r lineto pop} for c 0 eq {w 12 div setlinewidth stroke 0 r moveto 0 1 9 {144 rotate 0 r lineto pop} for 1 setgray fill} {fill} ifelse grestore cx w add cy moveto} bind def % Defines for chemical arrows etc. /@ba {gsave currentpoint 2 copy exch ps 2 div add exch @b .5 sub ps mul add translate ps 8 div setlinewidth ps 100 div dup scale} bind def /@ea {stroke grestore exch ps add exch moveto} bind def /@bl {-50 14 moveto 50 14 lineto} bind def /@hh {-25 12 rlineto} bind def /@ah {currentpoint -25 12 rmoveto lineto -25 -12 rlineto} bind def /@flip {-1 1 scale} bind def /@ro {rotate} bind def /@sl {-71 0 moveto 71 0 lineto} bind def /@a1 {@bl @ah 180 @ro @bl @ah} bind def /@a2 {@flip @a1} bind def /@a3 {90 @ro @a1} bind def /@a4 {90 @ro @a2} bind def /@a5 {@bl @hh 180 @ro @bl @hh} bind def /@a6 {@flip @a5} bind def /@a7 {90 @ro @a5} bind def /@a8 {90 @ro @a6} bind def /@a9 {@bl @ah 180 @ro @flip @bl @ah} bind def /@a10 {180 @ro @a9} bind def /@a11 {90 @ro @a9} bind def /@a12 {270 @ro @a9} bind def /@a13 {@bl @ah 180 @ro @bl} bind def /@a14 {90 @ro @a13} bind def /@a15 {180 @ro @a13} bind def /@a16 {270 @ro @a13} bind def /@a17 {@flip @a13} bind def /@a18 {90 @ro @a17} bind def /@a19 {180 @ro @a17} bind def /@a20 {270 @ro @a17} bind def /@a21 {@bl @hh 180 @ro @bl} bind def /@a22 {90 @ro @a21} bind def /@a23 {180 @ro @a21} bind def /@a24 {270 @ro @a21} bind def /@a25 {@flip @a21} bind def /@a26 {90 @ro @a25} bind def /@a27 {180 @ro @a25} bind def /@a28 {270 @ro @a25} bind def /@a29 {@bl 180 @ro @bl} bind def /@a30 {90 @ro @a29} bind def /@a31 {45 @ro @sl} bind def /@a32 {135 @ro @sl} bind def /@a33 {45 @ro @sl @ah} bind def /@a34 {135 @ro @sl @ah} bind def /@a35 {225 @ro @sl @ah} bind def /@a36 {315 @ro @sl @ah} bind def /@a37 {90 @ro @a51} bind def /@a38 {90 @ro @a52} bind def /@a39 {180 @ro @a52} bind def /@a40 {270 @ro @a52} bind def /@a41 {90 @ro @a53} bind def /@a42 {180 @ro @a53} bind def /@a43 {270 @ro @a53} bind def /@a44 {90 @ro @a54} bind def /@a45 {180 @ro @a54} bind def /@a46 {270 @ro @a54} bind def /@a47 {@a52 @flip @a52} bind def /@a48 {90 @ro @a47} bind def /@a49 {45 @ro @sl @ah 180 @ro @sl @ah} bind def /@a50 {90 @ro @a49} bind def /@a51 {-50 0 moveto 50 0 lineto} bind def /@a52 {@a51 @ah} bind def /@a53 {@a51 @hh} bind def /@a54 {1 -1 scale @a53} bind def % end of defines for chemical arrows etc. /@PaperHeight 843 def /@PaperWidth 596 def /@dx 0 def /@dy 0 def /@map {@dx @PaperHeight ph sub @dy add translate} def % set portrait % Postscript to go in TSSD prologue to produce AEA logo % % 0 @aealogo (outline form), 1 @aealogo (filled form) % % e.g. to set filled logo at , at size % % moveto /ps def 1 @aealogo % /@aealogo {gsave currentpoint 3 -1 roll currentpoint translate 2 setlinecap 2 setlinejoin 8 dict begin /W 690 def /H 258 def /B {newpath moveto} bind def /L {lineto} bind def /N {closepath moveto} bind def /C {curveto} bind def ps H div dup scale 20 44 B 20 126 L 94 167 L 94 132 L 52 109 L 52 24 L 91 0 N 166 43 L 166 126 L 94 167 L 200 167 L 200 0 L 73 8 N 73 16 78 25 85 29 C 123 50 L 130 54 134 62 134 70 C 134 96 L 134 88 129 79 122 75 C 84 54 L 77 50 73 42 73 34 C 73 58 N 73 66 78 75 85 79 C 123 100 L 130 104 134 112 134 120 C 134 146 L 134 138 129 129 122 125 C 84 104 L 77 100 73 92 73 84 C 235 0 N 300 167 L 338 167 L 403 0 L 403 167 L 502 167 L 502 141 L 437 141 L 437 99 L 497 99 L 497 73 L 437 73 L 437 26 L 515 26 L 570 167 L 608 167 L 673 0 L 639 0 L 624 38 L 553 38 L 539 0 L 369 0 L 355 38 L 284 38 L 269 0 L 319 133 N 294 65 L 345 65 L 589 133 N 563 65 L 615 65 L closepath 0 eq {6 setlinewidth stroke} {4 setlinewidth fill} ifelse grestore exch W ps mul H div add exch moveto end} bind def %-------------------------------------------------------------- % Postscript to go in TSSD prologue to produce SERC logo % % 0 @Ss 0 @Es 0 @Rs 0 @Cs or 0 @serclogo (outlined form) % 1 @Ss 1 @Es 1 @Rs 1 @Cs or 1 @serclogo (filled form) % % e.g. to set filled logo at , at size % % moveto /ps def 1 @serclogo % /@begs {gsave currentpoint 2 copy translate 3 -1 roll ps 72 div dup scale newpath} bind def /@ends {closepath exch 0 eq {1 setlinewidth stroke} {fill} ifelse grestore ps mul 72 div 3 -1 roll add exch moveto} bind def /@Ss {@begs 4 5 moveto 18 22 22 230 270 arc 18 15 15 270 57 arc 18 33 8 224 90 arcn 18 28 13 90 44 arcn 18 28 20 47 90 arc 18 33 15 90 238 arc 18 15 8 42.5 270 arcn 18 22 15 270 223 arcn 36 @ends} bind def /@Es {@begs 33 5 moveto 21 17 17 315 180 arcn 21 31 17 180 39 arcn 21 31 10 29 180 arc 21 17 10 180 327 arc closepath dup 0 eq {1 setlinewidth stroke} {fill} ifelse newpath 18 20 moveto 28 20 lineto 28 27 lineto 14 27 lineto 37 @ends} bind def /@Rs {@begs 36 0 moveto 19 32 16 297.5 140 arc 5 40 4 35 4 30 curveto 4 0 lineto 11 0 lineto 11 30 lineto 11 36 12 40 16.97945 40.76933 curveto 19 32 9 103 243 arcn 28 0 lineto 40 @ends} bind def /@Cs {@begs 33 5 moveto 21 17 17 315 180 arcn 21 31 17 180 39 arcn 21 31 10 29 180 arc 21 17 10 180 327 arc 37 @ends} bind def /@serclogo {dup @Ss dup @Es dup @Rs @Cs} bind def %----------------------------------------------------------------- % Postscript to go in TSSD prologue to produce old AEA logo, % i.e. the hexagonal nut thingy % % e.g. to set the logo at , at size % % moveto /ps def @logo % % Warning: if this code should be removed the built-in TSSD % reference @HL will generate invalid Postscript. /@logo {gsave currentpoint 2 copy exch ps .55 mul add exch ps .288675 mul add translate /@1 3 sqrt def /@2 @1 .5 mul def ps @1 2 mul div dup scale @1 neg 1 neg @p 0 2 neg @j @2 1.5 neg @j @2 .5 neg @j 0 1 neg @j @1 neg 0 @j closepath 0.75 setgray fill @1 1 neg @p @1 1 @j @2 1.5 @j 0 1 @j @2 .5 @j @2 1.5 neg @j closepath 0.4 setgray fill 0 2 @p @1 neg 1 @j @1 neg 0 @j @2 neg .5 neg @j @2 neg .5 @j @2 1.5 @j closepath 0 setgray fill @1 1 @p 0 2 @j @1 neg 1 @j @1 neg 1 neg @j 0 2 neg @j @1 1 neg @j closepath .08 @w stroke @2 .5 @p 0 1 @j @2 neg .5 @j @2 neg .5 neg @j 0 1 neg @j @2 .5 neg @j closepath .02 @w stroke grestore exch ps 1.1 mul add exch @p} bind def %----------------------------------------------------------------- % Postscript to go in TSSD prologue to produce old HARWELL logo % % e.g. to set filled logo at , at size % % moveto /ps def @Hl @Al @Rl @Wl @El @Ll @Ll % % Warning: if this code should be removed the TSSD references % @H0, @H1, @H2, @H3, @H4, @H5 and @H6 generate invalid Postscript. /@Hl {gsave currentpoint 2 copy translate ps 90.9 div dup scale 4 2 @p 0 50 @l 10 0 @l 0 -20 @l 38 0 @l 0 20 @l 10 0 @l 0 -50 @l -10 0 @l 0 20 @l -38 0 @l 0 -20 @l closepath 4 @w stroke grestore exch 66 ps mul 90.9 div add exch @p} bind def /@Al {gsave currentpoint 2 copy translate ps 90.9 div dup scale 4 2 @p 25 50 @l 20 0 @l 25 -50 @l -11 0 @l -5 10 @l -38 0 @l -5 -10 @l closepath 25 22 @p 10 20 @l 7 0 @l 10 -20 @l closepath 4 @w stroke grestore exch 78 ps mul 90.9 div add exch @p} bind def /@Rl {gsave currentpoint 2 copy translate ps 90.9 div dup scale 4 2 @p 0 50 @l 60 52 60 32 15 arcto 4 {pop} repeat 60 25 43 10 15 arcto 4 {pop} repeat 60 15 60 2 17 arcto 4 {pop} repeat 60 2 @j -10 0 @l 50 17 14 17 7 arcto 4 {pop} repeat 14 17 @j 0 -15 @l closepath 15 27 @p 0 15 @l 50 42 50 27 5 arcto 4 {pop} repeat 50 27 14 27 5 arcto 4 {pop} repeat closepath 4 @w stroke grestore exch 63 ps mul 90.9 div add exch @p} bind def /@Wl {gsave currentpoint 2 copy translate ps 90.9 div dup scale 4 52 @p 20 -50 @l 16 0 @l 10 40 @l 2 0 @l 10 -40 @l 16 0 @l 20 50 @l -11 0 @l -15 -40 @l -2 0 @l -10 40 @l -17 0 @l -10 -40 @l -2 0 @l -15 40 @l closepath 4 @w stroke grestore exch 102 ps mul 90.9 div add exch @p} bind def /@El {gsave currentpoint 2 copy translate ps 90.9 div dup scale 4 2 @p 0 50 @l 50 0 @l 0 -10 @l -40 0 @l 0 -10 @l 40 0 @l 0 -10 @l -40 0 @l 0 -10 @l 40 0 @l 0 -10 @l closepath 4 @w stroke grestore exch 60 ps mul 90.9 div add exch @p} bind def /@Ll {gsave currentpoint 2 copy translate ps 90.9 div dup scale 4 2 @p 0 50 @l 10 0 @l 0 -40 @l 40 0 @l 0 -10 @l closepath 4 @w stroke grestore exch 60 ps mul 90.9 div add exch @p} bind def %%EndProlog @head %%Page: 1 1 /pn 1 def /ph 843.00 def /pw 542.00 def @beginpage 1.00 @w 422.06 743.70 @p 15 @s @TB (RAL-TR-1998-060)@t 54.00 718.20 @p 7.50 @a 439.35 699.40 @p 9 @s @SY (1)@t 150.64 692.70 @p 15 @s @TB (Co-Array)@t 4.12 @a (Fortran)@t 4.12 @a (for)@t 4.12 @a (parallel)@t 348.96 692.70 @p (programming)@t 292.00 670.90 @p 12 @s @TR (by)@t 293.85 654.90 @p 8 @s @SY (2)@t 372.56 654.90 @p (3)@t 218.24 649.90 @p 12 @s @TR (R.)@t 3.30 @a (W.)@t 250.19 649.90 @p (Numrich)@t 302.35 649.90 @p (and)@t 3.30 @a (J.)@t 3.30 @a (K.)@t 348.90 649.90 @p (Reid)@t 275.67 606.50 @p @TB (Abstract)@t 272.69 591.40 @p 7 @s @SY (-)@t 276.54 591.40 @p 1.16 @a 277.71 591.40 @p @SY (-)@t 82.00 586.69 @p 11 @s @TR (Co-Array)@t 5.75 @a (Fortran,)@t 5.75 @a (formerly)@t 5.75 @a (known)@t 5.75 @a (as)@t 265.71 586.69 @p (F)@t 282.66 586.69 @p (,)@t 5.75 @a (is)@t 5.75 @a (a)@t 5.75 @a (small)@t 5.75 @a (extension)@t 5.75 @a (of)@t 5.75 @a (Fortran)@t 5.75 @a (95)@t 5.75 @a (for)@t 5.75 @a (parallel)@t 82.00 572.69 @p (processing.)@t 3.24 @a (A)@t 3.24 @a (Co-Array)@t 3.24 @a (Fortran)@t 3.24 @a (program)@t 3.24 @a (is)@t 3.24 @a (interpreted)@t 3.24 @a (as)@t 3.24 @a (if)@t 3.24 @a (it)@t 3.24 @a (were)@t 3.24 @a (replicated)@t 3.24 @a (a)@t 3.24 @a (number)@t 3.24 @a (of)@t 3.24 @a (times)@t 82.00 558.69 @p (and)@t 3.92 @a (all)@t 3.92 @a (copies)@t 3.92 @a (were)@t 3.92 @a (executed)@t 3.92 @a (asynchronously.)@t 3.92 @a (Each)@t 3.92 @a (copy)@t 3.92 @a (has)@t 3.92 @a (its)@t 3.92 @a (own)@t 3.92 @a (set)@t 3.92 @a (of)@t 3.92 @a (data)@t 3.92 @a (objects)@t 3.92 @a (and)@t 3.92 @a (is)@t 82.00 544.69 @p (termed)@t 2.99 @a (an)@t 2.99 @a (image.)@t 2.99 @a (The)@t 2.99 @a (array)@t 2.99 @a (syntax)@t 2.99 @a (of)@t 2.99 @a (Fortran)@t 2.99 @a (95)@t 2.99 @a (is)@t 2.99 @a (extended)@t 2.99 @a (with)@t 2.99 @a (additional)@t 2.99 @a (trailing)@t 2.99 @a (subscripts)@t 2.99 @a (in)@t 82.00 530.69 @p (square)@t 4.16 @a (brackets)@t 4.16 @a (to)@t 4.16 @a (give)@t 4.16 @a (a)@t 4.16 @a (clear)@t 4.16 @a (and)@t 4.16 @a (straightforward)@t 4.16 @a (representation)@t 4.16 @a (of)@t 4.16 @a (any)@t 4.16 @a (access)@t 4.16 @a (to)@t 4.16 @a (data)@t 4.16 @a (that)@t 4.16 @a (is)@t 82.00 516.69 @p (spread)@t 3.02 @a (across)@t 3.02 @a (images.)@t 82.00 497.20 @p (References)@t 5.17 @a (without)@t 5.17 @a (square)@t 5.17 @a (brackets)@t 5.17 @a (are)@t 5.17 @a (to)@t 5.17 @a (local)@t 5.17 @a (data,)@t 5.17 @a (so)@t 5.17 @a (code)@t 5.17 @a (that)@t 5.17 @a (can)@t 5.17 @a (run)@t 5.17 @a (independently)@t 5.17 @a (is)@t 82.00 483.20 @p (uncluttered.)@t 4.48 @a (Only)@t 4.48 @a (where)@t 4.48 @a (there)@t 4.48 @a (are)@t 4.48 @a (square)@t 4.48 @a (brackets,)@t 4.48 @a (or)@t 4.48 @a (where)@t 4.48 @a (there)@t 4.48 @a (is)@t 4.48 @a (a)@t 4.48 @a (procedure)@t 4.48 @a (call)@t 4.48 @a (and)@t 4.48 @a (the)@t 82.00 469.20 @p (procedure)@t 3.02 @a (contains)@t 3.02 @a (square)@t 3.02 @a (brackets,)@t 3.02 @a (is)@t 3.02 @a (communication)@t 3.02 @a (between)@t 3.02 @a (images)@t 3.02 @a (involved.)@t 82.00 449.70 @p (There)@t 2.88 @a (are)@t 2.88 @a (intrinsic)@t 2.88 @a (procedures)@t 2.88 @a (to)@t 2.88 @a (synchronize)@t 2.88 @a (images,)@t 2.88 @a (return)@t 2.88 @a (the)@t 2.88 @a (number)@t 2.88 @a (of)@t 2.88 @a (images,)@t 2.88 @a (and)@t 2.88 @a (return)@t 2.88 @a (the)@t 82.00 435.70 @p (index)@t 3.02 @a (of)@t 3.02 @a (the)@t 3.02 @a (current)@t 3.02 @a (image.)@t 82.00 416.10 @p (W)@t -0.59 @a (e)@t 2.60 @a (introduce)@t 2.60 @a (the)@t 2.60 @a (extension;)@t 2.60 @a (give)@t 2.60 @a (examples)@t 2.60 @a (to)@t 2.60 @a (illustrate)@t 2.60 @a (how)@t 2.60 @a (clear,)@t 2.60 @a (powerful,)@t 2.60 @a (and)@t 2.60 @a (flexible)@t 2.60 @a (it)@t 2.60 @a (can)@t 2.60 @a (be;)@t 82.00 402.10 @p (and)@t 3.02 @a (provide)@t 3.02 @a (a)@t 3.02 @a (technical)@t 3.02 @a (definition.)@t 54.00 318.20 @p 12 @s @TB (Categories)@t 3.30 @a (and)@t 3.30 @a (subject)@t 3.30 @a (descriptors:)@t 3.30 @a @TR (D.3)@t 3.30 @a ([PROGRAMMING)@t 3.30 @a (LANGUAGES].)@t 54.00 303.20 @p @TB (General)@t 3.30 @a (T)@t -0.65 @a (erms:)@t 3.30 @a @TR (P)@t -0.65 @a (arallel)@t 3.30 @a (programming.)@t 54.00 288.20 @p @TB (Additional)@t 3.30 @a (Key)@t 3.30 @a (W)@t -0.65 @a (ords)@t 3.30 @a (and)@t 3.30 @a (Phrases:)@t 3.30 @a @TR (Fortran.)@t 54.00 231.09 @p (Department)@t 3.30 @a (for)@t 3.30 @a (Computation)@t 3.30 @a (and)@t 3.30 @a (Information,)@t 54.00 216.09 @p (Rutherford)@t 3.30 @a (Appleton)@t 3.30 @a (Laboratory,)@t 54.00 201.09 @p (Oxon)@t 3.30 @a (OX11)@t 3.30 @a (0QX,)@t 3.30 @a (UK)@t 54.00 180.00 @p (August)@t 3.30 @a (1998)@t (.)@t 54.00 165.00 @p 6.00 @a 0.40 @w 482.00 0.00 @r 54.96 155.00 @p 8 @s @SY (1)@t 60.16 150.00 @p 12 @s @TR (Available)@t 5.04 @a (by)@t 5.04 @a (anonymous)@t 5.04 @a (ftp)@t 5.04 @a (from)@t 5.04 @a @EQ (matisa.cc.rl.ac.uk)@t 5.04 @a @TR (in)@t 5.04 @a (directory)@t 5.04 @a @EQ (pub/reports)@t 5.04 @a @TR (in)@t 5.04 @a (the)@t 5.04 @a (file)@t 54.00 135.00 @p 30.00 @a @EQ (nrRAL98060.ps.gz)@t 54.96 125.00 @p 8 @s @SY (2)@t 60.16 120.00 @p 12 @s @TR (Silicon)@t 3.30 @a (Graphics,)@t 3.30 @a (Inc.,)@t 3.30 @a (655)@t 3.30 @a (Lone)@t 3.30 @a (Oak)@t 3.30 @a (Drive,)@t 3.30 @a (Eagan,)@t 3.30 @a (MN)@t 3.30 @a (55121,)@t 3.30 @a (USA.)@t 3.30 @a (Email:)@t 3.30 @a @EQ (rwn@cray.com)@t 54.96 110.00 @p 8 @s @SY (3)@t 60.16 105.00 @p 12 @s @TR (Email:)@t 3.30 @a @EQ (jkr@rl.ac.uk)@t @endpage %%Page: 2 2 /pn 2 def /ph 843.00 def /pw 542.00 def @beginpage 0.40 @w 230.53 703.80 @p 18 @s @TB (CONTENTS)@t 78.00 637.70 @p 12 @s @TR (1)@t 99.00 637.70 @p (Introduction)@t 162.00 637.70 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274\274\274\274\274\274\274\274\274)@t 512.00 637.70 @p (1)@t 78.00 621.00 @p (2)@t 99.00 621.00 @p (Simple)@t 3.30 @a (examples)@t 186.00 621.00 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274\274\274\274\274\274\274)@t 512.00 621.00 @p (3)@t 99.00 604.40 @p (2.1)@t 138.00 604.40 @p (Finite)@t 3.30 @a (differencing)@t 3.30 @a (on)@t 3.30 @a (a)@t 3.30 @a (rectangular)@t 3.30 @a (grid)@t 342.00 604.40 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274)@t 512.00 604.40 @p (3)@t 99.00 587.70 @p (2.2)@t 138.00 587.70 @p (Data)@t 3.30 @a (redistribution)@t 234.00 587.70 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274\274\274)@t 512.00 587.70 @p (3)@t 99.00 571.09 @p (2.3)@t 138.00 571.09 @p (Maximum)@t 3.30 @a (value)@t 3.30 @a (of)@t 3.30 @a (a)@t 3.30 @a (co-array)@t 294.00 571.09 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t 512.00 571.09 @p (4)@t 99.00 554.40 @p (2.4)@t 138.00 554.40 @p (Finite-element)@t 3.30 @a (example)@t 258.00 554.40 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274)@t 512.00 554.40 @p (5)@t 99.00 537.80 @p (2.5)@t 138.00 537.80 @p (Summing)@t 3.30 @a (over)@t 3.30 @a (the)@t 3.30 @a (co-dimension)@t 3.30 @a (of)@t 3.30 @a (a)@t 3.30 @a (co-array)@t 366.00 537.80 @p (\274\274\274\274\274\274\274\274\274\274\274)@t 512.00 537.80 @p (5)@t 99.00 521.19 @p (2.6)@t 138.00 521.19 @p (Grouping)@t 3.30 @a (the)@t 3.30 @a (images)@t 3.30 @a (into)@t 3.30 @a (teams)@t 294.00 521.19 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t 512.00 521.19 @p (6)@t 99.00 504.50 @p (2.7)@t 138.00 504.50 @p (W)@t -0.65 @a (riting)@t 3.30 @a (a)@t 3.30 @a (tiled)@t 3.30 @a (array)@t 3.30 @a (to)@t 3.30 @a (a)@t 3.30 @a (direct-access)@t 3.30 @a (file)@t 354.00 504.50 @p (\274\274\274\274\274\274\274\274\274\274\274\274)@t 512.00 504.50 @p (7)@t 78.00 487.90 @p (3)@t 99.00 487.90 @p (T)@t -0.65 @a (echnical)@t 3.30 @a (specification)@t 222.00 487.90 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274\274\274\274)@t 512.00 487.90 @p (8)@t 99.00 471.20 @p (3.1)@t 138.00 471.20 @p (P)@t -0.65 @a (rogram)@t 3.30 @a (images)@t 222.00 471.20 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274\274\274\274)@t 512.00 471.20 @p (8)@t 99.00 454.60 @p (3.2)@t 138.00 454.60 @p (Specifying)@t 3.30 @a (data)@t 3.30 @a (objects)@t 258.00 454.60 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274)@t 512.00 454.60 @p (8)@t 99.00 437.90 @p (3.3)@t 138.00 437.90 @p (Accessing)@t 3.30 @a (data)@t 3.30 @a (objects)@t 258.00 437.90 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274)@t 506.00 437.90 @p (10)@t 99.00 421.30 @p (3.4)@t 138.00 421.30 @p (P)@t -0.65 @a (rocedures)@t 198.00 421.30 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274\274\274\274\274\274)@t 506.00 421.30 @p (11)@t 99.00 404.60 @p (3.5)@t 138.00 404.60 @p (Sequence)@t 3.30 @a (association)@t 246.00 404.60 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274\274)@t 506.00 404.60 @p (11)@t 99.00 388.00 @p (3.6)@t 138.00 388.00 @p (Allocatable)@t 3.30 @a (arrays)@t 234.00 388.00 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274\274\274)@t 506.00 388.00 @p (12)@t 99.00 371.40 @p (3.7)@t 138.00 371.40 @p (Array)@t 3.30 @a (pointers)@t 210.00 371.40 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274\274\274\274\274)@t 506.00 371.40 @p (12)@t 99.00 354.70 @p (3.8)@t 138.00 354.70 @p (Execution)@t 3.30 @a (control)@t 234.00 354.70 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274\274\274)@t 506.00 354.70 @p (13)@t 99.00 338.10 @p (3.9)@t 138.00 338.10 @p (Input/output)@t 198.00 338.10 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274\274\274\274\274\274)@t 506.00 338.10 @p (16)@t 99.00 321.39 @p (3.10)@t 138.00 321.39 @p (Intrinsic)@t 3.30 @a (procedures)@t 246.00 321.39 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274\274)@t 506.00 321.39 @p (17)@t 78.00 304.79 @p (4)@t 99.00 304.79 @p (Improved)@t 3.30 @a (versions)@t 3.30 @a (of)@t 3.30 @a (the)@t 3.30 @a (examples)@t 270.00 304.79 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t 506.00 304.79 @p (19)@t 99.00 288.09 @p (4.1)@t 138.00 288.09 @p (Finite)@t 3.30 @a (differencing)@t 3.30 @a (on)@t 3.30 @a (a)@t 3.30 @a (rectangular)@t 3.30 @a (grid)@t 342.00 288.09 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274)@t 506.00 288.09 @p (19)@t 99.00 271.50 @p (4.2)@t 138.00 271.50 @p (Data)@t 3.30 @a (redistribution)@t 234.00 271.50 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274\274\274)@t 506.00 271.50 @p (19)@t 99.00 254.79 @p (4.3)@t 138.00 254.79 @p (Maximum)@t 3.30 @a (value)@t 3.30 @a (of)@t 3.30 @a (a)@t 3.30 @a (co-array)@t 3.30 @a (section)@t 330.00 254.79 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t 506.00 254.79 @p (20)@t 99.00 238.20 @p (4.4)@t 138.00 238.20 @p (Summing)@t 3.30 @a (over)@t 3.30 @a (the)@t 3.30 @a (co-dimension)@t 3.30 @a (of)@t 3.30 @a (a)@t 3.30 @a (co-array)@t 3.30 @a (\(1\))@t 390.00 238.20 @p (\274\274\274\274\274\274\274\274\274)@t 506.00 238.20 @p (20)@t 99.00 221.59 @p (4.5)@t 138.00 221.59 @p (Summing)@t 3.30 @a (over)@t 3.30 @a (the)@t 3.30 @a (co-dimension)@t 3.30 @a (of)@t 3.30 @a (a)@t 3.30 @a (co-array)@t 3.30 @a (\(2\))@t 390.00 221.59 @p (\274\274\274\274\274\274\274\274\274)@t 506.00 221.59 @p (21)@t 78.00 204.89 @p (5)@t 99.00 204.89 @p (Comparison)@t 3.30 @a (with)@t 3.30 @a (other)@t 3.30 @a (parallel)@t 3.30 @a (programming)@t 3.30 @a (models)@t 366.00 204.89 @p (\274\274\274\274\274\274\274\274\274\274\274)@t 506.00 204.89 @p (22)@t 78.00 188.29 @p (6)@t 99.00 188.29 @p (Summary)@t 150.00 188.29 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274\274\274\274\274\274\274\274\274\274)@t 506.00 188.29 @p (24)@t 78.00 171.59 @p (7)@t 99.00 171.59 @p (Acknowledgements)@t 198.00 171.59 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274\274\274\274\274\274)@t 506.00 171.59 @p (25)@t 78.00 155.00 @p (8)@t 99.00 155.00 @p (References)@t 162.00 155.00 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t (\274\274\274\274\274\274\274\274\274)@t 506.00 155.00 @p (25)@t 78.00 138.29 @p (Appendix)@t 3.30 @a (1.)@t 3.30 @a (Extension)@t 3.30 @a (to)@t 3.30 @a (allow)@t 3.30 @a (co-array)@t 3.30 @a (subobjects)@t 3.30 @a (as)@t 3.30 @a (actual)@t 3.30 @a (arguments)@t 438.00 138.29 @p (\274\274\274\274\274)@t 506.00 138.29 @p (27)@t 78.00 121.70 @p (Appendix)@t 3.30 @a (2.)@t 3.30 @a (Extension)@t 3.30 @a (to)@t 3.30 @a (allow)@t 3.30 @a (co-array)@t 3.30 @a (pointers)@t 318.00 121.70 @p (\274\274\274\274\274\274\274\274\274\274\274\274\274\274\274)@t 506.00 121.70 @p (29)@t 78.00 105.00 @p (Appendix)@t 3.30 @a (3.)@t 3.30 @a (The)@t 3.30 @a (synchronization)@t 3.30 @a (intrinsics)@t 3.30 @a (in)@t 3.30 @a (Co-Array)@t 3.30 @a (Fortran)@t 390.00 105.00 @p (\274\274\274\274\274\274\274\274\274)@t 506.00 105.00 @p (29)@t 295.20 73.50 @p 10 @s @TR (ii)@t @endpage %%Page: 1 3 /pn 1 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 65.33 724.60 @p 18 @s @TB (1)@t 4.95 @a 9.00 @a (Introduction)@t 65.33 705.00 @p 11 @s @TR (W)@t -0.59 @a (e)@t 2.46 @a (designed)@t 2.46 @a (Co-Array)@t 2.46 @a (Fortran)@t 2.46 @a (to)@t 2.46 @a (answer)@t 2.46 @a (the)@t 2.46 @a (question)@t 2.46 @a (`What)@t 2.46 @a (is)@t 2.46 @a (the)@t 2.46 @a (smallest)@t 2.46 @a (change)@t 2.46 @a (required)@t 2.46 @a (to)@t 2.46 @a (convert)@t 2.46 @a (Fortran)@t 65.33 691.00 @p (95)@t 2.43 @a (into)@t 2.43 @a (a)@t 2.43 @a (robust,)@t 2.43 @a (efficient)@t 2.43 @a (parallel)@t 2.43 @a (language?'.)@t 2.43 @a (Our)@t 2.43 @a (answer)@t 2.43 @a (is)@t 2.43 @a (a)@t 2.43 @a (simple)@t 2.43 @a (syntactic)@t 2.43 @a (extension)@t 2.43 @a (to)@t 2.43 @a (Fortran)@t 2.43 @a (95.)@t 2.43 @a (It)@t 2.43 @a (looks)@t 65.33 677.00 @p (and)@t 3.02 @a (feels)@t 3.02 @a (like)@t 3.02 @a (Fortran)@t 3.02 @a (and)@t 3.02 @a (requires)@t 3.02 @a (Fortran)@t 3.02 @a (programmers)@t 3.02 @a (to)@t 3.02 @a (learn)@t 3.02 @a (only)@t 3.02 @a (a)@t 3.02 @a (few)@t 3.02 @a (new)@t 3.02 @a (rules.)@t 65.33 657.40 @p (The)@t 3.27 @a (few)@t 3.27 @a (new)@t 3.27 @a (rules)@t 3.27 @a (are)@t 3.27 @a (related)@t 3.27 @a (to)@t 3.27 @a (two)@t 3.27 @a (fundamental)@t 3.27 @a (issues)@t 3.27 @a (that)@t 3.27 @a (any)@t 3.27 @a (parallel)@t 3.27 @a (programming)@t 3.27 @a (model)@t 3.27 @a (must)@t 3.27 @a (resolve,)@t 65.33 643.40 @p (work)@t 3.86 @a (distribution)@t 3.86 @a (and)@t 3.86 @a (data)@t 3.86 @a (distribution.)@t 3.86 @a (Some)@t 3.86 @a (of)@t 3.86 @a (the)@t 3.86 @a (complications)@t 3.86 @a (encountered)@t 3.86 @a (with)@t 3.86 @a (other)@t 3.86 @a (parallel)@t 3.86 @a (models,)@t 65.33 629.40 @p (such)@t 3.06 @a (as)@t 3.06 @a (HPF)@t 3.06 @a (\(Koebel,)@t 3.06 @a (Loveman,)@t 3.06 @a (Schrieber,)@t 3.06 @a (Steele,)@t 3.06 @a (and)@t 3.06 @a (Zosel)@t 3.06 @a (1994\),)@t 3.06 @a (CRAFT)@t 3.06 @a (\(P)@t -0.59 @a (ase,)@t 3.06 @a (MacDonald,)@t 3.06 @a (and)@t 3.06 @a (Meltzer)@t 65.33 615.40 @p (1994\))@t 3.78 @a (or)@t 3.78 @a (OpenMP)@t 3.78 @a (\(1997\))@t 3.78 @a (result)@t 3.78 @a (from)@t 3.78 @a (the)@t 3.78 @a (intermixing)@t 3.78 @a (of)@t 3.78 @a (these)@t 3.78 @a (two)@t 3.78 @a (issues.)@t 3.78 @a (They)@t 3.78 @a (are)@t 3.78 @a (different)@t 3.78 @a (and)@t 3.78 @a (Co-Array)@t 65.33 601.40 @p (Fortran)@t 3.02 @a (keeps)@t 3.02 @a (them)@t 3.02 @a (separate.)@t 65.33 581.69 @p (First,)@t 6.57 @a (consider)@t 6.57 @a (work)@t 6.57 @a (distribution.)@t 6.57 @a (Co-Array)@t 6.57 @a (Fortran)@t 6.57 @a (adopts)@t 6.57 @a (the)@t 6.57 @a (Single-P)@t -0.59 @a (rogram-Multiple-Data)@t 6.57 @a (\(SPMD\))@t 65.33 567.69 @p (programming)@t 3.02 @a (model.)@t 3.02 @a (A)@t 3.02 @a (single)@t 3.02 @a (program)@t 3.02 @a (is)@t 3.02 @a (replicated)@t 3.02 @a (a)@t 3.02 @a (fixed)@t 3.02 @a (number)@t 3.02 @a (of)@t 3.02 @a (times,)@t 3.02 @a (each)@t 3.02 @a (replication)@t 3.02 @a (having)@t 3.02 @a (its)@t 3.02 @a (own)@t 65.33 553.69 @p (set)@t 3.36 @a (of)@t 3.35 @a (data)@t 3.36 @a (objects.)@t 3.36 @a (Such)@t 3.35 @a (a)@t 3.36 @a (model)@t 3.35 @a (is)@t 3.36 @a (new)@t 3.36 @a (to)@t 3.35 @a (Fortran,)@t 3.36 @a (which)@t 3.36 @a (assumes)@t 3.35 @a (a)@t 3.36 @a (single)@t 3.35 @a (program)@t 3.36 @a (executing)@t 3.36 @a (alone)@t 3.35 @a (with)@t 3.36 @a (a)@t 65.33 539.69 @p (single)@t 5.84 @a (set)@t 5.84 @a (of)@t 5.84 @a (data)@t 5.84 @a (objects.)@t 5.84 @a (Each)@t 5.84 @a (replication)@t 5.84 @a (of)@t 5.84 @a (the)@t 5.84 @a (program)@t 5.84 @a (is)@t 5.84 @a (called)@t 5.84 @a (an)@t 5.84 @a @TB (image.)@t 5.84 @a @TR (Each)@t 5.84 @a (image)@t 5.84 @a (executes)@t 65.33 525.69 @p (asynchronously)@t 2.92 @a (and)@t 2.92 @a (the)@t 2.92 @a (normal)@t 2.92 @a (rules)@t 2.92 @a (of)@t 2.92 @a (Fortran)@t 2.92 @a (apply,)@t 2.92 @a (so)@t 2.92 @a (the)@t 2.92 @a (execution)@t 2.92 @a (path)@t 2.92 @a (may)@t 2.92 @a (differ)@t 2.92 @a (from)@t 2.92 @a (image)@t 2.92 @a (to)@t 2.92 @a (image.)@t 65.33 511.70 @p (The)@t 3.91 @a (programmer)@t 3.91 @a (determines)@t 3.91 @a (the)@t 3.91 @a (actual)@t 3.91 @a (path)@t 3.91 @a (for)@t 3.91 @a (the)@t 3.91 @a (image)@t 3.91 @a (with)@t 3.91 @a (the)@t 3.91 @a (help)@t 3.91 @a (of)@t 3.91 @a (a)@t 3.91 @a (unique)@t 3.91 @a (image)@t 3.91 @a (index)@t 3.91 @a (by)@t 3.91 @a (using)@t 65.33 497.70 @p (normal)@t 3.68 @a (Fortran)@t 3.68 @a (control)@t 3.68 @a (constructs)@t 3.68 @a (and)@t 3.68 @a (by)@t 3.68 @a (explicit)@t 3.68 @a (synchronizations.)@t 3.68 @a (For)@t 3.68 @a (code)@t 3.68 @a (between)@t 3.68 @a (synchronizations,)@t 3.68 @a (the)@t 65.33 483.70 @p (compiler)@t 3.02 @a (is)@t 3.02 @a (free)@t 3.02 @a (to)@t 3.02 @a (use)@t 3.02 @a (all)@t 3.02 @a (its)@t 3.02 @a (normal)@t 3.02 @a (optimization)@t 3.02 @a (techniques,)@t 3.02 @a (as)@t 3.02 @a (if)@t 3.02 @a (only)@t 3.02 @a (one)@t 3.02 @a (image)@t 3.02 @a (is)@t 3.02 @a (present.)@t 65.33 464.10 @p (Second,)@t 3.15 @a (consider)@t 3.15 @a (data)@t 3.15 @a (distribution.)@t 3.15 @a (The)@t 3.15 @a (co-array)@t 3.15 @a (extension)@t 3.15 @a (to)@t 3.15 @a (the)@t 3.15 @a (language)@t 3.15 @a (allows)@t 3.15 @a (the)@t 3.15 @a (programmer)@t 3.15 @a (to)@t 3.15 @a (express)@t 65.33 450.10 @p (data)@t 4.08 @a (distribution)@t 4.08 @a (by)@t 4.08 @a (specifying)@t 4.08 @a (the)@t 4.08 @a (relationship)@t 4.08 @a (among)@t 4.08 @a (memory)@t 4.08 @a (images)@t 4.08 @a (in)@t 4.08 @a (a)@t 4.08 @a (syntax)@t 4.08 @a (very)@t 4.08 @a (much)@t 4.08 @a (like)@t 4.08 @a (normal)@t 65.33 436.10 @p (Fortran)@t 3.02 @a (array)@t 3.02 @a (syntax.)@t 3.02 @a (W)@t -0.59 @a (e)@t 3.02 @a (add)@t 3.02 @a (one)@t 3.02 @a (new)@t 3.02 @a (object)@t 3.02 @a (to)@t 3.02 @a (the)@t 3.02 @a (language)@t 3.02 @a (called)@t 3.02 @a (a)@t 3.02 @a (co-array.)@t 3.02 @a (For)@t 3.02 @a (example,)@t 3.02 @a (the)@t 3.02 @a (statement)@t 65.33 419.20 @p 10 @s @CR ( real, dimension\(n\)[*] :: x,y)@t 65.33 399.40 @p 11 @s @TR (declares)@t 3.02 @a (that)@t 3.02 @a (each)@t 3.02 @a (image)@t 3.02 @a (has)@t 3.02 @a (two)@t 3.02 @a (real)@t 3.02 @a (arrays)@t 3.02 @a (of)@t 3.02 @a (size)@t 3.02 @a @CR (n.)@t 3.02 @a @TR (If)@t 3.02 @a (the)@t 3.02 @a (statement:)@t 65.33 382.50 @p 10 @s @CR ( x\(:\) = y\(:\)[q])@t 65.33 362.60 @p 11 @s @TR (is)@t 3.13 @a (executed)@t 3.13 @a (on)@t 3.13 @a (all)@t 3.13 @a (images)@t 3.13 @a (and)@t 3.13 @a (if)@t 3.13 @a @CR (q)@t 3.13 @a @TR (has)@t 3.13 @a (the)@t 3.13 @a (same)@t 3.13 @a (value)@t 3.13 @a (on)@t 3.13 @a (each)@t 3.13 @a (image,)@t 3.13 @a (the)@t 3.13 @a (effect)@t 3.13 @a (is)@t 3.13 @a (that)@t 3.13 @a (each)@t 3.13 @a (image)@t 3.13 @a (copies)@t 3.13 @a (the)@t 65.33 348.60 @p (array)@t 3.02 @a @CR (y)@t 3.02 @a @TR (from)@t 3.02 @a (image)@t 3.02 @a @CR (q)@t 3.02 @a @TR (and)@t 3.02 @a (makes)@t 3.02 @a (a)@t 3.02 @a (local)@t 3.02 @a (copy)@t 3.02 @a (in)@t 3.02 @a (array)@t 3.02 @a @CR (x.)@t 65.33 329.00 @p @TR (Array)@t 4.07 @a (indices)@t 4.07 @a (in)@t 4.07 @a (parentheses)@t 4.07 @a (follow)@t 4.07 @a (the)@t 4.07 @a (normal)@t 4.07 @a (Fortran)@t 4.07 @a (rules)@t 4.07 @a (within)@t 4.07 @a (one)@t 4.07 @a (memory)@t 4.07 @a (image.)@t 4.07 @a (Indices)@t 4.07 @a (in)@t 4.07 @a (square)@t 65.33 315.00 @p (brackets)@t 3.04 @a (provide)@t 3.04 @a (an)@t 3.04 @a (equally)@t 3.04 @a (convenient)@t 3.04 @a (notation)@t 3.04 @a (for)@t 3.04 @a (accessing)@t 3.04 @a (objects)@t 3.04 @a (across)@t 3.04 @a (images)@t 3.04 @a (and)@t 3.04 @a (follow)@t 3.04 @a (similar)@t 3.04 @a (rules.)@t 65.33 301.00 @p (Bounds)@t 2.87 @a (in)@t 2.87 @a (square)@t 2.87 @a (brackets)@t 2.87 @a (in)@t 2.87 @a (co-array)@t 2.87 @a (declarations)@t 2.87 @a (follow)@t 2.87 @a (the)@t 2.87 @a (rules)@t 2.87 @a (of)@t 2.87 @a (assumed-size)@t 2.87 @a (arrays)@t 2.87 @a (since)@t 2.87 @a (co-arrays)@t 2.87 @a (are)@t 65.33 287.00 @p (always)@t 3.02 @a (spread)@t 3.02 @a (over)@t 3.02 @a (all)@t 3.02 @a (the)@t 3.02 @a (images.)@t 65.33 267.29 @p (The)@t 4.49 @a (programmer)@t 4.49 @a (uses)@t 4.49 @a (co-array)@t 4.49 @a (syntax)@t 4.49 @a (only)@t 4.49 @a (where)@t 4.49 @a (it)@t 4.49 @a (is)@t 4.49 @a (needed.)@t 4.49 @a (A)@t 4.49 @a (reference)@t 4.49 @a (to)@t 4.49 @a (a)@t 4.49 @a (co-array)@t 4.49 @a (with)@t 4.49 @a (no)@t 4.49 @a (square)@t 65.33 253.29 @p (brackets)@t 3.84 @a (attached)@t 3.84 @a (to)@t 3.84 @a (it)@t 3.84 @a (is)@t 3.84 @a (a)@t 3.84 @a (reference)@t 3.84 @a (to)@t 3.84 @a (the)@t 3.84 @a (object)@t 3.84 @a (in)@t 3.84 @a (the)@t 3.84 @a (local)@t 3.84 @a (memory)@t 3.84 @a (of)@t 3.84 @a (the)@t 3.84 @a (executing)@t 3.84 @a (image.)@t 3.84 @a (Since)@t 3.84 @a (most)@t 65.33 239.29 @p (references)@t 3.07 @a (to)@t 3.07 @a (data)@t 3.07 @a (objects)@t 3.07 @a (in)@t 3.07 @a (a)@t 3.07 @a (parallel)@t 3.07 @a (code)@t 3.07 @a (should)@t 3.07 @a (be)@t 3.07 @a (to)@t 3.07 @a (the)@t 3.07 @a (local)@t 3.07 @a (part,)@t 3.07 @a (co-array)@t 3.07 @a (syntax)@t 3.07 @a (should)@t 3.07 @a (appear)@t 3.07 @a (only)@t 3.07 @a (in)@t 65.33 225.29 @p (isolated)@t 5.80 @a (parts)@t 5.80 @a (of)@t 5.80 @a (the)@t 5.80 @a (code.)@t 5.80 @a (If)@t 5.80 @a (not,)@t 5.80 @a (the)@t 5.80 @a (syntax)@t 5.80 @a (acts)@t 5.80 @a (as)@t 5.80 @a (a)@t 5.80 @a (visual)@t 5.80 @a (flag)@t 5.80 @a (to)@t 5.80 @a (the)@t 5.80 @a (programmer)@t 5.80 @a (that)@t 5.80 @a (too)@t 5.80 @a (much)@t 65.33 211.29 @p (communication)@t 2.87 @a (among)@t 2.87 @a (images)@t 2.87 @a (may)@t 2.87 @a (be)@t 2.87 @a (taking)@t 2.87 @a (place.)@t 2.87 @a (It)@t 2.87 @a (also)@t 2.87 @a (acts)@t 2.87 @a (as)@t 2.87 @a (a)@t 2.87 @a (flag)@t 2.87 @a (to)@t 2.87 @a (the)@t 2.87 @a (compiler)@t 2.87 @a (to)@t 2.87 @a (generate)@t 2.87 @a (code)@t 2.87 @a (that)@t 65.33 197.29 @p (avoids)@t 3.02 @a (latency)@t 3.02 @a (whenever)@t 3.02 @a (possible.)@t 65.33 177.70 @p (If)@t 4.94 @a (different)@t 4.94 @a (sizes)@t 4.94 @a (are)@t 4.94 @a (required)@t 4.94 @a (on)@t 4.94 @a (different)@t 4.94 @a (images,)@t 4.94 @a (we)@t 4.94 @a (may)@t 4.94 @a (declare)@t 4.94 @a (a)@t 4.94 @a (co-array)@t 4.94 @a (of)@t 4.94 @a (a)@t 4.94 @a (derived)@t 4.94 @a (type)@t 4.94 @a (with)@t 4.94 @a (a)@t 65.33 163.70 @p (component)@t 3.10 @a (that)@t 3.10 @a (is)@t 3.10 @a (a)@t 3.10 @a (pointer)@t 3.10 @a (array.)@t 3.10 @a (The)@t 3.10 @a (pointer)@t 3.10 @a (component)@t 3.10 @a (is)@t 3.10 @a (allocated)@t 3.10 @a (on)@t 3.10 @a (each)@t 3.10 @a (image)@t 3.10 @a (to)@t 3.10 @a (have)@t 3.10 @a (the)@t 3.10 @a (desired)@t 3.10 @a (size)@t 65.33 149.70 @p (for)@t 2.69 @a (that)@t 2.69 @a (image)@t 2.69 @a (\(or)@t 2.69 @a (not)@t 2.69 @a (allocated)@t 2.69 @a (at)@t 2.69 @a (all,)@t 2.69 @a (if)@t 2.69 @a (it)@t 2.69 @a (is)@t 2.69 @a (not)@t 2.69 @a (needed)@t 2.69 @a (on)@t 2.69 @a (the)@t 2.69 @a (image\).)@t 2.69 @a (It)@t 2.69 @a (is)@t 2.69 @a (straightforward)@t 2.69 @a (to)@t 2.69 @a (access)@t 2.69 @a (such)@t 2.69 @a (data)@t 65.33 135.70 @p (on)@t 3.02 @a (another)@t 3.02 @a (image,)@t 3.02 @a (for)@t 3.02 @a (example,)@t 65.33 118.79 @p 10 @s @CR ( x\(:\) = a[p]%ptr\(:\))@t 65.33 99.00 @p 11 @s @TR (In)@t 2.90 @a (words,)@t 2.90 @a (this)@t 2.90 @a (statement)@t 2.90 @a (means)@t 2.90 @a (`Go)@t 2.90 @a (to)@t 2.90 @a (image)@t 2.90 @a @CR (p)@t @TR (,)@t 2.90 @a (obtain)@t 2.90 @a (the)@t 2.90 @a (the)@t 2.90 @a (pointer)@t 2.90 @a (component)@t 2.90 @a (of)@t 2.90 @a (variable)@t 2.90 @a @CR (a)@t @TR (,)@t 2.90 @a (read)@t 2.90 @a (from)@t 2.90 @a (the)@t 65.33 85.00 @p (corresponding)@t 2.55 @a (target,)@t 2.55 @a (and)@t 2.55 @a (copy)@t 2.55 @a (the)@t 2.55 @a (data)@t 2.55 @a (to)@t 2.55 @a (the)@t 2.55 @a (local)@t 2.55 @a (array)@t 2.55 @a @CR (x)@t @TR ('.)@t 2.55 @a (The)@t 2.55 @a (square)@t 2.55 @a (bracket)@t 2.55 @a (is)@t 2.55 @a (associated)@t 2.55 @a (with)@t 2.55 @a (the)@t 2.55 @a (variable)@t 297.93 51.00 @p @TB (1)@t 306.46 51.00 @p 11.00 @a @endpage %%Page: 2 4 /pn 2 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 65.33 726.90 @p 11 @s @CR (a)@t @TR (,)@t 5.77 @a (not)@t 5.77 @a (with)@t 5.77 @a (its)@t 5.77 @a (components.)@t 5.77 @a (Data)@t 5.77 @a (manipulation)@t 5.77 @a (of)@t 5.77 @a (this)@t 5.77 @a (kind)@t 5.77 @a (is)@t 5.77 @a (handled)@t 5.77 @a (awkwardly,)@t 5.77 @a (if)@t 5.77 @a (at)@t 5.77 @a (all,)@t 5.77 @a (in)@t 5.77 @a (other)@t 65.33 712.90 @p (programming)@t 6.15 @a (models.)@t 6.15 @a (Its)@t 6.15 @a (natural)@t 6.15 @a (expression)@t 6.15 @a (in)@t 6.15 @a (co-array)@t 6.15 @a (syntax)@t 6.15 @a (places)@t 6.15 @a (power)@t 6.15 @a (and)@t 6.15 @a (flexibility)@t 6.15 @a (with)@t 6.15 @a (the)@t 65.33 698.90 @p (programmer,)@t 3.29 @a (where)@t 3.29 @a (they)@t 3.29 @a (belong.)@t 3.29 @a (This)@t 3.29 @a (technique)@t 3.29 @a (may)@t 3.29 @a (be)@t 3.29 @a (the)@t 3.29 @a (key)@t 3.29 @a (to)@t 3.29 @a (such)@t 3.29 @a (difficult)@t 3.29 @a (problems)@t 3.29 @a (as)@t 3.29 @a (adaptive)@t 3.29 @a (mesh)@t 65.33 684.90 @p (refinement,)@t 3.02 @a (which)@t 3.02 @a (must)@t 3.02 @a (be)@t 3.02 @a (solved)@t 3.02 @a (to)@t 3.02 @a (make)@t 3.02 @a (parallel)@t 3.02 @a (processing)@t 3.02 @a (on)@t 3.02 @a (large)@t 3.02 @a (machines)@t 3.02 @a (successful.)@t 258.96 670.10 @p 7 @s @SY (-)@t 262.81 670.10 @p 1.16 @a 263.98 670.10 @p @SY (-)@t 65.33 665.40 @p 11 @s @TR (Co-Array)@t 2.89 @a (Fortran)@t 2.89 @a (was)@t 2.89 @a (formerly)@t 2.89 @a (known)@t 2.89 @a (as)@t 251.99 665.40 @p (F)@t 268.93 665.40 @p (,)@t 2.89 @a (pronounced)@t 2.89 @a (eff-minus-minus.)@t 2.89 @a (The)@t 2.89 @a (name)@t 2.89 @a (was)@t 2.89 @a (meant)@t 2.89 @a (to)@t 2.89 @a (imply)@t 2.89 @a (a)@t 65.33 651.40 @p (small)@t 2.64 @a (addition)@t 2.64 @a (to)@t 2.64 @a (the)@t 2.64 @a (language,)@t 2.64 @a (but)@t 2.64 @a (was)@t 2.64 @a (often)@t 2.64 @a (misinterpreted.)@t 2.64 @a (It)@t 2.64 @a (evolved)@t 2.64 @a (from)@t 2.64 @a (a)@t 2.64 @a (simple)@t 2.64 @a (programming)@t 2.64 @a (model)@t 2.64 @a (for)@t 65.33 637.40 @p (the)@t 3.02 @a (CRA)@t -0.59 @a (Y-T3D)@t 3.02 @a (where)@t 3.02 @a (it)@t 3.02 @a (was)@t 3.02 @a (first)@t 3.02 @a (seen)@t 3.02 @a (as)@t 3.02 @a (a)@t 3.02 @a (back-up)@t 3.02 @a (plan)@t 3.02 @a (while)@t 3.02 @a (the)@t 3.02 @a (real)@t 3.02 @a (programming)@t 3.02 @a (models,)@t 3.02 @a (CRAFT,)@t 3.02 @a (HPF,)@t 65.33 623.40 @p (and)@t 4.00 @a (MPI,)@t 4.00 @a (were)@t 4.00 @a (developed.)@t 4.00 @a (This)@t 4.00 @a (embryonic)@t 4.00 @a (form)@t 4.00 @a (of)@t 4.00 @a (the)@t 4.00 @a (extension)@t 4.00 @a (was)@t 4.00 @a (described)@t 4.00 @a (only)@t 4.00 @a (in)@t 4.00 @a (internal)@t 4.00 @a (T)@t -0.59 @a (echnical)@t 65.33 609.40 @p (Reports)@t 2.69 @a (at)@t 2.69 @a (Cray)@t 2.69 @a (Research)@t 2.69 @a (\(Numrich)@t 2.69 @a (1991,)@t 2.69 @a (Numrich)@t 2.69 @a (1994a,)@t 2.69 @a (Numrich)@t 2.69 @a (1994b\).)@t 2.69 @a (In)@t 2.69 @a (some)@t 2.69 @a (sense,)@t 2.69 @a (Co-Array)@t 2.69 @a (Fortran)@t 65.33 595.40 @p (can)@t 4.29 @a (be)@t 4.29 @a (thought)@t 4.29 @a (of)@t 4.29 @a (as)@t 4.29 @a (syntax)@t 4.29 @a (for)@t 4.29 @a (the)@t 4.29 @a (one-sided)@t 4.29 @a (get/put)@t 4.29 @a (model)@t 4.29 @a (as)@t 4.29 @a (represented,)@t 4.29 @a (for)@t 4.29 @a (example,)@t 4.29 @a (in)@t 4.29 @a (the)@t 4.29 @a (SHMEM)@t 65.33 581.40 @p (Library)@t 2.91 @a (on)@t 2.91 @a (the)@t 2.91 @a (CRA)@t -0.59 @a (Y-T3D/E)@t 2.91 @a (and)@t 2.91 @a (on)@t 2.91 @a (the)@t 2.91 @a (CRA)@t -0.59 @a (Y)@t 2.91 @a (Origin)@t 2.91 @a (2000.)@t 2.91 @a (This)@t 2.91 @a (model)@t 2.91 @a (has)@t 2.91 @a (become)@t 2.91 @a (the)@t 2.91 @a (preferred)@t 2.91 @a (model)@t 2.91 @a (for)@t 65.33 567.40 @p (writing)@t 2.96 @a (one-sided)@t 2.96 @a (message-passing)@t 2.96 @a (code)@t 2.96 @a (for)@t 2.96 @a (those)@t 2.96 @a (machines)@t 2.96 @a (\(Numrich,)@t 2.96 @a (Springer,)@t 2.96 @a (and)@t 2.96 @a (P)@t -0.59 @a (eterson)@t 2.96 @a (1994;)@t 2.96 @a (Sawdey,)@t 65.33 553.40 @p (O'Keefe,)@t 3.49 @a (Bleck,)@t 3.49 @a (and)@t 3.49 @a (Numrich)@t 3.49 @a (1995\).)@t 3.49 @a (But)@t 3.49 @a (since)@t 3.49 @a (co-array)@t 3.49 @a (syntax)@t 3.49 @a (is)@t 3.49 @a (incorporated)@t 3.49 @a (into)@t 3.49 @a (the)@t 3.49 @a (language,)@t 3.49 @a (it)@t 3.49 @a (is)@t 3.49 @a (more)@t 65.33 539.40 @p (flexible)@t 3.02 @a (and)@t 3.02 @a (more)@t 3.02 @a (efficient)@t 3.02 @a (than)@t 3.02 @a (any)@t 3.02 @a (library)@t 3.02 @a (implementation)@t 3.02 @a (can)@t 3.02 @a (ever)@t 3.02 @a (be.)@t 217.79 524.59 @p 7 @s @SY (-)@t 221.64 524.59 @p 1.16 @a 222.80 524.59 @p @SY (-)@t 65.33 519.90 @p 11 @s @TR (The)@t 4.12 @a (first)@t 4.12 @a (informal)@t 4.12 @a (definition)@t 4.12 @a (of)@t 210.81 519.90 @p (F)@t 231.88 519.90 @p (\(Numrich)@t 4.12 @a (1997\))@t 4.12 @a (was)@t 4.12 @a (restricted)@t 4.12 @a (to)@t 4.12 @a (the)@t 4.12 @a (Fortran)@t 4.12 @a (77)@t 4.12 @a (language)@t 4.12 @a (and)@t 4.12 @a (used)@t 4.12 @a (a)@t 65.33 505.90 @p (different)@t 2.83 @a (syntax)@t 2.83 @a (to)@t 2.83 @a (represent)@t 2.83 @a (co-arrays.)@t 2.83 @a (T)@t -0.59 @a (o)@t 2.83 @a (remove)@t 2.83 @a (the)@t 2.83 @a (limitations)@t 2.83 @a (of)@t 2.83 @a (the)@t 2.83 @a (Fortran)@t 2.83 @a (77)@t 2.83 @a (language,)@t 2.83 @a (we)@t 2.83 @a (extended)@t 2.83 @a (the)@t 72.31 496.60 @p 7 @s @SY (-)@t 76.16 496.60 @p 1.16 @a 77.33 496.60 @p @SY (-)@t 65.33 491.90 @p 11 @s @TR (F)@t 86.73 491.90 @p (idea)@t 4.44 @a (to)@t 4.44 @a (the)@t 4.44 @a (Fortran)@t 4.44 @a (90)@t 4.44 @a (language)@t 4.44 @a (\(Numrich)@t 4.44 @a (and)@t 4.44 @a (Steidel)@t 4.44 @a (1997a;)@t 4.44 @a (Numrich)@t 4.44 @a (and)@t 4.44 @a (Steidel)@t 4.44 @a (1997b;)@t 4.44 @a (Numrich,)@t 65.33 477.90 @p (Steidel,)@t 4.00 @a (Johnson,)@t 4.00 @a (de)@t 4.00 @a (Dinechin,)@t 4.00 @a (Elsesser,)@t 4.00 @a (Fischer,)@t 4.00 @a (and)@t 4.00 @a (MacDonald)@t 4.00 @a (1997\).)@t 4.00 @a (In)@t 4.00 @a (these)@t 4.00 @a (papers,)@t 4.00 @a (the)@t 4.00 @a (programming)@t 65.33 463.90 @p (model)@t 4.25 @a (was)@t 4.25 @a (defined)@t 4.25 @a (more)@t 4.25 @a (precisely)@t 4.25 @a (and)@t 4.25 @a (an)@t 4.25 @a (attempt)@t 4.25 @a (was)@t 4.25 @a (made)@t 4.25 @a (to)@t 4.25 @a (divorce)@t 4.25 @a (the)@t 4.25 @a (model)@t 4.25 @a (from)@t 4.25 @a (the)@t 4.25 @a (subconscious)@t 65.33 449.90 @p (association)@t 3.78 @a (of)@t 3.78 @a (the)@t 3.78 @a (syntax)@t 3.78 @a (with)@t 3.78 @a (physical)@t 3.78 @a (processors)@t 3.78 @a (and)@t 3.78 @a (to)@t 3.78 @a (relate)@t 3.78 @a (it)@t 3.78 @a (more)@t 3.78 @a (to)@t 3.78 @a (the)@t 3.78 @a (logical)@t 3.78 @a (decomposition)@t 3.78 @a (of)@t 3.78 @a (the)@t 65.33 435.90 @p (underlying)@t 4.50 @a (physical)@t 4.50 @a (or)@t 4.50 @a (numerical)@t 4.50 @a (problem.)@t 4.50 @a (In)@t 4.50 @a (addition,)@t 4.50 @a (these)@t 4.50 @a (papers)@t 4.50 @a (started)@t 4.50 @a (to)@t 4.50 @a (work)@t 4.50 @a (through)@t 4.50 @a (some)@t 4.50 @a (of)@t 4.50 @a (the)@t 65.33 421.90 @p (complexities)@t 2.47 @a (and)@t 2.47 @a (idiosyncrasies)@t 2.47 @a (of)@t 2.47 @a (the)@t 2.47 @a (Fortran)@t 2.47 @a (90)@t 2.47 @a (language)@t 2.47 @a (as)@t 2.47 @a (they)@t 2.47 @a (relate)@t 2.47 @a (to)@t 2.47 @a (co-array)@t 2.47 @a (syntax.)@t 2.47 @a (This)@t 2.47 @a (current)@t 2.47 @a (paper)@t 65.33 407.90 @p (is)@t 3.02 @a (the)@t 3.02 @a (culmination)@t 3.02 @a (of)@t 3.02 @a (that)@t 3.02 @a (effort.)@t 65.33 388.40 @p (In)@t 3.01 @a (the)@t 3.01 @a (meantime,)@t 3.01 @a (portions)@t 3.01 @a (of)@t 3.01 @a (Co-Array)@t 3.01 @a (Fortran)@t 3.01 @a (have)@t 3.01 @a (been)@t 3.01 @a (incorporated)@t 3.01 @a (into)@t 3.01 @a (the)@t 3.01 @a (Cray)@t 3.01 @a (Fortran)@t 3.01 @a (90)@t 3.01 @a (compiler)@t 3.01 @a (and)@t 65.33 374.40 @p (various)@t 3.02 @a (applications)@t 3.02 @a (have)@t 3.02 @a (been)@t 3.02 @a (converted)@t 3.02 @a (to)@t 3.02 @a (the)@t 3.02 @a (syntax)@t 3.02 @a (\(see,)@t 3.02 @a (for)@t 3.02 @a (example,)@t 3.02 @a (Numrich,)@t 3.02 @a (Reid,)@t 3.02 @a (and)@t 3.02 @a (Kim)@t 3.02 @a (1998\).)@t 65.33 354.90 @p (In)@t 2.49 @a (the)@t 2.49 @a (next)@t 2.49 @a (section,)@t 2.49 @a (we)@t 2.49 @a (illustrate)@t 2.49 @a (the)@t 2.49 @a (power)@t 2.49 @a (of)@t 2.49 @a (the)@t 2.49 @a (language)@t 2.49 @a (with)@t 2.49 @a (some)@t 2.49 @a (simple)@t 2.49 @a (examples,)@t 2.49 @a (introducing)@t 2.49 @a (syntax)@t 2.49 @a (and)@t 65.33 340.90 @p (semantics)@t 2.87 @a (as)@t 2.87 @a (we)@t 2.87 @a (go,)@t 2.87 @a (without)@t 2.87 @a (attempting)@t 2.87 @a (to)@t 2.87 @a (be)@t 2.87 @a (complete.)@t 2.87 @a (Section)@t 2.87 @a (3)@t 2.87 @a (contains)@t 2.87 @a (a)@t 2.87 @a (complete)@t 2.87 @a (technical)@t 2.87 @a (specification,)@t 65.33 326.89 @p (Section)@t 2.98 @a (4)@t 2.98 @a (contains)@t 2.98 @a (improved)@t 2.98 @a (versions)@t 2.98 @a (of)@t 2.98 @a (the)@t 2.98 @a (codes)@t 2.98 @a (of)@t 2.98 @a (Section)@t 2.98 @a (2,)@t 2.98 @a (and)@t 2.98 @a (in)@t 2.98 @a (Section)@t 2.98 @a (5)@t 2.98 @a (we)@t 2.98 @a (make)@t 2.98 @a (some)@t 2.98 @a (comparisons)@t 65.33 312.89 @p (with)@t 5.29 @a (other)@t 5.29 @a (languages.)@t 5.29 @a (W)@t -0.59 @a (e)@t 5.29 @a (conclude)@t 5.29 @a (with)@t 5.29 @a (a)@t 5.29 @a (summary)@t 5.29 @a (of)@t 5.29 @a (the)@t 5.29 @a (features)@t 5.29 @a (of)@t 5.29 @a (Co-Array)@t 5.29 @a (Fortran)@t 5.29 @a (in)@t 5.29 @a (Section)@t 5.29 @a (6.)@t 65.33 298.89 @p (Appendices)@t 4.10 @a (1)@t 4.10 @a (and)@t 4.10 @a (2)@t 4.10 @a (explain)@t 4.10 @a (possible)@t 4.10 @a (extensions)@t 4.10 @a (and)@t 4.10 @a (Appendix)@t 4.10 @a (3)@t 4.10 @a (shows)@t 4.10 @a (how)@t 4.10 @a (the)@t 4.10 @a (intrinsic)@t 4.10 @a @CR (sync_memory)@t 65.33 284.89 @p @TR (permits)@t 3.02 @a (the)@t 3.02 @a (intrinsics)@t 3.02 @a @CR (sync_team)@t 3.02 @a @TR (and)@t 3.02 @a @CR (sync_all)@t 3.02 @a @TR (to)@t 3.02 @a (be)@t 3.02 @a (constructed)@t 3.02 @a (in)@t 3.02 @a (Co-Array)@t 3.02 @a (Fortran.)@t 65.33 265.39 @p (In)@t 2.87 @a (Section)@t 2.87 @a (3,)@t 2.87 @a (paragraphs)@t 2.87 @a (labeled)@t 2.87 @a (as)@t 2.87 @a (notes)@t 2.87 @a (are)@t 2.87 @a (non-normative,)@t 2.87 @a (that)@t 2.87 @a (is,)@t 2.87 @a (they)@t 2.87 @a (they)@t 2.87 @a (have)@t 2.87 @a (no)@t 2.87 @a (effect)@t 2.87 @a (on)@t 2.87 @a (the)@t 2.87 @a (definition)@t 65.33 251.39 @p (of)@t 2.75 @a (the)@t 2.75 @a (language.)@t 2.75 @a (They)@t 2.75 @a (are)@t 2.75 @a (there)@t 2.75 @a (to)@t 2.75 @a (help)@t 2.75 @a (the)@t 2.75 @a (reader)@t 2.75 @a (to)@t 2.75 @a (understand)@t 2.75 @a (a)@t 2.75 @a (feature)@t 2.75 @a (or)@t 2.75 @a (to)@t 2.75 @a (explain)@t 2.75 @a (the)@t 2.75 @a (reasoning)@t 2.75 @a (behind)@t 2.75 @a (it.)@t 297.93 51.00 @p @TB (2)@t 306.46 51.00 @p 11.00 @a @endpage %%Page: 3 5 /pn 3 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 65.33 724.60 @p 18 @s @TB (2)@t 4.95 @a 9.00 @a (Simple)@t 4.95 @a (examples)@t 65.33 705.70 @p 11 @s @TR (In)@t 4.07 @a (this)@t 4.07 @a (section,)@t 4.07 @a (we)@t 4.07 @a (consider)@t 4.07 @a (some)@t 4.07 @a (simple)@t 4.07 @a (examples.)@t 4.07 @a (By)@t 4.07 @a (these)@t 4.07 @a (examples,)@t 4.07 @a (we)@t 4.07 @a (do)@t 4.07 @a (not)@t 4.07 @a (mean)@t 4.07 @a (to)@t 4.07 @a (imply)@t 4.07 @a (that)@t 4.07 @a (we)@t 65.33 691.70 @p (expect)@t 3.47 @a (every)@t 3.47 @a (programmer)@t 3.47 @a (who)@t 3.47 @a (uses)@t 3.47 @a (co-array)@t 3.47 @a (syntax)@t 3.47 @a (to)@t 3.47 @a (reinvent)@t 3.47 @a (all)@t 3.47 @a (the)@t 3.47 @a (basic)@t 3.47 @a (communication)@t 3.47 @a (primitives.)@t 3.47 @a (The)@t 65.33 677.70 @p (examples)@t 3.12 @a (are)@t 3.12 @a (intended)@t 3.12 @a (to)@t 3.12 @a (illustrate)@t 3.12 @a (how)@t 3.12 @a (they)@t 3.12 @a (might)@t 3.12 @a (be)@t 3.12 @a (written)@t 3.12 @a (with)@t 3.12 @a (the)@t 3.12 @a (idea)@t 3.12 @a (of)@t 3.12 @a (including)@t 3.12 @a (them)@t 3.12 @a (in)@t 3.12 @a (a)@t 3.12 @a (library)@t 3.12 @a (for)@t 65.33 663.70 @p (general)@t 3.02 @a (use)@t 3.02 @a (and)@t 3.02 @a (how)@t 3.02 @a (easy)@t 3.02 @a (it)@t 3.02 @a (is)@t 3.02 @a (to)@t 3.02 @a (write)@t 3.02 @a (application)@t 3.02 @a (codes)@t 3.02 @a (requiring)@t 3.02 @a (more)@t 3.02 @a (complicated)@t 3.02 @a (communication.)@t 65.33 631.30 @p 12 @s @TB (2.1)@t 3.30 @a 6.00 @a (Finite)@t 3.30 @a (differencing)@t 3.30 @a (on)@t 3.30 @a (a)@t 3.30 @a (rectangular)@t 3.30 @a (grid)@t 65.33 612.40 @p 11 @s @TR (For)@t 2.53 @a (our)@t 2.53 @a (first)@t 2.53 @a (example,)@t 2.53 @a (suppose)@t 2.53 @a (we)@t 2.53 @a (have)@t 2.53 @a (a)@t 2.53 @a (rectangular)@t 2.53 @a (grid)@t 2.53 @a (with)@t 2.53 @a (periodic)@t 2.53 @a (boundary)@t 2.53 @a (conditions;)@t 2.53 @a (at)@t 2.53 @a (each)@t 2.53 @a (point,)@t 2.53 @a (we)@t 65.33 598.40 @p (want)@t 5.37 @a (to)@t 5.37 @a (sum)@t 5.37 @a (the)@t 5.37 @a (values)@t 5.37 @a (at)@t 5.37 @a (neighbouring)@t 5.37 @a (points)@t 5.37 @a (and)@t 5.37 @a (subtract)@t 5.37 @a (four)@t 5.37 @a (times)@t 5.37 @a (the)@t 5.37 @a (value)@t 5.37 @a (at)@t 5.37 @a (the)@t 5.37 @a (point)@t 5.37 @a (\(5-point)@t 65.33 584.40 @p (approximation)@t 7.10 @a (to)@t 7.10 @a (the)@t 7.10 @a (Laplacian)@t 7.10 @a (operator\).)@t 7.10 @a (W)@t -0.59 @a (e)@t 7.10 @a (suppose)@t 7.10 @a (that)@t 7.10 @a (the)@t 7.10 @a (data)@t 7.10 @a (is)@t 7.10 @a (distributed)@t 7.10 @a (as)@t 7.10 @a (the)@t 7.10 @a (co-array)@t 65.33 570.40 @p @CR (u\(1:nrow\)[1:ncol])@t @TR (,)@t 2.43 @a (in)@t 2.43 @a (both)@t 2.43 @a (the)@t 2.43 @a (local)@t 2.43 @a (dimension)@t 2.43 @a (and)@t 2.43 @a (the)@t 2.43 @a (co-dimension.)@t 2.43 @a (If)@t 2.43 @a @CR (ncol)@t 2.43 @a @TR (is)@t 2.43 @a (equal)@t 2.43 @a (to)@t 2.43 @a (the)@t 2.43 @a (number)@t 2.43 @a (of)@t 65.33 556.40 @p (images,)@t 3.02 @a (the)@t 3.02 @a (following)@t 3.02 @a (procedure)@t 3.02 @a (is)@t 3.02 @a (one)@t 3.02 @a (way)@t 3.02 @a (to)@t 3.02 @a (perform)@t 3.02 @a (the)@t 3.02 @a (calculation.)@t 65.33 540.30 @p 10 @s @CR ( subroutine laplace \(nrow,ncol,u\))@t 65.33 529.30 @p ( integer, intent\(in\) :: nrow, ncol)@t 65.33 518.30 @p ( real, intent\(inout\) :: u\(nrow\)[*])@t 65.33 507.30 @p ( real :: new_u\(nrow\))@t 65.33 496.30 @p ( integer :: i, me, left, right)@t 65.33 485.30 @p ( new_u\(1\) = u\(nrow\) + u\(2\))@t 65.33 474.30 @p ( new_u\(nrow\) = u\(1\) + u\(nrow-1\))@t 65.33 463.30 @p ( new_u\(2:nrow-1\) = u\(1:nrow-2\) + u\(3:nrow\))@t 65.33 452.30 @p ( me = this_image\(u\) ! Returns the co-subscript within u)@t 65.33 441.30 @p ( ! that refers to the current image)@t 65.33 430.30 @p ( left = me-1; if \(me == 1\) left = ncol)@t 65.33 419.30 @p ( right = me + 1; if \(me == ncol\) right = 1)@t 65.33 408.30 @p ( call sync_all\( \(/left,right/\) \) ! Wait if left and right)@t 65.33 397.30 @p ( ! have not already reached here)@t 65.33 386.30 @p ( new_u\(1:nrow\)=new_u\(1:nrow\)+u\(1:nrow\)[left]+u\(1:nrow\)[right])@t 65.33 375.30 @p ( call sync_all\( \(/left,right/\) \))@t 65.33 364.30 @p ( u\(1:nrow\) = new_u\(1:nrow\) - 4.0*u\(1:nrow\))@t 65.33 353.30 @p ( end subroutine laplace)@t 65.33 334.20 @p 11 @s @TR (In)@t 2.93 @a (the)@t 2.93 @a (first)@t 2.93 @a (part)@t 2.93 @a (of)@t 2.93 @a (the)@t 2.93 @a (procedure,)@t 2.93 @a (we)@t 2.93 @a (add)@t 2.93 @a (together)@t 2.93 @a (neighbouring)@t 2.93 @a (values)@t 2.93 @a (of)@t 2.93 @a (the)@t 2.93 @a (array)@t 2.93 @a (along)@t 2.93 @a (the)@t 2.93 @a (local)@t 2.93 @a (dimension,)@t 65.33 320.20 @p (being)@t 2.53 @a (careful)@t 2.53 @a (to)@t 2.53 @a (enforce)@t 2.53 @a (the)@t 2.53 @a (periodic)@t 2.53 @a (boundary)@t 2.53 @a (conditions.)@t 2.53 @a (W)@t -0.59 @a (e)@t 2.53 @a (place)@t 2.53 @a (the)@t 2.53 @a (result)@t 2.53 @a (in)@t 2.53 @a (a)@t 2.53 @a (temporary)@t 2.53 @a (array)@t 2.53 @a (because)@t 2.53 @a (we)@t 65.33 306.20 @p (cannot)@t 5.16 @a (overwrite)@t 5.16 @a (the)@t 5.16 @a (original)@t 5.16 @a (values)@t 5.16 @a (until)@t 5.16 @a (the)@t 5.16 @a (averaging)@t 5.16 @a (is)@t 5.16 @a (complete.)@t 5.16 @a (W)@t -0.59 @a (e)@t 5.16 @a (obtain)@t 5.16 @a (the)@t 5.16 @a (co-subscript)@t 5.16 @a (of)@t 5.16 @a (the)@t 65.33 292.20 @p (invoking)@t 5.50 @a (image)@t 5.50 @a (from)@t 5.50 @a (the)@t 5.50 @a (intrinsic)@t 5.50 @a (function)@t 5.50 @a @CR (this_image\(u\))@t 5.50 @a @TR (and)@t 5.50 @a (then)@t 5.50 @a (enforce)@t 5.50 @a (the)@t 5.50 @a (periodic)@t 5.50 @a (boundary)@t 65.33 278.20 @p (conditions)@t 2.55 @a (across)@t 2.55 @a (the)@t 2.55 @a (co-dimension)@t 2.55 @a (in)@t 2.55 @a (the)@t 2.55 @a (same)@t 2.55 @a (way)@t 2.55 @a (that)@t 2.54 @a (we)@t 2.55 @a (did)@t 2.55 @a (for)@t 2.55 @a (the)@t 2.55 @a (local)@t 2.55 @a (dimension.)@t 2.55 @a (The)@t 2.55 @a (Co-Array)@t 2.55 @a (Fortran)@t 65.33 264.20 @p (execution)@t 3.00 @a (model)@t 3.00 @a (is)@t 3.00 @a (asynchronous)@t 3.00 @a (SPMD,)@t 3.00 @a (not)@t 3.00 @a (synchronous)@t 3.00 @a (SIMD,)@t 3.00 @a (so)@t 3.00 @a (we)@t 3.00 @a (must)@t 3.00 @a (synchronize)@t 3.00 @a (explicitly)@t 3.00 @a (with)@t 3.00 @a (the)@t 65.33 250.20 @p (intrinsic)@t 2.94 @a (procedure)@t 2.94 @a @CR (sync_all)@t 2.94 @a @TR (to)@t 2.94 @a (make)@t 2.94 @a (sure)@t 2.94 @a (the)@t 2.94 @a (values)@t 2.94 @a (of)@t 2.94 @a (the)@t 2.94 @a (array)@t 2.94 @a (on)@t 2.94 @a (neighbouring)@t 2.94 @a (images)@t 2.94 @a (are)@t 2.94 @a (ready)@t 2.94 @a (before)@t 65.33 236.20 @p (using)@t 2.45 @a (them.)@t 2.45 @a (After)@t 2.45 @a (adding)@t 2.45 @a (the)@t 2.45 @a (values)@t 2.45 @a (from)@t 2.45 @a (these)@t 2.45 @a (images)@t 2.45 @a (into)@t 2.45 @a (the)@t 2.45 @a (local)@t 2.45 @a (temporary)@t 2.45 @a (array,)@t 2.45 @a (we)@t 2.45 @a (synchronize)@t 2.45 @a (a)@t 2.45 @a (second)@t 65.33 222.20 @p (time)@t 2.80 @a (to)@t 2.80 @a (make)@t 2.80 @a (sure)@t 2.80 @a (the)@t 2.80 @a (neighbouring)@t 2.80 @a (images)@t 2.80 @a (have)@t 2.81 @a (obtained)@t 2.80 @a (the)@t 2.80 @a (original)@t 2.80 @a (local)@t 2.80 @a (values)@t 2.80 @a (before)@t 2.80 @a (altering)@t 2.80 @a (them.)@t 2.80 @a (After)@t 65.33 208.20 @p (the)@t 5.89 @a (second)@t 5.89 @a (synchronization,)@t 5.89 @a (each)@t 5.89 @a (image)@t 5.89 @a (replaces)@t 5.89 @a (the)@t 5.89 @a (data)@t 5.89 @a (in)@t 5.89 @a (its)@t 5.89 @a (local)@t 5.89 @a (array)@t 5.89 @a (with)@t 5.89 @a (the)@t 5.89 @a (averaged)@t 5.89 @a (values)@t 65.33 194.20 @p (corresponding)@t 3.02 @a (to)@t 3.02 @a (the)@t 3.02 @a (finite)@t 3.02 @a (difference)@t 3.02 @a (approximation)@t 3.02 @a (for)@t 3.02 @a (the)@t 3.02 @a (Laplacian)@t 3.02 @a (operator)@t 3.02 @a (and)@t 3.02 @a (returns.)@t 65.33 161.79 @p 12 @s @TB (2.2)@t 3.30 @a 6.00 @a (Data)@t 3.30 @a (redistribution)@t 65.33 142.89 @p 11 @s @TR (Our)@t 2.77 @a (second)@t 2.77 @a (example)@t 2.77 @a (comes)@t 2.77 @a (from)@t 2.77 @a (the)@t 2.77 @a (application)@t 2.77 @a (of)@t 2.77 @a (fast)@t 2.77 @a (Fourier)@t 2.77 @a (transforms.)@t 2.77 @a (Suppose)@t 2.77 @a (we)@t 2.77 @a (have)@t 2.77 @a (a)@t 2.77 @a (3-dimensional)@t 65.33 128.89 @p (co-array)@t 3.49 @a (with)@t 3.49 @a (one)@t 3.49 @a (dimension)@t 3.49 @a (spread)@t 3.49 @a (across)@t 3.49 @a (images:)@t 3.49 @a @CR (a\(1:kx,1:ky\)[1:kz])@t 3.49 @a @TR (and)@t 3.49 @a (need)@t 3.49 @a (to)@t 3.49 @a (copy)@t 3.49 @a (data)@t 3.49 @a (into)@t 3.49 @a (it)@t 65.33 114.89 @p (from)@t 2.89 @a (a)@t 2.89 @a (co-array)@t 2.89 @a (with)@t 2.89 @a (a)@t 2.89 @a (different)@t 2.89 @a (dimension)@t 2.89 @a (spread)@t 2.89 @a (across)@t 2.89 @a (images:)@t 2.89 @a @CR (b\(1:ky,1:kz\)[1:kx])@t @TR (.)@t 2.89 @a (W)@t -0.59 @a (e)@t 2.89 @a (assume)@t 2.89 @a (that)@t 65.33 100.89 @p (the)@t 3.02 @a (arrays)@t 3.02 @a (are)@t 3.02 @a (declared)@t 3.02 @a (thus:)@t 65.33 84.70 @p 10 @s @CR ( real :: a\(kx,ky\)[*], b\(ky,kz\)[*])@t 297.93 51.00 @p 11 @s @TB (3)@t 306.46 51.00 @p 11.00 @a @endpage %%Page: 4 6 /pn 4 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 65.33 726.90 @p 11 @s @TR (Of)@t 3.26 @a (course,)@t 3.26 @a (the)@t 3.26 @a (number)@t 3.26 @a (of)@t 3.26 @a (images)@t 3.26 @a (must)@t 3.26 @a (be)@t 3.26 @a (at)@t 3.26 @a (least)@t 3.26 @a @CR (max\(kx,kz\))@t @TR (.)@t 3.26 @a (If)@t 3.26 @a (the)@t 3.26 @a (number)@t 3.26 @a (of)@t 3.26 @a (images)@t 3.26 @a (is)@t 3.26 @a (exactly)@t 3.26 @a @CR (kz)@t @TR (,)@t 3.26 @a (the)@t 65.33 712.90 @p (following)@t 3.02 @a (Co-Array)@t 3.02 @a (Fortran)@t 3.02 @a (code)@t 3.02 @a (does)@t 3.02 @a (what)@t 3.02 @a (is)@t 3.02 @a (needed:)@t 65.33 696.50 @p 10 @s @CR ( iz = this_image\(a\))@t 65.33 685.50 @p ( do ix = 1, kx)@t 65.33 674.50 @p ( do iy = 1, ky)@t 65.33 663.50 @p ( a\(ix,iy\) = b\(iy,iz\)[ix])@t 65.33 652.50 @p ( end do)@t 65.33 641.50 @p ( end do)@t 65.33 622.20 @p 11 @s @TR (The)@t 2.74 @a (outer)@t 2.74 @a (do)@t 2.74 @a (construct)@t 2.74 @a (is)@t 2.74 @a (executed)@t 2.74 @a (on)@t 2.74 @a (each)@t 2.74 @a (image)@t 2.74 @a (and)@t 2.74 @a (it)@t 2.74 @a (ranges)@t 2.74 @a (over)@t 2.74 @a (all)@t 2.74 @a (the)@t 2.74 @a (images)@t 2.74 @a (from)@t 2.74 @a (which)@t 2.74 @a (data)@t 2.74 @a (is)@t 2.74 @a (needed.)@t 65.33 608.20 @p (The)@t 2.56 @a (inner)@t 2.56 @a (do)@t 2.56 @a (construct)@t 2.56 @a (is)@t 2.56 @a (a)@t 2.56 @a (clear)@t 2.56 @a (representation)@t 2.56 @a (of)@t 2.56 @a (the)@t 2.56 @a (data)@t 2.56 @a (transfer;)@t 2.56 @a (it)@t 2.56 @a (can)@t 2.56 @a (also)@t 2.56 @a (be)@t 2.56 @a (written)@t 2.56 @a (as)@t 2.56 @a (the)@t 2.56 @a (array)@t 2.56 @a (statement)@t 65.33 591.80 @p 10 @s @CR ( a\(ix,:\) = b\(:,iz\)[ix])@t 65.33 572.50 @p 11 @s @TR (In)@t 3.02 @a (the)@t 3.02 @a (cycle)@t 3.02 @a (with)@t 3.02 @a @CR (ix=iz)@t @TR (,)@t 3.02 @a (only)@t 3.02 @a (local)@t 3.02 @a (data)@t 3.02 @a (transfer)@t 3.02 @a (takes)@t 3.02 @a (place.)@t 3.02 @a (This)@t 3.02 @a (is)@t 3.02 @a (permitted,)@t 3.02 @a (but)@t 3.02 @a (the)@t 3.02 @a (statement)@t 65.33 556.19 @p 10 @s @CR ( a\(iz,:\) = b\(:,iz\))@t 65.33 536.80 @p 11 @s @TR (might)@t 3.02 @a (be)@t 3.02 @a (more)@t 3.02 @a (efficient)@t 3.02 @a (in)@t 3.02 @a (execution)@t 3.02 @a (than)@t 3.02 @a (the)@t 3.02 @a (statement)@t 65.33 520.50 @p 10 @s @CR ( a\(iz,:\) = b\(:,iz\)[iz])@t 65.33 501.20 @p 11 @s @TR (If)@t 2.87 @a (the)@t 2.87 @a (number)@t 2.87 @a (of)@t 2.87 @a (images)@t 2.87 @a (is)@t 2.87 @a (greater)@t 2.87 @a (than)@t 2.87 @a @CR (kz)@t @TR (,)@t 2.87 @a (the)@t 2.87 @a (code)@t 2.87 @a (will)@t 2.87 @a (be)@t 2.87 @a (erroneous)@t 2.87 @a (on)@t 2.87 @a (the)@t 2.87 @a (additional)@t 2.87 @a (images)@t 2.87 @a (because)@t 2.87 @a (of)@t 2.87 @a (an)@t 65.33 487.20 @p (out-of-range)@t 3.02 @a (subscript.)@t 3.02 @a (W)@t -0.59 @a (e)@t 3.02 @a (therefore)@t 3.02 @a (need)@t 3.02 @a (to)@t 3.02 @a (change)@t 3.02 @a (the)@t 3.02 @a (code)@t 3.02 @a (to:)@t 65.33 470.80 @p 10 @s @CR ( iz = this_image\(a\))@t 65.33 459.80 @p ( if \(iz<=kz\) then)@t 65.33 448.80 @p ( do ix = 1, kx)@t 65.33 437.80 @p ( a\(ix,:\) = b\(:,iz\)[ix])@t 65.33 426.80 @p ( end do)@t 65.33 415.80 @p ( end if)@t 65.33 363.80 @p 12 @s @TB (2.3)@t 3.30 @a 6.00 @a (Maximum)@t 3.30 @a (value)@t 3.30 @a (of)@t 3.30 @a (a)@t 3.30 @a (co-array)@t 65.33 344.70 @p 11 @s @TR (Our)@t 2.91 @a (next)@t 2.91 @a (example)@t 2.91 @a (finds)@t 2.91 @a (the)@t 2.91 @a (maximum)@t 2.91 @a (value)@t 2.91 @a (of)@t 2.91 @a (a)@t 2.91 @a (co-array)@t 2.91 @a (and)@t 2.91 @a (broadcasts)@t 2.91 @a (the)@t 2.91 @a (result)@t 2.91 @a (to)@t 2.91 @a (all)@t 2.91 @a (the)@t 2.91 @a (images.)@t 2.91 @a (On)@t 2.91 @a (each)@t 65.33 330.70 @p (image,)@t 4.51 @a (the)@t 4.51 @a (code)@t 4.51 @a (begins)@t 4.51 @a (by)@t 4.51 @a (finding)@t 4.51 @a (the)@t 4.51 @a (local)@t 4.51 @a (maximum.)@t 4.51 @a (Synchronization)@t 4.51 @a (is)@t 4.51 @a (then)@t 4.51 @a (needed)@t 4.51 @a (to)@t 4.51 @a (ensure)@t 4.51 @a (that)@t 4.51 @a (all)@t 65.33 316.70 @p (images)@t 2.46 @a (have)@t 2.46 @a (performed)@t 2.46 @a (this)@t 2.46 @a (task)@t 2.46 @a (before)@t 2.46 @a (the)@t 2.46 @a (maximum)@t 2.46 @a (of)@t 2.46 @a (the)@t 2.46 @a (results)@t 2.46 @a (is)@t 2.46 @a (computed.)@t 2.46 @a (W)@t -0.59 @a (e)@t 2.46 @a (then)@t 2.46 @a (use)@t 2.46 @a (the)@t 2.46 @a (first)@t 2.46 @a (image)@t 2.46 @a (to)@t 65.33 302.70 @p (gather)@t 5.19 @a (the)@t 5.19 @a (local)@t 5.19 @a (maxima,)@t 5.19 @a (find)@t 5.19 @a (the)@t 5.19 @a (global)@t 5.19 @a (maximum)@t 5.19 @a (and)@t 5.19 @a (scatter)@t 5.19 @a (the)@t 5.19 @a (result)@t 5.19 @a (to)@t 5.19 @a (the)@t 5.19 @a (other)@t 5.19 @a (images.)@t 5.19 @a (Another)@t 65.33 288.70 @p (synchronization)@t 3.02 @a (is)@t 3.02 @a (needed)@t 3.02 @a (so)@t 3.02 @a (that)@t 3.02 @a (none)@t 3.02 @a (of)@t 3.02 @a (the)@t 3.02 @a (images)@t 3.02 @a (leave)@t 3.02 @a (the)@t 3.02 @a (procedure)@t 3.02 @a (with)@t 3.02 @a (the)@t 3.02 @a (result)@t 3.02 @a (in)@t 3.02 @a (its)@t 3.02 @a (memory.)@t 65.33 272.39 @p 10 @s @CR ( subroutine greatest\(a,great\) ! Find maximum value of a\(:\)[*])@t 65.33 261.39 @p ( real, intent\(in\) :: a\(:\)[*])@t 65.33 250.39 @p ( real, intent\(out\) :: great[*])@t 65.33 239.39 @p ( real :: work\(num_images\(\)\) ! Local work array)@t 65.33 228.39 @p ( great = maxval\(a\(:\)\))@t 65.33 217.39 @p ( call sync_all ! Wait for all other images to reach here)@t 65.33 206.39 @p ( if\(this_image\(great\)==1\)then)@t 65.33 195.39 @p ( work\(:\) = great[:] ! Gather local maxima)@t 65.33 184.39 @p ( great[:]=maxval\(work\) ! Broadcast the global maximum)@t 65.33 173.39 @p ( end if)@t 65.33 162.39 @p ( call sync_all)@t 65.33 151.39 @p ( end subroutine greatest)@t 65.33 132.09 @p 11 @s @TR (The)@t 3.85 @a (work)@t 3.85 @a (array)@t 3.85 @a (is)@t 3.85 @a (needed)@t 3.85 @a (only)@t 3.85 @a (on)@t 3.85 @a (the)@t 3.85 @a (first)@t 3.85 @a (image,)@t 3.85 @a (so)@t 3.85 @a (storage)@t 3.85 @a (will)@t 3.85 @a (be)@t 3.85 @a (wasted)@t 3.85 @a (on)@t 3.85 @a (the)@t 3.85 @a (other)@t 3.85 @a (images.)@t 3.85 @a (If)@t 3.85 @a (this)@t 3.85 @a (is)@t 65.33 118.09 @p (important,)@t 3.00 @a (we)@t 3.00 @a (may)@t 3.00 @a (use)@t 3.00 @a (an)@t 3.00 @a (allocatable)@t 3.00 @a (array)@t 3.00 @a (that)@t 3.00 @a (is)@t 3.00 @a (allocated)@t 3.00 @a (only)@t 3.00 @a (on)@t 3.00 @a (the)@t 3.00 @a (first)@t 3.00 @a (image)@t 3.00 @a (\(see)@t 3.00 @a (the)@t 3.00 @a (enhanced)@t 3.00 @a (version)@t 65.33 104.09 @p (in)@t 3.02 @a (Section)@t 3.02 @a (4.3\).)@t 65.33 85.00 @p (Note)@t 2.71 @a (that)@t 2.71 @a (we)@t 2.71 @a (have)@t 2.71 @a (used)@t 2.71 @a (array)@t 2.71 @a (sections)@t 2.71 @a (with)@t 2.71 @a (square)@t 2.71 @a (brackets)@t 2.71 @a (in)@t 2.71 @a (an)@t 2.71 @a (intrinsic)@t 2.71 @a (assignment.)@t 2.71 @a (These)@t 2.71 @a (may)@t 2.71 @a (also)@t 2.71 @a (be)@t 2.71 @a (used)@t 297.93 51.00 @p @TB (4)@t 306.46 51.00 @p 11.00 @a @endpage %%Page: 5 7 /pn 5 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 65.33 726.90 @p 11 @s @TR (in)@t 2.77 @a (intrinsic)@t 2.77 @a (operations.)@t 2.77 @a (Although)@t 2.77 @a (the)@t 2.77 @a (processor)@t 2.77 @a (does)@t 2.77 @a (not)@t 2.77 @a (need)@t 2.77 @a (to)@t 2.77 @a (do)@t 2.77 @a (it)@t 2.77 @a (this)@t 2.77 @a (way,)@t 2.77 @a (the)@t 2.77 @a (effect)@t 2.77 @a (must)@t 2.77 @a (be)@t 2.77 @a (as)@t 2.77 @a (if)@t 2.77 @a (the)@t 2.77 @a (data)@t 65.33 712.90 @p (were)@t 3.11 @a (collected)@t 3.11 @a (into)@t 3.11 @a (a)@t 3.11 @a (temporary)@t 3.11 @a (array)@t 3.11 @a (on)@t 3.11 @a (the)@t 3.11 @a (current)@t 3.11 @a (image)@t 3.11 @a (and)@t 3.11 @a (the)@t 3.11 @a (operation)@t 3.11 @a (performed)@t 3.11 @a (there.)@t 3.11 @a (For)@t 3.11 @a (simplicity)@t 65.33 698.90 @p (of)@t 5.69 @a (implementation,)@t 5.69 @a (we)@t 5.69 @a (have)@t 5.69 @a (restricted)@t 5.69 @a (this)@t 5.69 @a (feature)@t 5.69 @a (to)@t 5.69 @a (the)@t 5.69 @a (intrinsic)@t 5.69 @a (operations)@t 5.69 @a (and)@t 5.69 @a (intrinsic)@t 5.69 @a (assignment.)@t 65.33 684.90 @p (However,)@t 2.88 @a (round)@t 2.88 @a (brackets)@t 2.88 @a (can)@t 2.88 @a (always)@t 2.88 @a (be)@t 2.88 @a (employed)@t 2.88 @a (to)@t 2.88 @a (create)@t 2.88 @a (an)@t 2.88 @a (expression)@t 2.88 @a (and)@t 2.88 @a (have)@t 2.88 @a (the)@t 2.88 @a (effect)@t 2.88 @a (of)@t 2.88 @a (a)@t 2.88 @a (copy)@t 2.88 @a (being)@t 65.33 670.90 @p (made)@t 3.02 @a (on)@t 3.02 @a (the)@t 3.02 @a (current)@t 3.02 @a (image.)@t 3.02 @a (For)@t 3.02 @a (example,)@t 3.02 @a (a)@t 3.02 @a (possible)@t 3.02 @a (implementation)@t 3.02 @a (of)@t 3.02 @a (the)@t 3.02 @a (example)@t 3.02 @a (of)@t 3.02 @a (this)@t 3.02 @a (section)@t 3.02 @a (is)@t 65.33 649.90 @p 10 @s @CR ( if\(this_image\(a\)==1\)then)@t 65.33 638.90 @p ( great[:]=maxval\( \(a\(:\)[:]\) \))@t 65.33 627.90 @p ( end if)@t 65.33 603.50 @p 11 @s @TR (but)@t 3.67 @a (this)@t 3.67 @a (would)@t 3.67 @a (probably)@t 3.67 @a (be)@t 3.67 @a (slow)@t 3.67 @a (since)@t 3.67 @a (all)@t 3.67 @a (the)@t 3.67 @a (data)@t 3.67 @a (has)@t 3.67 @a (to)@t 3.67 @a (be)@t 3.67 @a (copied)@t 3.67 @a (to)@t 3.67 @a (image)@t 3.67 @a (1)@t 3.67 @a (and)@t 3.67 @a (all)@t 3.67 @a (the)@t 3.67 @a (work)@t 3.67 @a (is)@t 3.67 @a (done)@t 3.67 @a (by)@t 65.33 589.50 @p (image)@t 3.02 @a (1.)@t 65.33 536.50 @p 12 @s @TB (2.4)@t 3.30 @a 6.00 @a (Finite-element)@t 3.30 @a (example)@t 65.33 512.80 @p 11 @s @TR (W)@t -0.59 @a (e)@t 4.65 @a (now)@t 4.65 @a (consider)@t 4.65 @a (a)@t 4.65 @a (finite-element)@t 4.65 @a (example.)@t 4.65 @a (Suppose)@t 4.65 @a (each)@t 4.65 @a (image)@t 4.65 @a (works)@t 4.65 @a (with)@t 4.65 @a (a)@t 4.65 @a (set)@t 4.65 @a (of)@t 4.65 @a (elements)@t 4.65 @a (and)@t 4.65 @a (their)@t 65.33 498.80 @p (associated)@t 3.06 @a (nodes,)@t 3.06 @a (which)@t 3.06 @a (means)@t 3.06 @a (that)@t 3.06 @a (some)@t 3.06 @a (nodes)@t 3.06 @a (appear)@t 3.06 @a (on)@t 3.06 @a (more)@t 3.06 @a (than)@t 3.06 @a (one)@t 3.06 @a (image.)@t 3.06 @a (W)@t -0.59 @a (e)@t 3.06 @a (treat)@t 3.06 @a (one)@t 3.06 @a (of)@t 3.06 @a (these)@t 3.06 @a (nodes)@t 65.33 484.80 @p (as)@t 3.14 @a (the)@t 3.14 @a (principal)@t 3.14 @a (and)@t 3.14 @a (the)@t 3.14 @a (rest)@t 3.14 @a (as)@t 3.14 @a (`ghosts'.)@t 3.14 @a (For)@t 3.14 @a (each)@t 3.14 @a (image,)@t 3.14 @a (we)@t 3.14 @a (store)@t 3.14 @a (pairs)@t 3.14 @a (of)@t 3.14 @a (indices)@t 3.14 @a @CR (\(prin\(i\),ghost\(i\)\))@t 65.33 470.80 @p @TR (of)@t 2.88 @a (principals)@t 2.88 @a (on)@t 2.88 @a (the)@t 2.88 @a (image)@t 2.88 @a (and)@t 2.88 @a (corresponding)@t 2.88 @a (ghosts)@t 2.88 @a (on)@t 2.88 @a (other)@t 2.88 @a (images.)@t 2.88 @a (W)@t -0.59 @a (e)@t 2.88 @a (group)@t 2.88 @a (them)@t 2.88 @a (by)@t 2.88 @a (the)@t 2.88 @a (image)@t 2.88 @a (indices)@t 2.88 @a (of)@t 65.33 456.80 @p (the)@t 3.02 @a (ghosts.)@t 65.33 433.00 @p (In)@t 2.50 @a (the)@t 2.50 @a (assembly)@t 2.50 @a (step)@t 2.50 @a (for)@t 2.50 @a (a)@t 2.50 @a (vector)@t 2.50 @a @TB (x)@t @TR (,)@t 2.50 @a (we)@t 2.50 @a (first)@t 2.50 @a (add)@t 2.50 @a (contributions)@t 2.50 @a (from)@t 2.50 @a (the)@t 2.50 @a (elements)@t 2.50 @a (in)@t 2.50 @a (independent)@t 2.50 @a (calculations)@t 2.50 @a (on)@t 65.33 419.00 @p (all)@t 3.47 @a (the)@t 3.47 @a (images.)@t 3.47 @a (Once)@t 3.47 @a (this)@t 3.47 @a (is)@t 3.47 @a (done,)@t 3.47 @a (for)@t 3.47 @a (each)@t 3.47 @a (principal)@t 3.47 @a (and)@t 3.47 @a (its)@t 3.47 @a (ghosts,)@t 3.47 @a (we)@t 3.47 @a (need)@t 3.47 @a (to)@t 3.47 @a (add)@t 3.47 @a (all)@t 3.47 @a (the)@t 3.47 @a (contributions)@t 3.47 @a (and)@t 65.33 405.00 @p (place)@t 3.02 @a (the)@t 3.02 @a (result)@t 3.02 @a (back)@t 3.02 @a (in)@t 3.02 @a (all)@t 3.02 @a (of)@t 3.02 @a (them.)@t 3.02 @a (The)@t 3.02 @a (following)@t 3.02 @a (is)@t 3.02 @a (suitable:)@t 65.33 384.00 @p 10 @s @CR ( subroutine assemble\(start,prin,ghost,neib,x\))@t 65.33 373.00 @p ( ! Accumulate values at nodes with ghosts on other images)@t 65.33 362.00 @p ( integer, intent\(in\) :: start\(:\), prin\(:\), ghost\(:\), neib\(:\))@t 65.33 351.00 @p ( ! Node prin\(i\) is the principal for ghost node ghost\(i\) on image neib)@t (\(p\),)@t 65.33 340.00 @p ( ! i = start\(p\), ... start\(p+1\)-1, p=1,2,...,size\(neib\).)@t 65.33 329.00 @p ( real, intent\(inout\) :: x\(:\)[*])@t 65.33 318.00 @p ( integer k1,k2,p)@t 65.33 307.00 @p ( call sync_all \(neib\))@t 65.33 296.00 @p ( do p = 1,size\(neib\) ! Add in contributions from the ghosts)@t 65.33 285.00 @p ( k1 = start\(p\); k2 = start\(p+1\)-1)@t 65.33 274.00 @p ( x\(prin\(k1:k2\)\) = x\(prin\(k1:k2\)\) + x\(ghost\(k1:k2\)\)[neib)@t (\(p\)])@t 65.33 263.00 @p ( end do)@t 65.33 252.00 @p ( call sync_all \(neib\))@t 65.33 241.00 @p ( do p = 1,size\(neib\) ! Update the ghosts)@t 65.33 230.00 @p ( k1 = start\(p\); k2 = start\(p+1\)-1)@t 65.33 219.00 @p ( x\(ghost\(k1:k2\)\)[neib\(p\)] = x\(prin\(k1:k2\)\))@t 65.33 208.00 @p ( end do)@t 65.33 197.00 @p ( call sync_all)@t 65.33 186.00 @p ( end subroutine assemble)@t 65.33 122.70 @p 12 @s @TB (2.5)@t 3.30 @a 6.00 @a (Summing)@t 3.30 @a (over)@t 3.30 @a (the)@t 3.30 @a (co-dimension)@t 3.30 @a (of)@t 3.30 @a (a)@t 3.30 @a (co-array)@t 65.33 99.00 @p 11 @s @TR (W)@t -0.59 @a (e)@t 2.99 @a (now)@t 2.99 @a (consider)@t 2.99 @a (the)@t 2.99 @a (problem)@t 2.99 @a (of)@t 2.99 @a (summing)@t 2.99 @a (over)@t 2.99 @a (the)@t 2.99 @a (co-dimension)@t 2.99 @a (of)@t 2.99 @a (a)@t 2.99 @a (co-array)@t 2.99 @a (and)@t 2.99 @a (broadcasting)@t 2.99 @a (the)@t 2.99 @a (result)@t 2.99 @a (to)@t 65.33 85.00 @p (all)@t 3.02 @a (images.)@t 3.02 @a (A)@t 3.02 @a (possible)@t 3.02 @a (implementation)@t 3.02 @a (is)@t 3.02 @a (as)@t 3.02 @a (follows,)@t 3.02 @a (using)@t 3.02 @a (the)@t 3.02 @a (first)@t 3.02 @a (image)@t 3.02 @a (to)@t 3.02 @a (do)@t 3.02 @a (all)@t 3.02 @a (the)@t 3.02 @a (work:)@t 297.93 51.00 @p @TB (5)@t 306.46 51.00 @p 11.00 @a @endpage %%Page: 6 8 /pn 6 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 65.33 729.60 @p 10 @s @CR ( subroutine sum_reduce\(n,x\))@t 65.33 718.60 @p ( integer, intent\(in\) :: n)@t 65.33 707.60 @p ( real, intent\(inout\) :: x\(n\)[*])@t 65.33 696.60 @p ( integer p)@t 65.33 685.60 @p ( call sync_all)@t 65.33 674.60 @p ( ! Replace x by the result of summing over the co-dimension)@t 65.33 663.60 @p ( if \( this_image\(x\)==1 \) then)@t 65.33 652.59 @p ( do p=2,num_images\(\))@t 65.33 641.59 @p ( x\(:\) = x\(:\) + x\(:\)[p])@t 65.33 630.59 @p ( end do)@t 65.33 619.59 @p ( do p=2,num_images\(\))@t 65.33 608.59 @p ( x\(:\)[p] = x\(:\))@t 65.33 597.59 @p ( end do)@t 65.33 586.59 @p ( end if)@t 65.33 575.59 @p ( call sync_all)@t 65.33 564.59 @p ( end subroutine sum_reduce)@t 65.33 522.90 @p 12 @s @TB (2.6)@t 3.30 @a 6.00 @a (Grouping)@t 3.30 @a (the)@t 3.30 @a (images)@t 3.30 @a (into)@t 3.30 @a (teams)@t 65.33 503.40 @p 11 @s @TR (If)@t 4.66 @a (most)@t 4.66 @a (of)@t 4.66 @a (a)@t 4.66 @a (calculation)@t 4.66 @a (naturally)@t 4.66 @a (breaks)@t 4.66 @a (into)@t 4.66 @a (two)@t 4.66 @a (independent)@t 4.66 @a (parts,)@t 4.66 @a (we)@t 4.66 @a (can)@t 4.66 @a (employ)@t 4.66 @a (two)@t 4.66 @a (sets)@t 4.66 @a (of)@t 4.66 @a (images)@t 65.33 489.40 @p (independently.)@t 3.68 @a (T)@t -0.59 @a (o)@t 3.68 @a (avoid)@t 3.68 @a (wasting)@t 3.68 @a (storage,)@t 3.68 @a (we)@t 3.68 @a (use)@t 3.68 @a (an)@t 3.68 @a (array)@t 3.68 @a (of)@t 3.68 @a (derived)@t 3.68 @a (type)@t 3.68 @a (with)@t 3.68 @a (pointer)@t 3.68 @a (components)@t 3.68 @a (that)@t 3.68 @a (are)@t 65.33 475.40 @p (allocated)@t 2.99 @a (only)@t 2.99 @a (on)@t 2.99 @a (those)@t 2.99 @a (images)@t 2.99 @a (for)@t 2.99 @a (which)@t 2.99 @a (they)@t 2.99 @a (are)@t 2.99 @a (needed.)@t 2.99 @a (For)@t 2.99 @a (example,)@t 2.99 @a (the)@t 2.99 @a (following)@t 2.99 @a (module)@t 2.99 @a (is)@t 2.99 @a (intended)@t 2.99 @a (for)@t 65.33 461.40 @p (a)@t 3.02 @a (hydrodynamics)@t 3.02 @a (calculation)@t 3.02 @a (on)@t 3.02 @a (the)@t 3.02 @a (first)@t 3.02 @a (half)@t 3.02 @a (of)@t 3.02 @a (the)@t 3.02 @a (images.)@t 65.33 444.60 @p 10 @s @CR (module hydro)@t 65.33 433.60 @p ( type hydro_type)@t 65.33 422.60 @p ( integer :: nx,ny,nz)@t 65.33 411.60 @p ( real, pointer :: x\(:\),y\(:\),z\(:\))@t 65.33 400.60 @p ( end type hydro_type)@t 65.33 389.60 @p ( type\(hydro_type\) :: hyd[*])@t 65.33 378.60 @p (contains)@t 65.33 367.60 @p ( subroutine setup_hydro)@t 65.33 356.60 @p ( :)@t 65.33 345.60 @p ( allocate \( hyd%x\(lx\), hyd%y\(ly\), hyd%z\(lz\) \))@t 65.33 334.60 @p ( call sync_team\( \(/\(i,i=1,num_images\(\)/2\)/\) \))@t 65.33 323.59 @p ( :)@t 65.33 312.59 @p ( end subroutine setup_hydro)@t 65.33 301.59 @p ( :)@t 65.33 290.59 @p (end module hydro)@t 65.33 270.89 @p 11 @s @TR (The)@t 2.65 @a (subroutine)@t 2.65 @a @CR (setup_hydro)@t 2.65 @a @TR (is)@t 2.65 @a (called)@t 2.65 @a (only)@t 2.65 @a (on)@t 2.65 @a (the)@t 2.65 @a (images)@t 2.65 @a (1,)@t 2.65 @a (2,)@t 2.65 @a (...,)@t 2.65 @a @CR (num_images\(\)/2)@t @TR (.)@t 2.65 @a (It)@t 2.65 @a (allocates)@t 2.65 @a (storage)@t 65.33 256.89 @p (and)@t 3.02 @a (performs)@t 3.02 @a (other)@t 3.02 @a (initializations.)@t 3.02 @a (The)@t 3.02 @a (corresponding)@t 3.02 @a (main)@t 3.02 @a (program)@t 3.02 @a (might)@t 3.02 @a (have)@t 3.02 @a (the)@t 3.02 @a (form:)@t 297.93 51.00 @p @TB (6)@t 306.46 51.00 @p 11.00 @a @endpage %%Page: 7 9 /pn 7 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 65.33 729.60 @p 10 @s @CR (program main)@t 65.33 718.60 @p ( use hydro)@t 65.33 707.60 @p ( use radiation)@t 65.33 696.60 @p ( real :: residual, threshold = 1.0e-6)@t 65.33 685.60 @p ( if\(this_image\(\)<=num_images\(\)/2\) then)@t 65.33 674.60 @p ( call setup_hydro ! Establish hydrodynamics data)@t 65.33 663.60 @p ( else)@t 65.33 652.59 @p ( call setup_radiation ! Establish radiation data)@t 65.33 641.59 @p ( end if)@t 65.33 630.59 @p ( call sync_all)@t 65.33 619.59 @p ( do ! Iterate)@t 65.33 608.59 @p ( if\(this_image\(\)<=num_images\(\)/2\) then)@t 65.33 597.59 @p ( call hydro)@t 65.33 586.59 @p ( else)@t 65.33 575.59 @p ( call radiation)@t 65.33 564.59 @p ( end if)@t 65.33 553.59 @p ( call sync_all)@t 65.33 542.59 @p ( : ! Code that accesses data from both modules and calculates residua)@t (l)@t 65.33 531.59 @p ( if\(residual z[i]%p ! Not allowed \(compile-time constraint\))@t 65.33 575.19 @p 11 @s @TR (is)@t 3.51 @a (not)@t 3.51 @a (permitted.)@t 3.51 @a (Intrinsic)@t 3.51 @a (assignments)@t 3.51 @a (are)@t 3.51 @a (not)@t 3.51 @a (permitted)@t 3.51 @a (for)@t 3.51 @a (co-array)@t 3.51 @a (subobjects)@t 3.51 @a (of)@t 3.51 @a (a)@t 3.51 @a (derived)@t 3.51 @a (type)@t 3.51 @a (that)@t 3.51 @a (has)@t 3.51 @a (a)@t 65.33 561.19 @p (pointer)@t 3.02 @a (component,)@t 3.02 @a (since)@t 3.02 @a (they)@t 3.02 @a (would)@t 3.02 @a (involve)@t 3.02 @a (a)@t 3.02 @a (disallowed)@t 3.02 @a (pointer)@t 3.02 @a (assignment)@t 3.02 @a (for)@t 3.02 @a (the)@t 3.02 @a (component:)@t 65.33 544.30 @p 10 @s @CR ( z[i] = z ! Not allowed if Z has a pointer)@t 65.33 533.30 @p ( z = z[i] ! component \(compile-time constraint\))@t 65.33 513.40 @p 11 @s @TR (Similarly,)@t 3.66 @a (it)@t 3.66 @a (is)@t 3.66 @a (legal)@t 3.66 @a (to)@t 3.66 @a (allocate)@t 3.66 @a (a)@t 3.66 @a (co-array)@t 3.66 @a (of)@t 3.66 @a (a)@t 3.66 @a (derived)@t 3.66 @a (type)@t 3.66 @a (that)@t 3.66 @a (has)@t 3.66 @a (pointer)@t 3.66 @a (components,)@t 3.66 @a (but)@t 3.66 @a (it)@t 3.66 @a (is)@t 3.66 @a (illegal)@t 3.66 @a (to)@t 65.33 499.40 @p (allocate)@t 3.02 @a (one)@t 3.02 @a (of)@t 3.02 @a (those)@t 3.02 @a (pointer)@t 3.02 @a (components)@t 3.02 @a (on)@t 3.02 @a (another)@t 3.02 @a (image:)@t 65.33 482.60 @p 10 @s @CR ( type\(something\), allocatable :: t[:])@t 65.33 471.60 @p ( ...)@t 65.33 460.60 @p ( allocate\(t[*]\) ! Allowed)@t 65.33 449.60 @p ( allocate\(t%ptr\(n\)\) ! Allowed)@t 65.33 438.60 @p ( allocate\(t[q]%ptr\(n\)\) ! Not allowed \(compile-time constraint\))@t 65.33 381.80 @p 12 @s @TB (3.8)@t 3.30 @a 6.00 @a (Execution)@t 3.30 @a (control)@t 65.33 362.20 @p 11 @s @TR (Most)@t 3.05 @a (of)@t 3.05 @a (the)@t 3.05 @a (time,)@t 3.05 @a (each)@t 3.05 @a (image)@t 3.05 @a (executes)@t 3.05 @a (on)@t 3.05 @a (its)@t 3.05 @a (own)@t 3.05 @a (as)@t 3.05 @a (a)@t 3.05 @a (Fortran)@t 3.05 @a (95)@t 3.05 @a (program)@t 3.05 @a (without)@t 3.05 @a (regard)@t 3.05 @a (to)@t 3.05 @a (the)@t 3.05 @a (execution)@t 3.05 @a (of)@t 65.33 348.20 @p (other)@t 3.21 @a (images.)@t 3.21 @a (It)@t 3.21 @a (is)@t 3.21 @a (the)@t 3.21 @a (programmer's)@t 3.21 @a (responsibility)@t 3.21 @a (to)@t 3.21 @a (ensure)@t 3.21 @a (that)@t 3.21 @a (whenever)@t 3.21 @a (an)@t 3.21 @a (image)@t 3.21 @a (alters)@t 3.21 @a (co-array)@t 3.21 @a (data,)@t 3.21 @a (no)@t 65.33 334.20 @p (other)@t 2.52 @a (image)@t 2.52 @a (might)@t 2.52 @a (still)@t 2.52 @a (need)@t 2.52 @a (the)@t 2.52 @a (old)@t 2.52 @a (value.)@t 2.52 @a (Also,)@t 2.52 @a (that)@t 2.52 @a (whenever)@t 2.52 @a (an)@t 2.52 @a (image)@t 2.52 @a (accesses)@t 2.52 @a (co-array)@t 2.52 @a (data,)@t 2.52 @a (it)@t 2.52 @a (is)@t 2.52 @a (not)@t 2.52 @a (an)@t 2.52 @a (old)@t 65.33 320.20 @p (value)@t 6.10 @a (that)@t 6.10 @a (needs)@t 6.10 @a (to)@t 6.10 @a (be)@t 6.10 @a (updated)@t 6.10 @a (by)@t 6.10 @a (another)@t 6.10 @a (image.)@t 6.10 @a (The)@t 6.10 @a (programmer)@t 6.10 @a (uses)@t 6.10 @a (invocations)@t 6.10 @a (of)@t 6.10 @a (the)@t 6.10 @a (intrinsic)@t 65.33 306.20 @p (synchronization)@t 3.18 @a (procedures)@t 3.18 @a (to)@t 3.18 @a (do)@t 3.18 @a (this,)@t 3.18 @a (and)@t 3.18 @a (the)@t 3.18 @a (programmer)@t 3.18 @a (should)@t 3.18 @a (make)@t 3.18 @a (no)@t 3.18 @a (assumptions)@t 3.18 @a (about)@t 3.18 @a (the)@t 3.18 @a (execution)@t 65.33 292.20 @p (timing)@t 5.84 @a (on)@t 5.84 @a (different)@t 5.84 @a (images.)@t 5.84 @a (This)@t 5.84 @a (obligation)@t 5.84 @a (on)@t 5.84 @a (the)@t 5.84 @a (programmer)@t 5.84 @a (provides)@t 5.84 @a (the)@t 5.84 @a (compiler)@t 5.84 @a (with)@t 5.84 @a (scope)@t 5.84 @a (for)@t 65.33 278.20 @p (optimization.)@t 3.70 @a (When)@t 3.70 @a (constructing)@t 3.70 @a (code)@t 3.70 @a (for)@t 3.70 @a (execution)@t 3.70 @a (on)@t 3.70 @a (an)@t 3.70 @a (image,)@t 3.70 @a (it)@t 3.70 @a (may)@t 3.70 @a (assume)@t 3.70 @a (that)@t 3.70 @a (the)@t 3.70 @a (image)@t 3.70 @a (is)@t 3.70 @a (the)@t 3.70 @a (only)@t 65.33 264.20 @p (image)@t 2.66 @a (in)@t 2.66 @a (execution)@t 2.66 @a (until)@t 2.66 @a (the)@t 2.66 @a (next)@t 2.66 @a (invocation)@t 2.66 @a (of)@t 2.66 @a (one)@t 2.66 @a (of)@t 2.66 @a (the)@t 2.66 @a (intrinsic)@t 2.66 @a (synchronization)@t 2.66 @a (procedures)@t 2.66 @a (and)@t 2.66 @a (thus)@t 2.66 @a (it)@t 2.66 @a (may)@t 65.33 250.20 @p (use)@t 3.02 @a (all)@t 3.02 @a (the)@t 3.02 @a (optimization)@t 3.02 @a (techniques)@t 3.02 @a (available)@t 3.02 @a (to)@t 3.02 @a (a)@t 3.02 @a (standard)@t 3.02 @a (Fortran)@t 3.02 @a (95)@t 3.02 @a (compiler.)@t 65.33 230.59 @p (In)@t 2.83 @a (particular,)@t 2.83 @a (if)@t 2.83 @a (the)@t 2.83 @a (compiler)@t 2.83 @a (employs)@t 2.83 @a (temporary)@t 2.83 @a (memory)@t 2.83 @a (such)@t 2.83 @a (as)@t 2.83 @a (cache)@t 2.83 @a (or)@t 2.83 @a (registers)@t 2.83 @a (\(or)@t 2.83 @a (even)@t 2.83 @a (packets)@t 2.83 @a (in)@t 2.83 @a (transit)@t 65.33 216.59 @p (between)@t 3.86 @a (images\))@t 3.86 @a (to)@t 3.86 @a (hold)@t 3.86 @a (co-array)@t 3.86 @a (data,)@t 3.86 @a (it)@t 3.86 @a (must)@t 3.86 @a (copy)@t 3.86 @a (such)@t 3.86 @a (data)@t 3.86 @a (to)@t 3.86 @a (memory)@t 3.86 @a (that)@t 3.86 @a (can)@t 3.86 @a (be)@t 3.86 @a (accessed)@t 3.86 @a (by)@t 3.86 @a (another)@t 65.33 202.59 @p (image)@t 3.92 @a (to)@t 3.92 @a (make)@t 3.92 @a (it)@t 3.92 @a (visible)@t 3.92 @a (to)@t 3.92 @a (it.)@t 3.92 @a (Also,)@t 3.92 @a (if)@t 3.92 @a (another)@t 3.92 @a (image)@t 3.92 @a (changes)@t 3.92 @a (the)@t 3.92 @a (co-array)@t 3.92 @a (data,)@t 3.92 @a (the)@t 3.92 @a (executing)@t 3.92 @a (image)@t 3.92 @a (must)@t 65.33 188.59 @p (recover)@t 6.18 @a (the)@t 6.18 @a (data)@t 6.18 @a (from)@t 6.18 @a (global)@t 6.18 @a (memory)@t 6.18 @a (to)@t 6.18 @a (the)@t 6.18 @a (temporary)@t 6.18 @a (memory)@t 6.18 @a (it)@t 6.18 @a (is)@t 6.18 @a (using.)@t 6.18 @a (The)@t 6.18 @a (intrinsic)@t 6.18 @a (procedure)@t 65.33 174.59 @p @CR (sync_memory)@t 3.37 @a @TR (is)@t 3.37 @a (provided)@t 3.37 @a (for)@t 3.37 @a (both)@t 3.37 @a (purposes.)@t 3.37 @a (It)@t 3.37 @a (is)@t 3.37 @a (concerned)@t 3.37 @a (only)@t 3.37 @a (with)@t 3.37 @a (data)@t 3.37 @a (held)@t 3.37 @a (in)@t 3.37 @a (temporary)@t 3.37 @a (memory)@t 3.37 @a (on)@t 65.33 160.59 @p (the)@t 3.95 @a (executing)@t 3.95 @a (image)@t 3.95 @a (for)@t 3.95 @a (co-arrays)@t 3.95 @a (in)@t 3.95 @a (the)@t 3.95 @a (local)@t 3.95 @a (scope.)@t 3.95 @a (Given)@t 3.95 @a (this)@t 3.95 @a (fundamental)@t 3.95 @a (intrinsic)@t 3.95 @a (procedure,)@t 3.95 @a (the)@t 3.95 @a (other)@t 65.33 146.59 @p (synchronization)@t 4.93 @a (procedures)@t 4.93 @a (can)@t 4.93 @a (be)@t 4.93 @a (programmed)@t 4.93 @a (in)@t 4.93 @a (Co-Array)@t 4.93 @a (Fortran)@t 4.93 @a (\(see)@t 4.93 @a (Appendix)@t 4.93 @a (3\),)@t 4.93 @a (but)@t 4.93 @a (the)@t 4.93 @a (intrinsic)@t 65.33 132.59 @p (versions,)@t 3.50 @a (which)@t 3.50 @a (we)@t 3.50 @a (describe)@t 3.50 @a (next,)@t 3.50 @a (are)@t 3.50 @a (likely)@t 3.50 @a (to)@t 3.50 @a (be)@t 3.50 @a (more)@t 3.50 @a (efficient.)@t 3.50 @a (In)@t 3.50 @a (addition,)@t 3.50 @a (the)@t 3.50 @a (programmer)@t 3.50 @a (may)@t 3.50 @a (use)@t 3.50 @a (it)@t 3.50 @a (to)@t 65.33 118.59 @p (express)@t 3.02 @a (customized)@t 3.02 @a (synchronization)@t 3.02 @a (operations)@t 3.02 @a (in)@t 3.02 @a (Co-Array)@t 3.02 @a (Fortran.)@t 65.33 99.00 @p @TB (Note:)@t 5.50 @a @TR (A)@t 4.86 @a (compiler)@t 4.86 @a (can)@t 4.86 @a (hold)@t 4.86 @a (co-arrays)@t 4.86 @a (in)@t 4.86 @a (temporary)@t 4.86 @a (storage,)@t 4.86 @a (such)@t 4.86 @a (as)@t 4.86 @a (cache)@t 4.86 @a (or)@t 4.86 @a (registers,)@t 4.86 @a (between)@t 4.86 @a (calls)@t 4.86 @a (to)@t 90.33 85.00 @p @CR (sync_memory)@t @TR (.)@t 295.18 51.00 @p @TB (13)@t 309.21 51.00 @p 11.00 @a @endpage %%Page: 14 16 /pn 14 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 65.33 726.90 @p 11 @s @TR (If)@t 3.01 @a (data)@t 3.01 @a (calculated)@t 3.01 @a (on)@t 3.01 @a (one)@t 3.01 @a (image)@t 3.01 @a (are)@t 3.01 @a (to)@t 3.01 @a (be)@t 3.01 @a (accessed)@t 3.01 @a (on)@t 3.01 @a (another,)@t 3.01 @a (the)@t 3.01 @a (first)@t 3.01 @a (image)@t 3.01 @a (must)@t 3.01 @a (call)@t 3.01 @a @CR (sync_memory)@t 3.01 @a @TR (after)@t 65.33 712.90 @p (the)@t 7.71 @a (calculation)@t 7.71 @a (is)@t 7.70 @a (complete)@t 7.71 @a (and)@t 7.71 @a (the)@t 7.71 @a (second)@t 7.70 @a (must)@t 7.71 @a (call)@t 7.71 @a @CR (sync_memory)@t 7.71 @a @TR (before)@t 7.70 @a (accessing)@t 7.71 @a (the)@t 7.71 @a (data.)@t 65.33 698.90 @p (Synchronization)@t 2.48 @a (is)@t 2.48 @a (needed)@t 2.48 @a (to)@t 2.48 @a (ensure)@t 2.48 @a (that)@t 2.48 @a @CR (sync_memory)@t 2.48 @a @TR (is)@t 2.48 @a (called)@t 2.48 @a (on)@t 2.48 @a (the)@t 2.48 @a (first)@t 2.48 @a (before)@t 2.48 @a @CR (sync_memory)@t 2.48 @a @TR (is)@t 2.48 @a (called)@t 65.33 684.90 @p (on)@t 3.02 @a (the)@t 3.02 @a (second.)@t 65.33 666.20 @p @TB (Note:)@t 5.50 @a @TR (If)@t 3.99 @a (the)@t 3.99 @a (local)@t 3.99 @a (part)@t 3.99 @a (of)@t 3.99 @a (a)@t 3.99 @a (co-array)@t 3.99 @a (or)@t 3.99 @a (a)@t 3.99 @a (subobject)@t 3.99 @a (of)@t 3.99 @a (it)@t 3.99 @a (is)@t 3.99 @a (an)@t 3.99 @a (actual)@t 3.99 @a (argument)@t 3.99 @a (corresponding)@t 3.99 @a (to)@t 3.99 @a (a)@t 3.99 @a (dummy)@t 90.33 652.20 @p (argument)@t 2.62 @a (of)@t 2.62 @a (zero)@t 2.62 @a (co-rank,)@t 2.62 @a (a)@t 2.62 @a (copy)@t 2.62 @a (may)@t 2.62 @a (be)@t 2.62 @a (passed)@t 2.62 @a (to)@t 2.62 @a (the)@t 2.62 @a (procedure.)@t 2.62 @a (T)@t -0.59 @a (o)@t 2.62 @a (avoid)@t 2.62 @a (the)@t 2.62 @a (possibility)@t 2.62 @a (of)@t 2.62 @a (the)@t 2.62 @a (original)@t 90.33 638.20 @p (being)@t 2.72 @a (altered)@t 2.72 @a (by)@t 2.72 @a (another)@t 2.72 @a (image)@t 2.72 @a (after)@t 2.72 @a (the)@t 2.72 @a (copy)@t 2.72 @a (has)@t 2.72 @a (been)@t 2.72 @a (made,)@t 2.72 @a (a)@t 2.72 @a (synchronization)@t 2.72 @a (may)@t 2.72 @a (be)@t 2.72 @a (needed)@t 2.72 @a (ahead)@t 2.72 @a (of)@t 90.33 624.20 @p (the)@t 4.24 @a (procedure)@t 4.24 @a (invocation.)@t 4.24 @a (Similarly,)@t 4.24 @a (a)@t 4.24 @a (synchronization)@t 4.24 @a (is)@t 4.24 @a (needed)@t 4.24 @a (after)@t 4.24 @a (return)@t 4.24 @a (before)@t 4.24 @a (any)@t 4.24 @a (other)@t 4.24 @a (image)@t 90.33 610.20 @p (accesses)@t 3.02 @a (the)@t 3.02 @a (result.)@t 65.33 591.50 @p (The)@t 2.84 @a (subroutine)@t 2.84 @a @CR (sync_team)@t 2.84 @a @TR (provides)@t 2.84 @a (synchronization)@t 2.84 @a (for)@t 2.84 @a (a)@t 2.84 @a (team)@t 2.84 @a (of)@t 2.84 @a (images.)@t 2.84 @a (The)@t 2.84 @a (subroutine)@t 2.84 @a @CR (sync_all)@t 2.84 @a @TR (\(see)@t 65.33 577.50 @p (Section)@t 3.52 @a (3.10\))@t 3.52 @a (provides)@t 3.52 @a (a)@t 3.52 @a (shortened)@t 3.52 @a (call)@t 3.52 @a (for)@t 3.52 @a (the)@t 3.52 @a (important)@t 3.52 @a (case)@t 3.52 @a (where)@t 3.52 @a (the)@t 3.52 @a (team)@t 3.52 @a (contains)@t 3.52 @a (all)@t 3.52 @a (the)@t 3.52 @a (images.)@t 3.52 @a (Each)@t 65.33 563.50 @p (invocation)@t 3.54 @a (of)@t 3.54 @a @CR (sync_team)@t 3.54 @a @TR (or)@t 3.55 @a @CR (sync_all)@t 3.54 @a @TR (has)@t 3.54 @a (the)@t 3.54 @a (effect)@t 3.54 @a (of)@t 3.54 @a @CR (sync_memory)@t @TR (.)@t 3.54 @a (The)@t 3.55 @a (subroutine)@t 3.54 @a @CR (sync_all)@t 3.54 @a @TR (is)@t 65.33 549.50 @p (not)@t 3.02 @a (discussed)@t 3.02 @a (further)@t 3.02 @a (in)@t 3.02 @a (this)@t 3.02 @a (section.)@t 65.33 530.80 @p (For)@t 3.83 @a (each)@t 3.83 @a (invocation)@t 3.83 @a (of)@t 3.83 @a @CR (sync_team)@t 3.83 @a @TR (on)@t 3.83 @a (one)@t 3.83 @a (image)@t 3.83 @a (of)@t 3.83 @a (a)@t 3.83 @a (team,)@t 3.83 @a (there)@t 3.83 @a (shall)@t 3.83 @a (be)@t 3.83 @a (a)@t 3.83 @a (corresponding)@t 3.83 @a (invocation)@t 3.83 @a (of)@t 306.90 521.59 @p 7 @s @TR (th)@t 65.33 516.80 @p 11 @s @CR (sync_team)@t 2.97 @a @TR (on)@t 2.97 @a (every)@t 2.97 @a (other)@t 2.97 @a (image)@t 2.97 @a (of)@t 2.97 @a (the)@t 2.97 @a (team.)@t 2.97 @a (The)@t 300.52 516.80 @p @TI (n)@t 316.42 516.80 @p @TR (invocation)@t 2.97 @a (for)@t 2.97 @a (the)@t 2.97 @a (team)@t 2.97 @a (on)@t 2.97 @a (one)@t 2.97 @a (image)@t 2.97 @a (corresponds)@t 2.97 @a (to)@t 89.04 507.60 @p 7 @s @TR (th)@t 65.33 502.80 @p 11 @s @TR (the)@t 82.66 502.80 @p @TI (n)@t 99.45 502.80 @p @TR (invocation)@t 3.85 @a (for)@t 3.85 @a (the)@t 3.85 @a (team)@t 3.85 @a (on)@t 3.85 @a (each)@t 3.85 @a (other)@t 3.85 @a (image)@t 3.85 @a (of)@t 3.85 @a (the)@t 3.85 @a (team,)@t 3.85 @a @TI (n)@t 3.85 @a @TR (=)@t 3.85 @a (1,)@t 3.85 @a (2,)@t 3.85 @a (...)@t 3.85 @a (.)@t 3.85 @a (The)@t 3.85 @a (team)@t 3.85 @a (is)@t 3.85 @a (specified)@t 3.85 @a (in)@t 3.85 @a (an)@t 65.33 488.80 @p (obligatory)@t 3.02 @a (argument)@t 3.02 @a @CR (team)@t @TR (.)@t 65.33 470.10 @p @TB (Note:)@t 5.50 @a @TR (Corresponding)@t 2.76 @a (calls)@t 2.76 @a (usually)@t 2.76 @a (arise)@t 2.76 @a (from)@t 2.76 @a (a)@t 2.76 @a (single)@t 2.76 @a (statement,)@t 2.76 @a (but)@t 2.76 @a (this)@t 2.76 @a (is)@t 2.76 @a (not)@t 2.76 @a (always)@t 2.76 @a (the)@t 2.76 @a (case.)@t 2.76 @a (Some)@t 2.76 @a (images)@t 90.33 456.10 @p (may)@t 3.02 @a (be)@t 3.02 @a (executing)@t 3.02 @a (different)@t 3.02 @a (code)@t 3.02 @a (that)@t 3.02 @a (still)@t 3.02 @a (needs)@t 3.02 @a (synchronization.)@t 3.02 @a (An)@t 3.02 @a (example)@t 3.02 @a (is)@t 3.02 @a (given)@t 3.02 @a (in)@t 3.02 @a (Section)@t 3.02 @a (4.5.)@t 65.33 437.50 @p (The)@t 3.62 @a (subroutine)@t 3.62 @a (also)@t 3.62 @a (has)@t 3.62 @a (an)@t 3.62 @a (optional)@t 3.62 @a (argument)@t 3.62 @a @CR (wait)@t @TR (.)@t 3.62 @a (If)@t 3.62 @a (this)@t 3.62 @a (argument)@t 3.62 @a (is)@t 3.62 @a (absent)@t 3.62 @a (from)@t 3.62 @a (a)@t 3.62 @a (call)@t 3.62 @a (on)@t 3.62 @a (one)@t 3.62 @a (image)@t 3.62 @a (it)@t 65.33 423.50 @p (must)@t 2.78 @a (be)@t 2.78 @a (absent)@t 2.78 @a (from)@t 2.78 @a (all)@t 2.78 @a (the)@t 2.78 @a (corresponding)@t 2.78 @a (calls)@t 2.78 @a (on)@t 2.78 @a (other)@t 2.78 @a (images)@t 2.78 @a (of)@t 2.78 @a (the)@t 2.78 @a (team.)@t 2.78 @a (If)@t 2.78 @a @CR (wait)@t 2.78 @a @TR (is)@t 2.78 @a (absent,)@t 2.78 @a (each)@t 2.78 @a (image)@t 2.78 @a (of)@t 65.33 409.50 @p (the)@t 2.84 @a (team)@t 2.84 @a (waits)@t 2.84 @a (for)@t 2.84 @a (all)@t 2.84 @a (the)@t 2.84 @a (other)@t 2.84 @a (images)@t 2.84 @a (of)@t 2.84 @a (the)@t 2.84 @a (team)@t 2.84 @a (to)@t 2.84 @a (make)@t 2.84 @a (corresponding)@t 2.84 @a (calls.)@t 2.84 @a (If)@t 2.84 @a @CR (wait)@t 2.84 @a @TR (is)@t 2.84 @a (present,)@t 2.84 @a (the)@t 2.84 @a (image)@t 65.33 395.50 @p (is)@t 3.02 @a (required)@t 3.02 @a (to)@t 3.02 @a (wait)@t 3.02 @a (only)@t 3.02 @a (for)@t 3.02 @a (the)@t 3.02 @a (images)@t 3.02 @a (specified)@t 3.02 @a (in)@t 3.02 @a @CR (wait)@t 3.02 @a @TR (to)@t 3.02 @a (make)@t 3.02 @a (corresponding)@t 3.02 @a (calls.)@t 65.33 376.80 @p @TB (Note:)@t 5.50 @a @TR (No)@t 3.24 @a (information)@t 3.24 @a (is)@t 3.24 @a (available)@t 3.24 @a (about)@t 3.24 @a (whether)@t 3.24 @a (an)@t 3.24 @a (action)@t 3.24 @a (on)@t 3.24 @a (one)@t 3.24 @a (image)@t 3.24 @a (occurs)@t 3.24 @a (before)@t 3.24 @a (or)@t 3.24 @a (after)@t 3.24 @a (an)@t 3.24 @a (action)@t 3.24 @a (on)@t 90.33 362.80 @p (another)@t 2.45 @a (image)@t 2.45 @a (unless)@t 2.45 @a (one)@t 2.45 @a (is)@t 2.45 @a (executed)@t 2.45 @a (ahead)@t 2.45 @a (of)@t 2.45 @a (a)@t 2.45 @a (synchronization)@t 2.45 @a (call)@t 2.45 @a (and)@t 2.45 @a (the)@t 2.45 @a (other)@t 2.45 @a (is)@t 2.45 @a (executed)@t 2.45 @a (behind)@t 2.45 @a (the)@t 90.33 348.80 @p (corresponding)@t 3.07 @a (synchronization)@t 3.07 @a (call)@t 3.07 @a (on)@t 3.07 @a (the)@t 3.07 @a (other.)@t 3.07 @a (For)@t 3.07 @a (example,)@t 3.07 @a (while)@t 3.07 @a (one)@t 3.07 @a (image)@t 3.07 @a (executes)@t 3.07 @a (the)@t 3.07 @a (statements)@t 90.33 334.80 @p (between)@t 3.67 @a (two)@t 3.67 @a (invocations)@t 3.67 @a (of)@t 3.67 @a @CR (sync_all)@t @TR (,)@t 3.67 @a (another)@t 3.67 @a (image)@t 3.67 @a (might)@t 3.67 @a (be)@t 3.67 @a (out)@t 3.67 @a (of)@t 3.67 @a (execution.)@t 3.67 @a (Here)@t 3.67 @a (is)@t 3.67 @a (a)@t 3.67 @a (example)@t 90.33 320.79 @p (that)@t 3.02 @a (imposes)@t 3.02 @a (the)@t 3.02 @a (fixed)@t 3.02 @a (order)@t 3.02 @a (1,)@t 3.02 @a (2,)@t 3.02 @a (...)@t 3.02 @a (on)@t 3.02 @a (images:)@t 90.33 304.89 @p 10 @s @CR ( me = this_image\(\))@t 90.33 293.89 @p ( if\(me>1\) call sync_team\( me-1 \))@t 90.33 282.89 @p ( p[6] = p[6] + 1)@t 90.33 271.89 @p ( if\(mekx\) ix = ix - kx)@t 65.33 218.09 @p ( a\(ix,:\) = b\(:,iz\)[ix])@t 65.33 207.09 @p ( end do)@t 65.33 196.09 @p ( a\(iz,:\) = b\(:,iz\))@t 65.33 185.09 @p ( end if)@t 65.33 162.79 @p 11 @s @TR (Each)@t 2.62 @a (image)@t 2.62 @a (begins)@t 2.62 @a (by)@t 2.62 @a (accessing)@t 2.62 @a (its)@t 2.62 @a (upper)@t 2.62 @a (neighbour)@t 2.62 @a (and)@t 2.62 @a (then)@t 2.62 @a (continues)@t 2.62 @a (in)@t 2.62 @a (ascending)@t 2.62 @a (order,)@t 2.62 @a (with)@t 2.62 @a (wrap-around,)@t 65.33 148.79 @p (until)@t 3.53 @a (all)@t 3.53 @a (required)@t 3.53 @a (images)@t 3.53 @a (are)@t 3.53 @a (accessed.)@t 3.53 @a (Also,)@t 3.53 @a (we)@t 3.53 @a (have)@t 3.53 @a (taken)@t 3.53 @a (the)@t 3.53 @a (opportunity)@t 3.53 @a (to)@t 3.53 @a (avoid)@t 3.53 @a (square)@t 3.53 @a (brackets)@t 3.53 @a (for)@t 3.53 @a (the)@t 65.33 134.79 @p (local)@t 3.02 @a (transfer.)@t 3.02 @a (Note)@t 3.02 @a (that)@t 3.02 @a (we)@t 3.02 @a (again)@t 3.02 @a (have)@t 3.02 @a (a)@t 3.02 @a (very)@t 3.02 @a (clear)@t 3.02 @a (representation)@t 3.02 @a (of)@t 3.02 @a (the)@t 3.02 @a (action)@t 3.02 @a (required.)@t 65.33 113.00 @p (Statements)@t 2.46 @a (like)@t 2.46 @a (those)@t 2.46 @a (that)@t 2.46 @a (set)@t 2.46 @a @CR (ix)@t 2.46 @a @TR (in)@t 2.46 @a (this)@t 2.46 @a (example,)@t 2.46 @a (or)@t 2.46 @a (the)@t 2.46 @a (equivalent)@t 2.46 @a @CR (ix=mod\(iz+i-1,kx\)+1)@t @TR (,)@t 2.46 @a (are)@t 2.46 @a (often)@t 2.46 @a (used)@t 65.33 99.00 @p (in)@t 5.96 @a (Co-Array)@t 5.96 @a (Fortran)@t 5.96 @a (programs)@t 5.96 @a (to)@t 5.96 @a (load)@t 5.96 @a (balance)@t 5.96 @a (remote)@t 5.96 @a (memory)@t 5.96 @a (operations.)@t 5.96 @a (The)@t 5.96 @a (value)@t 5.96 @a (of)@t 5.96 @a @CR (kx)@t 5.96 @a @TR (is)@t 5.96 @a (often)@t 65.33 85.00 @p @CR (num_images\(\))@t @TR (.)@t 295.18 51.00 @p @TB (19)@t 309.21 51.00 @p 11.00 @a @endpage %%Page: 20 22 /pn 20 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 65.33 726.90 @p 12 @s @TB (4.3)@t 3.30 @a 6.00 @a (Maximum)@t 3.30 @a (value)@t 3.30 @a (of)@t 3.30 @a (a)@t 3.30 @a (co-array)@t 3.30 @a (section)@t 65.33 708.40 @p 11 @s @TR (Dummy)@t 2.84 @a (arguments)@t 2.84 @a (may)@t 2.84 @a (be)@t 2.84 @a (co-arrays,)@t 2.84 @a (but)@t 2.84 @a (to)@t 2.84 @a (ease)@t 2.84 @a (the)@t 2.84 @a (implementation)@t 2.84 @a (task)@t 2.84 @a (no)@t 2.84 @a (co-rank)@t 2.84 @a (or)@t 2.84 @a (co-shape)@t 2.84 @a (information)@t 65.33 694.40 @p (is)@t 2.49 @a (transferred)@t 2.49 @a (as)@t 2.49 @a (part)@t 2.49 @a (of)@t 2.49 @a (the)@t 2.49 @a (co-array)@t 2.49 @a (itself.)@t 2.49 @a (Where)@t 2.49 @a (such)@t 2.49 @a (information)@t 2.49 @a (is)@t 2.49 @a (required,)@t 2.49 @a (other)@t 2.49 @a (Fortran)@t 2.49 @a (mechanisms)@t 2.49 @a (must)@t 65.33 680.40 @p (be)@t 3.02 @a (used.)@t 3.02 @a (For)@t 3.02 @a (example,)@t 3.02 @a (we)@t 3.02 @a (may)@t 3.02 @a (alter)@t 3.02 @a (the)@t 3.02 @a (example)@t 3.02 @a (of)@t 3.02 @a (Section)@t 3.02 @a (2.3)@t 3.02 @a (to)@t 65.33 664.60 @p 10 @s @CR ( subroutine greatest\(first,last,a,great\))@t 65.33 653.59 @p ( ! Find maximum value of a\(:\)[first:last])@t 65.33 642.59 @p ( integer, intent\(in\) :: first, last)@t 65.33 631.59 @p ( real, intent\(in\) :: a\(:\)[*])@t 65.33 620.59 @p ( real, intent\(out\) :: great[*])@t 65.33 609.59 @p ( ! Place result in great[first:last])@t 65.33 598.59 @p ( real, allocatable :: work\(:\) ! Local work array)@t 65.33 587.59 @p ( integer :: i, this)@t 65.33 576.59 @p ( this = this_image\(great\))@t 65.33 565.59 @p ( if \(this>=first .and. this<=last\) then)@t 65.33 554.59 @p ( great = maxval\(a\))@t 65.33 543.59 @p ( call sync_team\( \(/\(i, i=first,last\)/\) \))@t 65.33 532.59 @p ( if\(this==first\)then)@t 65.33 521.59 @p ( allocate \(work\(first:last\)\))@t 65.33 510.60 @p ( work = great[first:last] ! Gather local maxima)@t 65.33 499.60 @p ( great[first:last]=maxval\(work\) ! Scatter global maximum)@t 65.33 488.60 @p ( deallocate \(work\))@t 65.33 477.60 @p ( end if)@t 65.33 466.60 @p ( call sync_team\( \(/\(i, i=first,last\)/\) \))@t 65.33 455.60 @p ( end if)@t 65.33 444.60 @p ( end subroutine greatest)@t 65.33 426.00 @p 11 @s @TR (Here,)@t 2.69 @a (we)@t 2.69 @a (have)@t 2.69 @a (used)@t 2.69 @a (the)@t 2.69 @a (intrinsic)@t 2.69 @a @CR (sync_team)@t 2.69 @a @TR (to)@t 2.69 @a (synchronize)@t 2.69 @a (a)@t 2.69 @a (subset)@t 2.69 @a (of)@t 2.69 @a (images)@t 2.69 @a (by)@t 2.69 @a (using)@t 2.69 @a (an)@t 2.69 @a (array)@t 2.69 @a (constructor)@t 65.33 412.00 @p (to)@t 2.90 @a (give)@t 2.90 @a (it)@t 2.90 @a (a)@t 2.90 @a (list)@t 2.90 @a (of)@t 2.90 @a (image)@t 2.90 @a (indices.)@t 2.90 @a (If)@t 2.90 @a (we)@t 2.90 @a (were)@t 2.90 @a (to)@t 2.90 @a (attempt)@t 2.90 @a (to)@t 2.90 @a (synchronize)@t 2.90 @a (all)@t 2.90 @a (images,)@t 2.90 @a (deadlock)@t 2.90 @a (would)@t 2.90 @a (result)@t 2.90 @a (since)@t 65.33 398.00 @p (the)@t 3.02 @a (call)@t 3.02 @a (is)@t 3.02 @a (made)@t 3.02 @a (only)@t 3.02 @a (for)@t 3.02 @a (the)@t 3.02 @a (selected)@t 3.02 @a (images.)@t 65.33 368.00 @p 12 @s @TB (4.4)@t 3.30 @a 6.00 @a (Summing)@t 3.30 @a (over)@t 3.30 @a (the)@t 3.30 @a (co-dimension)@t 3.30 @a (of)@t 3.30 @a (a)@t 3.30 @a (co-array)@t 3.30 @a (\(1\))@t 65.33 349.50 @p 11 @s @TR (A)@t 3.30 @a (better)@t 3.30 @a (implementation)@t 3.30 @a (of)@t 3.30 @a (the)@t 3.30 @a (example)@t 3.30 @a (of)@t 3.30 @a (Section)@t 3.30 @a (2.5)@t 3.30 @a (involves)@t 3.30 @a (all)@t 3.30 @a (the)@t 3.30 @a (images)@t 3.30 @a (in)@t 431.40 349.50 @p (log)@t 450.95 349.50 @p @TI (np)@t 3.30 @a @TR (stages,)@t 3.30 @a (where)@t 3.30 @a @TI (np)@t 3.30 @a @TR (is)@t 446.35 346.70 @p 7 @s @SY (2)@t 65.33 335.50 @p 11 @s @TR (the)@t 3.35 @a (number)@t 3.35 @a (of)@t 3.35 @a (images.)@t 3.35 @a (At)@t 3.35 @a (the)@t 3.35 @a (beginning)@t 3.35 @a (of)@t 3.35 @a (step)@t 3.35 @a @TI (k)@t 3.35 @a @TR (of)@t 3.35 @a (the)@t 3.35 @a (new)@t 3.35 @a (algorithm,)@t 3.35 @a (the)@t 3.35 @a (images)@t 3.35 @a (will)@t 3.35 @a (be)@t 3.35 @a (in)@t 3.35 @a (evenly-spaced)@t 163.07 326.20 @p 7 @s @TI (k)@t @SY (-1)@t 65.33 321.50 @p 11 @s @TR (groups)@t 2.78 @a (of)@t 2.78 @a (length)@t 140.33 321.50 @p @SO (s)@t 146.97 321.50 @p 1.83 @a 148.81 321.50 @p @SY (=)@t 154.86 321.50 @p 1.83 @a 156.69 321.50 @p @SY (2)@t 174.64 321.50 @p @TR (.)@t 2.78 @a (Each)@t 2.78 @a (image)@t 2.78 @a (will)@t 2.78 @a (hold)@t 2.78 @a (the)@t 2.78 @a (sum)@t 2.78 @a (over)@t 2.78 @a (its)@t 2.78 @a (a)@t 2.78 @a (group.)@t 2.78 @a (New)@t 2.78 @a (groups)@t 2.78 @a (are)@t 2.78 @a (formed)@t 2.78 @a (from)@t 2.78 @a (groups)@t 65.33 307.50 @p (1)@t 3.06 @a (and)@t 3.06 @a (2,)@t 3.06 @a (3)@t 3.06 @a (and)@t 3.06 @a (4,)@t 3.06 @a (etc.)@t 3.06 @a (Each)@t 3.06 @a (image)@t 3.06 @a (is)@t 3.06 @a (partnered)@t 3.06 @a (by)@t 3.06 @a (an)@t 3.06 @a (image)@t 3.06 @a (in)@t 3.06 @a (the)@t 3.06 @a (same)@t 3.06 @a (new)@t 3.06 @a (group)@t 3.06 @a (at)@t 3.06 @a (a)@t 3.06 @a (distance)@t 491.72 307.50 @p @SO (s)@t 498.36 307.50 @p @TR (,)@t 3.06 @a (exchanges)@t 65.33 293.50 @p (data)@t 3.11 @a (with)@t 3.11 @a (its)@t 3.11 @a (partner,)@t 3.11 @a (then)@t 3.11 @a (performs)@t 3.11 @a (a)@t 3.11 @a (summation.)@t 3.11 @a (After)@t 3.11 @a (this,)@t 3.11 @a (each)@t 3.11 @a (image)@t 3.11 @a (will)@t 3.11 @a (hold)@t 3.11 @a (the)@t 3.11 @a (sum)@t 3.11 @a (over)@t 3.11 @a (images)@t 3.11 @a (of)@t 3.11 @a (its)@t 65.33 279.50 @p (new)@t 2.48 @a (group.)@t 2.48 @a (This)@t 2.48 @a (continues)@t 2.48 @a (until)@t 2.48 @a (all)@t 2.48 @a (images)@t 2.48 @a (are)@t 2.48 @a (in)@t 2.48 @a (one)@t 2.48 @a (group.)@t 2.48 @a (Assuming)@t 2.48 @a (that)@t 2.48 @a (the)@t 2.48 @a (number)@t 2.48 @a (of)@t 2.48 @a (images)@t 2.48 @a (is)@t 2.48 @a (an)@t 2.48 @a (integral)@t 65.33 265.50 @p (power)@t 3.02 @a (of)@t 3.02 @a (2,)@t 3.02 @a (the)@t 3.02 @a (following)@t 3.02 @a (code)@t 3.02 @a (suffices:)@t 65.33 249.70 @p 10 @s @CR ( subroutine sum_reduce\(x\))@t 65.33 238.70 @p ( real, intent\(inout\) :: x\(:\)[*])@t 65.33 227.70 @p ( ! Replace x by the result of summing over the co-dimension)@t 65.33 216.70 @p ( real work\(size\(x\)\))@t 65.33 205.70 @p ( integer k,my_partner,me,span)@t 65.33 194.70 @p ( me = this_image\(x\))@t 65.33 183.70 @p ( span = 1)@t 65.33 172.70 @p ( do k=1,log2_images\(\))@t 65.33 161.70 @p ( if\(mod\(me-1,2*span\)m\) then)@t 65.33 496.60 @p ( call sync_team\(me-m\))@t 65.33 485.60 @p ( end if)@t 65.33 465.90 @p 11 @s @TR (The)@t 2.95 @a (invocation)@t 2.95 @a (of)@t 2.95 @a @CR (sync_team)@t 2.95 @a @TR (in)@t 2.95 @a (the)@t 2.95 @a (else)@t 2.95 @a (clause)@t 2.95 @a (is)@t 2.95 @a (needed)@t 2.95 @a (to)@t 2.95 @a (keep)@t 2.95 @a (numbers)@t 2.95 @a (of)@t 2.95 @a (invocations)@t 2.95 @a (on)@t 2.95 @a (all)@t 2.95 @a (the)@t 2.95 @a (images)@t 65.33 451.90 @p (in)@t 3.02 @a (phase.)@t 65.33 432.40 @p (The)@t 3.02 @a (main)@t 3.02 @a (loop)@t 3.02 @a (takes)@t 3.02 @a (the)@t 3.02 @a (form:)@t 65.33 415.60 @p 10 @s @CR ( if\(me <= m\) then)@t 65.33 404.60 @p ( do k=1,log2_images\(\))@t 65.33 393.60 @p ( if\(mod\(me-1,2*span\)m\) then)@t 65.33 192.09 @p ( call sync_team\(me-m\))@t 65.33 181.09 @p ( end if)@t 295.18 51.00 @p 11 @s @TB (21)@t 309.21 51.00 @p 11.00 @a @endpage %%Page: 22 24 /pn 22 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 65.33 724.60 @p 18 @s @TB (5)@t 4.95 @a 9.00 @a (Comparison)@t 4.95 @a (with)@t 4.95 @a (other)@t 4.95 @a (parallel)@t 4.95 @a (programming)@t 4.95 @a (models)@t 65.33 705.90 @p 11 @s @TR (Most)@t 2.90 @a (other)@t 2.90 @a (proposals)@t 2.90 @a (for)@t 2.90 @a (parallel)@t 2.90 @a (programming)@t 2.90 @a (models)@t 2.90 @a (for)@t 2.90 @a (the)@t 2.90 @a (Fortran)@t 2.90 @a (language)@t 2.90 @a (are)@t 2.90 @a (based)@t 2.90 @a (either)@t 2.90 @a (on)@t 2.90 @a (directives)@t 65.33 691.90 @p (\(for)@t 3.69 @a (example,)@t 3.69 @a (HPF,)@t 3.69 @a (see)@t 3.69 @a (Koebel)@t 3.69 @a @TI (et)@t 3.69 @a (al)@t @SY (.)@t 3.69 @a @TR (1994)@t 3.69 @a (and)@t 3.69 @a (OpenMP)@t 3.69 @a (1997\))@t 3.69 @a (or)@t 3.69 @a (on)@t 3.69 @a (libraries)@t 3.69 @a (\(for)@t 3.69 @a (example,)@t 3.69 @a (MPI)@t 3.69 @a (1995)@t 3.69 @a (and)@t 65.33 677.90 @p (MPI-2)@t 3.02 @a (1997\).)@t 3.02 @a (What)@t 3.02 @a (are)@t 3.02 @a (the)@t 3.02 @a (advantages)@t 3.02 @a (of)@t 3.02 @a (the)@t 3.02 @a (co-array)@t 3.02 @a (extension?)@t 65.33 659.20 @p (Compiler)@t 4.94 @a (directives)@t 4.94 @a (were)@t 4.94 @a (originally)@t 4.94 @a (designed)@t 4.94 @a (as)@t 4.94 @a (temporary)@t 4.94 @a (expedients)@t 4.94 @a (to)@t 4.94 @a (help)@t 4.94 @a (early)@t 4.94 @a (compilers)@t 4.94 @a (recognize)@t 65.33 645.20 @p (vectorizable)@t 5.10 @a (code,)@t 5.10 @a (but)@t 5.10 @a (have)@t 5.10 @a (become)@t 5.10 @a (`languages')@t 5.10 @a (superimposed)@t 5.10 @a (on)@t 5.10 @a (languages.)@t 5.10 @a (Some)@t 5.10 @a (directives)@t 5.10 @a (are)@t 5.10 @a (really)@t 65.33 631.20 @p (executable)@t 3.02 @a (statements,)@t 3.02 @a (which)@t 3.02 @a (we)@t 3.02 @a (see)@t 3.02 @a (as)@t 3.02 @a (misleading.)@t 65.33 612.50 @p (Such)@t 7.31 @a (a)@t 7.31 @a (programming)@t 7.31 @a (model)@t 7.31 @a (throws)@t 7.31 @a (the)@t 7.31 @a (burden)@t 7.31 @a (onto)@t 7.32 @a (the)@t 7.31 @a (programmer's)@t 7.31 @a (shoulders)@t 7.31 @a (as)@t 7.31 @a (much)@t 7.31 @a (as)@t 7.31 @a (the)@t 65.33 598.50 @p (message-passing)@t 4.73 @a (model)@t 4.73 @a (does.)@t 4.73 @a (The)@t 4.73 @a (programmer)@t 4.73 @a (has)@t 4.73 @a (to)@t 4.73 @a (decide)@t 4.73 @a (what)@t 4.73 @a (parts)@t 4.73 @a (of)@t 4.73 @a (the)@t 4.73 @a (code)@t 4.73 @a (are)@t 4.73 @a (serial)@t 4.73 @a (and)@t 4.73 @a (what)@t 65.33 584.50 @p (variables)@t 4.53 @a (to)@t 4.53 @a (distribute)@t 4.53 @a (and)@t 4.53 @a (how.)@t 4.53 @a (The)@t 4.53 @a (programmer)@t 4.53 @a (makes)@t 4.53 @a (sure)@t 4.53 @a (the)@t 4.53 @a (directives)@t 4.53 @a (are)@t 4.53 @a (consistent)@t 4.53 @a (throughout)@t 4.53 @a (the)@t 65.33 570.50 @p (program.)@t 5.74 @a (The)@t 5.74 @a (programmer)@t 5.74 @a (identifies)@t 5.74 @a (any)@t 5.74 @a (memory)@t 5.74 @a (race)@t 5.74 @a (conditions)@t 5.74 @a (and)@t 5.74 @a (inserts)@t 5.74 @a (appropriate)@t 5.74 @a (directives)@t 5.74 @a (to)@t 65.33 556.50 @p (eliminate)@t 3.02 @a (them.)@t 65.33 537.80 @p (On)@t 2.82 @a (a)@t 2.82 @a (distributed)@t 2.82 @a (memory)@t 2.82 @a (computer,)@t 2.82 @a (HPF)@t 2.82 @a (directives)@t 2.82 @a (tempt)@t 2.82 @a (the)@t 2.82 @a (programmer)@t 2.82 @a (to)@t 2.82 @a (underestimate)@t 2.82 @a (the)@t 2.82 @a (importance)@t 2.82 @a (of)@t 65.33 523.80 @p (localizing)@t 5.86 @a (computation)@t 5.86 @a (and)@t 5.86 @a (minimizing)@t 5.86 @a (communication.)@t 5.86 @a (It)@t 5.86 @a (often)@t 5.86 @a (becomes)@t 5.86 @a (clear)@t 5.86 @a (that)@t 5.86 @a (good)@t 5.86 @a (performance)@t 65.33 509.80 @p (requires)@t 3.25 @a (the)@t 3.25 @a (same)@t 3.25 @a (attention)@t 3.25 @a (to)@t 3.25 @a (detail)@t 3.25 @a (as)@t 3.25 @a (for)@t 3.25 @a (the)@t 3.25 @a (message-passing)@t 3.25 @a (model.)@t 3.25 @a (HPF)@t 3.25 @a (includes)@t 3.25 @a (extrinsic)@t 3.25 @a (procedures)@t 3.25 @a (so)@t 65.33 495.80 @p (that)@t 3.10 @a (the)@t 3.10 @a (programmer)@t 3.10 @a (can)@t 3.10 @a (drop)@t 3.10 @a (out)@t 3.10 @a (of)@t 3.10 @a (the)@t 3.10 @a (directive-based)@t 3.10 @a (model)@t 3.10 @a (into)@t 3.10 @a (the)@t 3.10 @a (message-passing)@t 3.10 @a (model)@t 3.10 @a (where)@t 3.10 @a (all)@t 3.10 @a (the)@t 65.33 481.80 @p (details)@t 4.78 @a (of)@t 4.78 @a (distributed)@t 4.78 @a (memory)@t 4.78 @a (must)@t 4.78 @a (be)@t 4.78 @a (handled)@t 4.78 @a (explicitly.)@t 4.78 @a (After)@t 4.78 @a (mastering)@t 4.78 @a (all)@t 4.78 @a (the)@t 4.78 @a (intricacies)@t 4.78 @a (of)@t 4.78 @a (compiler)@t 65.33 467.80 @p (directives,)@t 4.18 @a (the)@t 4.18 @a (programmer)@t 4.18 @a (throws)@t 4.18 @a (away)@t 4.18 @a (most)@t 4.18 @a (of)@t 4.18 @a (the)@t 4.18 @a (global)@t 4.18 @a (information)@t 4.18 @a (contained)@t 4.18 @a (in)@t 4.18 @a (them)@t 4.18 @a (to)@t 4.18 @a (obtain)@t 4.18 @a (good)@t 65.33 453.80 @p (performance.)@t 65.33 435.10 @p (Some)@t 3.18 @a (programmers,)@t 3.18 @a (encountering)@t 3.18 @a (co-array)@t 3.18 @a (syntax)@t 3.18 @a (for)@t 3.18 @a (the)@t 3.18 @a (first)@t 3.18 @a (time,)@t 3.18 @a (point)@t 3.18 @a (out)@t 3.18 @a (that)@t 3.18 @a (compiler)@t 3.18 @a (directives)@t 3.18 @a (can)@t 3.18 @a (be)@t 65.33 421.10 @p (used)@t 2.53 @a (to)@t 2.53 @a (mimic)@t 2.53 @a (the)@t 2.53 @a (co-array)@t 2.53 @a (programming)@t 2.53 @a (style.)@t 2.53 @a (Given)@t 2.53 @a (a)@t 2.53 @a (Co-Array)@t 2.53 @a (Fortran)@t 2.53 @a (program,)@t 2.53 @a (it)@t 2.53 @a (is)@t 2.53 @a (sometimes)@t 2.53 @a (easy)@t 2.53 @a (to)@t 2.53 @a (add)@t 65.33 407.10 @p (directives)@t 3.67 @a (to)@t 3.67 @a (produce)@t 3.67 @a (an)@t 3.67 @a (artificial)@t 3.67 @a (directive-based)@t 3.67 @a (solution.)@t 3.67 @a (T)@t -0.59 @a (o)@t 3.67 @a (distribute)@t 3.67 @a (data)@t 3.67 @a (and)@t 3.67 @a (work)@t 3.67 @a (using)@t 3.67 @a (directives,)@t 3.67 @a (the)@t 65.33 393.10 @p (programmer)@t 4.45 @a (may)@t 4.45 @a (add)@t 4.45 @a (artificial)@t 4.45 @a (extra)@t 4.45 @a (dimensions,)@t 4.45 @a (which)@t 4.45 @a (propagate)@t 4.45 @a (through)@t 4.45 @a (the)@t 4.45 @a (entire)@t 4.45 @a (code)@t 4.45 @a (carrying)@t 4.45 @a (along)@t 65.33 379.10 @p (global)@t 3.27 @a (information)@t 3.27 @a (that)@t 3.27 @a (is)@t 3.27 @a (unimportant)@t 3.27 @a (in)@t 3.27 @a (most)@t 3.27 @a (of)@t 3.27 @a (the)@t 3.27 @a (code.)@t 3.27 @a (The)@t 3.27 @a (co-array)@t 3.27 @a (programming)@t 3.27 @a (model)@t 3.27 @a (shows)@t 3.27 @a (that)@t 3.27 @a (the)@t 65.33 365.10 @p (directives)@t 3.80 @a (and)@t 3.80 @a (the)@t 3.80 @a (extra)@t 3.80 @a (dimensions)@t 3.80 @a (are)@t 3.80 @a (not)@t 3.80 @a (only)@t 3.80 @a (cumbersome)@t 3.80 @a (but)@t 3.80 @a (also)@t 3.80 @a (superfluous.)@t 3.80 @a (Directive-based)@t 3.80 @a (models)@t 65.33 351.10 @p (require)@t 3.65 @a (compilers)@t 3.65 @a (to)@t 3.65 @a (recognize)@t 3.65 @a (and)@t 3.65 @a (to)@t 3.65 @a (implement)@t 3.65 @a (long)@t 3.65 @a (lists)@t 3.65 @a (of)@t 3.65 @a (directives,)@t 3.65 @a (which)@t 3.65 @a (may)@t 3.65 @a (or)@t 3.65 @a (may)@t 3.65 @a (not)@t 3.65 @a (behave)@t 3.65 @a (the)@t 65.33 337.10 @p (same)@t 3.35 @a (way)@t 3.35 @a (on)@t 3.35 @a (all)@t 3.35 @a (platforms.)@t 3.35 @a (Co-Array)@t 3.35 @a (Fortran)@t 3.35 @a (requires)@t 3.35 @a (compilers)@t 3.35 @a (to)@t 3.35 @a (recognize)@t 3.35 @a (only)@t 3.35 @a (a)@t 3.35 @a (simple)@t 3.35 @a (extension)@t 3.35 @a (to)@t 3.35 @a (the)@t 65.33 323.09 @p (language.)@t 65.33 304.39 @p (In)@t 2.83 @a (some)@t 2.83 @a (cases,)@t 2.83 @a (especially)@t 2.83 @a (when)@t 2.83 @a (code)@t 2.83 @a (does)@t 2.83 @a (not)@t 2.83 @a (translate)@t 2.83 @a (naturally)@t 2.83 @a (into)@t 2.83 @a (data)@t 2.83 @a (parallel)@t 2.83 @a (array)@t 2.83 @a (syntax,)@t 2.83 @a (this)@t 2.83 @a (technique)@t 65.33 290.39 @p (of)@t 4.29 @a (adding)@t 4.29 @a (extra)@t 4.29 @a (dimensions)@t 4.29 @a (for)@t 4.29 @a (emulating)@t 4.29 @a (Co-Array)@t 4.29 @a (Fortran)@t 4.29 @a (syntax)@t 4.29 @a (may)@t 4.29 @a (be)@t 4.29 @a (the)@t 4.29 @a (only)@t 4.29 @a (technique)@t 4.29 @a (that)@t 4.29 @a (works)@t 65.33 276.39 @p (efficiently.)@t 4.73 @a (But)@t 4.73 @a (this)@t 4.73 @a (technique)@t 4.73 @a (does)@t 4.73 @a (not)@t 4.73 @a (use)@t 4.73 @a (the)@t 4.73 @a (data)@t 4.73 @a (parallel)@t 4.73 @a (programming)@t 4.73 @a (model)@t 4.73 @a (in)@t 4.73 @a (the)@t 4.73 @a (way)@t 4.73 @a (that)@t 4.73 @a (it)@t 4.73 @a (was)@t 65.33 262.39 @p (intended.)@t 3.54 @a (It)@t 3.54 @a (mimics)@t 3.54 @a (message-passing,)@t 3.54 @a (which)@t 3.54 @a (is)@t 3.54 @a (hard)@t 3.54 @a (enough)@t 3.54 @a (with)@t 3.54 @a (all)@t 3.54 @a (its)@t 3.54 @a (bookkeeping,)@t 3.54 @a (and)@t 3.54 @a (then)@t 3.54 @a (adds)@t 3.54 @a (another)@t 65.33 248.39 @p (layer)@t 3.00 @a (of)@t 3.00 @a (difficulty)@t 3.00 @a (with)@t 3.00 @a (directives.)@t 3.00 @a (Co-Array)@t 3.00 @a (Fortran)@t 3.00 @a (requires)@t 3.00 @a (the)@t 3.00 @a (same)@t 3.00 @a (bookkeeping)@t 3.00 @a (but)@t 3.00 @a (removes)@t 3.00 @a (the)@t 3.00 @a (artificial)@t 65.33 234.39 @p (directives.)@t 65.33 215.70 @p (What)@t 2.53 @a (about)@t 2.53 @a (using)@t 2.53 @a (a)@t 2.53 @a (library-based)@t 2.53 @a (model?)@t 2.53 @a (The)@t 2.53 @a (Co-Array)@t 2.53 @a (Fortran)@t 2.53 @a (philosophy)@t 2.53 @a (is)@t 2.53 @a (that)@t 2.53 @a (the)@t 2.53 @a (foundation)@t 2.53 @a (for)@t 2.53 @a (a)@t 2.53 @a (parallel)@t 65.33 201.70 @p (programming)@t 4.70 @a (model)@t 4.70 @a (should)@t 4.70 @a (be)@t 4.70 @a (simple)@t 4.70 @a (with)@t 4.70 @a (more)@t 4.70 @a (complicated)@t 4.70 @a (libraries)@t 4.70 @a (erected)@t 4.70 @a (on)@t 4.70 @a (top)@t 4.70 @a (of)@t 4.70 @a (the)@t 4.70 @a (foundation.)@t 65.33 187.70 @p (Basing)@t 4.58 @a (a)@t 4.58 @a (parallel)@t 4.58 @a (model)@t 4.58 @a (on)@t 4.58 @a (a)@t 4.58 @a (complicated)@t 4.58 @a (library)@t 4.58 @a (followed)@t 4.58 @a (by)@t 4.58 @a (ever)@t 4.58 @a (more)@t 4.58 @a (complicated)@t 4.58 @a (libraries)@t 4.58 @a (on)@t 4.58 @a (top)@t 4.58 @a (of)@t 65.33 173.70 @p (libraries)@t 3.02 @a (makes)@t 3.02 @a (the)@t 3.02 @a (programmer's)@t 3.02 @a (job)@t 3.02 @a (more)@t 3.02 @a (difficult)@t 3.02 @a (not)@t 3.02 @a (simpler.)@t 65.33 155.00 @p (Even)@t 3.15 @a (a)@t 3.15 @a (simple)@t 3.15 @a (library)@t 3.15 @a (like)@t 3.15 @a (the)@t 3.15 @a (one-sided)@t 3.15 @a (SHMEM)@t 3.15 @a (library,)@t 3.15 @a (which)@t 3.15 @a (has)@t 3.15 @a (become)@t 3.15 @a (the)@t 3.15 @a (model)@t 3.15 @a (of)@t 3.15 @a (choice)@t 3.15 @a (for)@t 3.15 @a (writing)@t 65.33 141.00 @p (parallel)@t 4.23 @a (applications)@t 4.23 @a (for)@t 4.23 @a (the)@t 4.23 @a (CRA)@t -0.59 @a (Y-T3D)@t 4.23 @a (and)@t 4.23 @a (the)@t 4.23 @a (CRA)@t -0.59 @a (Y-T3E,)@t 4.23 @a (has)@t 4.23 @a (a)@t 4.23 @a (number)@t 4.23 @a (of)@t 4.23 @a (limitations.)@t 4.23 @a (\(Sawdey)@t 4.23 @a @TI (et)@t 538.74 141.00 @p (al)@t 547.31 141.00 @p @TR (.)@t 65.33 127.00 @p (1995\).)@t 5.25 @a (Data)@t 5.25 @a (used)@t 5.25 @a (for)@t 5.25 @a (communication)@t 5.25 @a (must)@t 5.25 @a (be)@t 5.25 @a (allocated)@t 5.25 @a (statically,)@t 5.25 @a (normally)@t 5.25 @a (in)@t 5.25 @a (common)@t 5.25 @a (blocks,)@t 5.25 @a (making)@t 65.33 113.00 @p (dynamic)@t 4.66 @a (memory)@t 4.66 @a (management)@t 4.66 @a (difficult.)@t 4.66 @a (Default)@t 4.66 @a (variable)@t 4.66 @a (sizes)@t 4.66 @a (change)@t 4.66 @a (from)@t 4.66 @a (machine)@t 4.66 @a (to)@t 4.66 @a (machine)@t 4.66 @a (causing)@t 65.33 99.00 @p (portability)@t 3.32 @a (problems.)@t 3.32 @a (The)@t 3.32 @a (programmer)@t 3.32 @a (is)@t 3.32 @a (restricted)@t 3.32 @a (to)@t 3.32 @a (fixed)@t 3.32 @a (communication)@t 3.32 @a (patterns)@t 3.32 @a (supported)@t 3.32 @a (by)@t 3.32 @a (the)@t 3.32 @a (library)@t 65.33 85.00 @p (and)@t 3.54 @a (is)@t 3.54 @a (allowed)@t 3.54 @a (to)@t 3.54 @a (communicate)@t 3.54 @a (with)@t 3.54 @a (only)@t 3.54 @a (one)@t 3.54 @a (memory)@t 3.54 @a (image)@t 3.54 @a (at)@t 3.54 @a (a)@t 3.54 @a (time.)@t 3.54 @a (Memory)@t 3.54 @a (images)@t 3.54 @a (must)@t 3.54 @a (be)@t 3.54 @a (linearized)@t 295.18 51.00 @p @TB (22)@t 309.21 51.00 @p 11.00 @a @endpage %%Page: 23 25 /pn 23 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 65.33 726.90 @p 11 @s @TR (starting)@t 3.39 @a (at)@t 3.39 @a (zero.)@t 3.39 @a (Library)@t 3.39 @a (functions)@t 3.39 @a (normally)@t 3.39 @a (block)@t 3.39 @a (until)@t 3.39 @a (transfers)@t 3.39 @a (complete)@t 3.39 @a (and)@t 3.39 @a (the)@t 3.39 @a (overhead)@t 3.39 @a (from)@t 3.39 @a (subroutine)@t 65.33 712.90 @p (calls)@t 3.02 @a (lowers)@t 3.02 @a (efficiency)@t 3.02 @a (for)@t 3.02 @a (fine-grained)@t 3.02 @a (communication.)@t 65.33 693.80 @p (Co-array)@t 3.77 @a (syntax)@t 3.77 @a (removes)@t 3.77 @a (the)@t 3.77 @a (requirement)@t 3.77 @a (for)@t 3.77 @a (static)@t 3.77 @a (memory)@t 3.77 @a (allocation.)@t 3.77 @a (The)@t 3.77 @a (compiler)@t 3.77 @a (knows)@t 3.77 @a (variable)@t 3.77 @a (sizes.)@t 65.33 679.80 @p (The)@t 4.15 @a (programmer)@t 4.15 @a (can)@t 4.15 @a (write)@t 4.15 @a (arbitrary)@t 4.15 @a (communication)@t 4.15 @a (patterns)@t 4.15 @a (for)@t 4.15 @a (arbitrary)@t 4.15 @a (variable)@t 4.15 @a (types.)@t 4.15 @a (The)@t 4.15 @a (programmer)@t 65.33 665.80 @p (defines)@t 2.96 @a (the)@t 2.96 @a (memory)@t 2.96 @a (grid)@t 2.96 @a (and)@t 2.96 @a (the)@t 2.96 @a (numbering)@t 2.96 @a (scheme)@t 2.96 @a (and)@t 2.96 @a (can)@t 2.96 @a (change)@t 2.96 @a (them)@t 2.96 @a (anywhere)@t 2.96 @a (that)@t 2.96 @a (it)@t 2.96 @a (makes)@t 2.96 @a (sense)@t 2.96 @a (to)@t 2.96 @a (do)@t 65.33 651.80 @p (so.)@t 3.31 @a (The)@t 3.31 @a (compiler)@t 3.31 @a (generates)@t 3.31 @a (in-line)@t 3.31 @a (code)@t 3.31 @a (that)@t 3.31 @a (it)@t 3.31 @a (can)@t 3.31 @a (optimize)@t 3.31 @a (to)@t 3.31 @a (support)@t 3.31 @a (fine-grained)@t 3.31 @a (communication)@t 3.31 @a (patterns.)@t 65.33 637.80 @p (Execution)@t 3.76 @a (need)@t 3.76 @a (not)@t 3.76 @a (block)@t 3.76 @a (until)@t 3.76 @a (communication)@t 3.76 @a (completes)@t 3.76 @a (and)@t 3.76 @a (communication)@t 3.76 @a (with)@t 3.76 @a (more)@t 3.76 @a (than)@t 3.76 @a (one)@t 3.76 @a (memory)@t 65.33 623.80 @p (image)@t 3.02 @a (at)@t 3.02 @a (a)@t 3.02 @a (time)@t 3.02 @a (is)@t 3.02 @a (possible.)@t 65.33 604.59 @p (Another)@t 6.64 @a (library-based)@t 6.64 @a (model)@t 6.64 @a (is)@t 6.64 @a (BSP)@t 6.64 @a (\(Bulk)@t 6.64 @a (Synchronous)@t 6.64 @a (P)@t -0.59 @a (rogramming\))@t 6.64 @a (\(V)@t -0.59 @a (aliant)@t 6.64 @a (1990;)@t 6.64 @a (Hill,)@t 6.64 @a (McColl,)@t 65.33 590.59 @p (Stefanescu,)@t 3.56 @a (Goudreau,)@t 3.56 @a (Lang,)@t 3.56 @a (Rao,)@t 3.56 @a (Suel,)@t 3.56 @a (T)@t -0.59 @a (santilas,)@t 3.56 @a (and)@t 3.56 @a (Bisseling)@t 3.56 @a (1997\),)@t 3.56 @a (which)@t 3.56 @a (is)@t 3.56 @a (close)@t 3.56 @a (to)@t 3.56 @a (Co-Array)@t 3.56 @a (Fortran.)@t 65.33 576.59 @p (The)@t 2.99 @a (computation)@t 2.99 @a (proceeds)@t 2.99 @a (in)@t 2.99 @a (discrete)@t 2.99 @a (steps,)@t 2.99 @a (alternating)@t 2.99 @a (between)@t 2.99 @a (a)@t 2.99 @a (step)@t 2.99 @a (of)@t 2.99 @a (independent)@t 2.99 @a (computation)@t 2.99 @a (involving)@t 65.33 562.59 @p (no)@t 3.93 @a (communication)@t 3.93 @a (and)@t 3.93 @a (a)@t 3.93 @a (step)@t 3.93 @a (of)@t 3.93 @a (communication)@t 3.93 @a (involving)@t 3.93 @a (no)@t 3.93 @a (computation.)@t 3.93 @a (Each)@t 3.93 @a (step)@t 3.93 @a (is)@t 3.93 @a (terminated)@t 3.93 @a (with)@t 3.93 @a (a)@t 65.33 548.59 @p (global)@t 3.02 @a (barrier,)@t 3.02 @a (equivalent)@t 3.02 @a (to)@t 3.02 @a @CR (sync_all\(\))@t @TR (.)@t 65.33 529.50 @p (MPI)@t 3.11 @a (\(MPI)@t 3.11 @a (1995,)@t 3.11 @a (MPI-2)@t 3.11 @a (1997\))@t 3.11 @a (is)@t 3.11 @a (a)@t 3.11 @a (de-facto)@t 3.11 @a (standard)@t 3.11 @a (for)@t 3.11 @a (the)@t 3.11 @a (two-sided)@t 3.11 @a (message-passing)@t 3.11 @a (model)@t 3.11 @a (\(Gropp,)@t 3.11 @a (Lusk,)@t 65.33 515.50 @p (and)@t 5.57 @a (Skjellum)@t 5.57 @a (1994\).)@t 5.57 @a (It)@t 5.57 @a (is)@t 5.57 @a (actually)@t 5.57 @a (a)@t 5.57 @a (C)@t 5.57 @a (library)@t 5.57 @a (that)@t 5.57 @a (may)@t 5.57 @a (be)@t 5.57 @a (called)@t 5.57 @a (from)@t 5.57 @a (Fortran,)@t 5.57 @a (but)@t 5.57 @a (there)@t 5.57 @a (are)@t 5.57 @a (serious)@t 65.33 501.50 @p (inconsistencies)@t 3.02 @a (with)@t 3.02 @a (Fortran)@t 3.02 @a (90:)@t 71.08 482.40 @p (1)@t (.)@t 5.50 @a 5.50 @a 90.33 482.40 @p (Some)@t 3.02 @a (MPI)@t 3.02 @a (subroutines)@t 3.02 @a (accept)@t 3.02 @a (arguments)@t 3.02 @a (with)@t 3.02 @a (differing)@t 3.02 @a (types)@t 3.02 @a (\(choice)@t 3.02 @a (argments\).)@t 71.08 463.30 @p (2)@t (.)@t 5.50 @a 5.50 @a 90.33 463.30 @p (Some)@t 6.53 @a (MPI)@t 6.53 @a (subroutines)@t 6.53 @a (accept)@t 6.53 @a (arguments)@t 6.53 @a (with)@t 6.53 @a (differing)@t 6.53 @a (array)@t 6.53 @a (properties)@t 6.53 @a (\(sometimes)@t 6.53 @a (arrays)@t 6.53 @a (and)@t 90.33 449.30 @p (sometimes)@t 3.02 @a (scalars)@t 3.02 @a (that)@t 3.02 @a (are)@t 3.02 @a (not)@t 3.02 @a (array)@t 3.02 @a (elements\).)@t 71.08 430.20 @p (3)@t (.)@t 5.50 @a 5.50 @a 90.33 430.20 @p (Many)@t 3.04 @a (MPI)@t 3.04 @a (routines)@t 3.04 @a (assume)@t 3.04 @a (that)@t 3.04 @a (actual)@t 3.04 @a (arguments)@t 3.04 @a (are)@t 3.04 @a (passed)@t 3.04 @a (by)@t 3.04 @a (address)@t 3.04 @a (and)@t 3.04 @a (that)@t 3.04 @a (copy-in)@t 3.04 @a (copy-out)@t 3.04 @a (does)@t 90.33 416.20 @p (not)@t 3.02 @a (occur.)@t 71.08 397.10 @p (4)@t (.)@t 5.50 @a 5.50 @a 90.33 397.10 @p (An)@t 2.60 @a (MPI)@t 2.60 @a (implementation)@t 2.60 @a (may)@t 2.60 @a (read)@t 2.60 @a (or)@t 2.60 @a (modify)@t 2.60 @a (user)@t 2.60 @a (data)@t 2.60 @a (\(e.g.)@t 2.60 @a (communication)@t 2.60 @a (buffers)@t 2.60 @a (used)@t 2.60 @a (by)@t 2.60 @a (nonblocking)@t 90.33 383.10 @p (communications\))@t 3.02 @a (after)@t 3.02 @a (return.)@t 65.33 364.00 @p (Further,)@t 3.28 @a (the)@t 3.28 @a (calls)@t 3.28 @a (to)@t 3.28 @a (MPI)@t 3.28 @a (procedures)@t 3.28 @a (require)@t 3.28 @a (many)@t 3.28 @a (arguments,)@t 3.28 @a (which)@t 3.28 @a (leads)@t 3.28 @a (to)@t 3.28 @a (code)@t 3.28 @a (that)@t 3.28 @a (is)@t 3.28 @a (hard)@t 3.28 @a (to)@t 3.28 @a (understand)@t 65.33 350.00 @p (and)@t 2.48 @a (therefore)@t 2.48 @a (liable)@t 2.48 @a (to)@t 2.48 @a (bugs.)@t 2.48 @a (A)@t 2.48 @a (simple)@t 2.48 @a (communication)@t 2.48 @a (pattern)@t 2.48 @a (may)@t 2.48 @a (turn)@t 2.48 @a (into)@t 2.48 @a (an)@t 2.48 @a (arcane)@t 2.48 @a (code)@t 2.48 @a (sequence.)@t 2.48 @a (Co-array)@t 65.33 336.00 @p (syntax,)@t 2.67 @a (on)@t 2.67 @a (the)@t 2.67 @a (other)@t 2.67 @a (hand,)@t 2.67 @a (requires)@t 2.67 @a (no)@t 2.67 @a (include)@t 2.67 @a (files,)@t 2.67 @a (no)@t 2.67 @a (status)@t 2.67 @a (buffers,)@t 2.67 @a (no)@t 2.67 @a (model)@t 2.67 @a (initialization,)@t 2.67 @a (no)@t 2.67 @a (message)@t 2.67 @a (tags,)@t 65.33 322.00 @p (no)@t 6.15 @a (error)@t 6.15 @a (codes,)@t 6.15 @a (no)@t 6.15 @a (library-specific)@t 6.15 @a (variables,)@t 6.15 @a (and)@t 6.15 @a (no)@t 6.15 @a (variable)@t 6.15 @a (size)@t 6.15 @a (information.)@t 6.15 @a (Moving)@t 6.15 @a (an)@t 6.15 @a (arbitrarily)@t 65.33 308.00 @p (complicated)@t 2.58 @a (Fortran)@t 2.58 @a (90)@t 2.58 @a (data)@t 2.58 @a (structure)@t 2.58 @a (creates)@t 2.58 @a (no)@t 2.58 @a (problem)@t 2.58 @a (for)@t 2.58 @a (co-array)@t 2.58 @a (syntax,)@t 2.58 @a (but)@t 2.58 @a (there)@t 2.58 @a (is)@t 2.58 @a (no)@t 2.58 @a (simple)@t 2.58 @a (equivalent)@t 65.33 294.00 @p (in)@t 3.02 @a (MPI.)@t 65.33 274.89 @p (The)@t 4.08 @a (following)@t 4.08 @a (example)@t 4.08 @a (is)@t 4.08 @a (due)@t 4.08 @a (to)@t 4.08 @a (Alan)@t 4.08 @a (W)@t -0.59 @a (allcraft)@t 4.08 @a (of)@t 4.08 @a (the)@t 4.08 @a (Naval)@t 4.08 @a (Research)@t 4.08 @a (Laboratory,)@t 4.08 @a (Stennis)@t 4.08 @a (Space)@t 4.08 @a (Center,)@t 65.33 260.89 @p (Mississippi,)@t 4.09 @a (and)@t 4.09 @a (comes)@t 4.09 @a (from)@t 4.09 @a (an)@t 4.09 @a (actual)@t 4.09 @a (halo)@t 4.09 @a (exchange)@t 4.09 @a (subroutine.)@t 4.09 @a (He)@t 4.09 @a (comments:)@t 4.09 @a (`)@t 4.09 @a (The)@t 4.09 @a (co-array)@t 4.09 @a (version)@t 4.09 @a (is)@t 65.33 246.89 @p (much)@t 4.38 @a (easier)@t 4.38 @a (for)@t 4.38 @a (Fortran)@t 4.38 @a (90)@t 4.38 @a (programmers)@t 4.38 @a (to)@t 4.38 @a (understand,)@t 4.38 @a (and)@t 4.38 @a (it)@t 4.38 @a (is)@t 4.38 @a (typically)@t 4.38 @a (2-3)@t 4.38 @a (times)@t 4.38 @a (faster)@t 4.38 @a (than)@t 4.38 @a (any)@t 4.38 @a (MPI)@t 65.33 232.89 @p (version)@t 3.02 @a (on)@t 3.02 @a (SMP/DSM)@t 3.02 @a (systems'.)@t 65.33 213.79 @p (Co-Array)@t 3.02 @a (Fortran:)@t 65.33 197.39 @p 10 @s @CR ( call sync_all\(imgi\(nproc-1:nproc+1\)\))@t 65.33 186.39 @p ( ai\(:,:,4:4\)=ai\(:,:,1:1\)[imgi\(nproc-1\)])@t 65.33 175.39 @p ( ai\(:,:,5:6\)=ai\(:,:,2:3\)[imgi\(nproc+1\)])@t 65.33 164.39 @p ( call sync_all\(imgi\(nproc-1:nproc+1\)\))@t 65.33 145.09 @p 11 @s @TR (The)@t 3.02 @a (fastest)@t 3.02 @a (MPI)@t 3.02 @a (version)@t 3.02 @a (depends)@t 3.02 @a (on)@t 3.02 @a (the)@t 3.02 @a (machine,)@t 3.02 @a (but)@t 3.02 @a (the)@t 3.02 @a (following)@t 3.02 @a (is)@t 3.02 @a (usually)@t 3.02 @a (fast:)@t 65.33 128.70 @p 10 @s @CR ( if \(nfirst.eq.0\) then)@t 65.33 117.70 @p ( nfirst = 1)@t 65.33 106.70 @p ( call mpi_send_init\(ai\(1,1,1\), ihp*ip,mpi_real,imgi\(nproc+1\),9905)@t (, &)@t 65.33 95.70 @p ( mpi_comm_world,mpireq\(1\),mpierr\))@t 65.33 84.70 @p ( call mpi_send_init\(ai\(1,1,2\),2*ihp*ip,mpi_real,imgi\(nproc-1\),9906)@t (, &)@t 295.18 51.00 @p 11 @s @TB (23)@t 309.21 51.00 @p 11.00 @a @endpage %%Page: 24 26 /pn 24 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 65.33 729.60 @p 10 @s @CR ( mpi_comm_world,mpireq\(2\),mpierr\))@t 65.33 718.60 @p ( call mpi_recv_init\(ai\(1,1,4\), ihp*ip,mpi_real,imgi\(nproc-1\),9905)@t (, &)@t 65.33 707.60 @p ( mpi_comm_world,mpireq\(3\),mpierr\))@t 65.33 696.60 @p ( call mpi_recv_init\(ai\(1,1,5\),2*ihp*ip,mpi_real,imgi\(nproc+1\),9906)@t (, &)@t 65.33 685.60 @p ( mpi_comm_world,mpireq\(4\),mpierr\))@t 65.33 674.60 @p ( endif)@t 65.33 663.60 @p ( call mpi_startall\(4, mpireq, mpierr\))@t 65.33 652.59 @p ( call mpi_waitall\( 4, mpireq, mpistat, mpierr\))@t 65.33 570.59 @p 18 @s @TB (6)@t 4.95 @a 9.00 @a (Summary)@t 65.33 551.09 @p 11 @s @TR (W)@t -0.59 @a (e)@t 3.02 @a (conclude)@t 3.02 @a (with)@t 3.02 @a (a)@t 3.02 @a (summary)@t 3.02 @a (of)@t 3.02 @a (the)@t 3.02 @a (features)@t 3.02 @a (of)@t 3.02 @a (Co-Array)@t 3.02 @a (Fortran.)@t 71.08 531.69 @p (1)@t (.)@t 5.50 @a 5.50 @a 90.33 531.69 @p (A)@t 2.97 @a (Co-Array)@t 2.97 @a (Fortran)@t 2.97 @a (program)@t 2.97 @a (is)@t 2.97 @a (replicated)@t 2.97 @a (to)@t 2.97 @a (images)@t 2.97 @a (with)@t 2.97 @a (indices)@t 2.97 @a (1,)@t 2.97 @a (2,)@t 2.97 @a (3,)@t 2.97 @a (...)@t 2.97 @a (and)@t 2.97 @a (runs)@t 2.97 @a (asynchronously)@t 2.97 @a (on)@t 90.33 517.69 @p (them)@t 3.02 @a (all.)@t 3.02 @a (The)@t 3.02 @a (number)@t 3.02 @a (of)@t 3.02 @a (images)@t 3.02 @a (is)@t 3.02 @a (fixed)@t 3.02 @a (throughout)@t 3.02 @a (execution.)@t 71.08 498.20 @p (2)@t (.)@t 5.50 @a 5.50 @a 90.33 498.20 @p (V)@t -0.59 @a (ariables,)@t 3.66 @a (but)@t 3.66 @a (not)@t 3.66 @a (structure)@t 3.66 @a (components,)@t 3.66 @a (may)@t 3.66 @a (be)@t 3.66 @a (declared)@t 3.66 @a (with)@t 3.66 @a (trailing)@t 3.66 @a (dimensions)@t 3.66 @a (in)@t 3.66 @a (square)@t 3.66 @a (brackets.)@t 90.33 484.20 @p (These)@t 3.54 @a (are)@t 3.54 @a (called)@t 3.54 @a (co-arrays)@t 3.54 @a (and)@t 3.54 @a (the)@t 3.54 @a (trailing)@t 3.54 @a (dimensions,)@t 3.54 @a (called)@t 3.54 @a (co-dimensions,)@t 3.54 @a (provide)@t 3.54 @a (access)@t 3.54 @a (from)@t 3.54 @a (one)@t 90.33 470.20 @p (image)@t 3.02 @a (to)@t 3.02 @a (data)@t 3.02 @a (on)@t 3.02 @a (any)@t 3.02 @a (other)@t 3.02 @a (image.)@t 3.02 @a (The)@t 3.02 @a (co-size)@t 3.02 @a (of)@t 3.02 @a (a)@t 3.02 @a (co-array)@t 3.02 @a (is)@t 3.02 @a (always)@t 3.02 @a (equal)@t 3.02 @a (to)@t 3.02 @a (the)@t 3.02 @a (number)@t 3.02 @a (of)@t 3.02 @a (images.)@t 71.08 450.70 @p (3)@t (.)@t 5.50 @a 5.50 @a 90.33 450.70 @p (A)@t 3.02 @a (co-array)@t 3.02 @a (may)@t 3.02 @a (be)@t 3.02 @a (of)@t 3.02 @a (assumed)@t 3.02 @a (co-size)@t 3.02 @a (or)@t 3.02 @a (be)@t 3.02 @a (allocatable.)@t 71.08 431.30 @p (4)@t (.)@t 5.50 @a 5.50 @a 90.33 431.30 @p (There)@t 3.50 @a (is)@t 3.50 @a (implicit)@t 3.50 @a (synchronization)@t 3.50 @a (of)@t 3.50 @a (all)@t 3.50 @a (images)@t 3.50 @a (in)@t 3.50 @a (association)@t 3.50 @a (with)@t 3.50 @a (each)@t 3.50 @a (allocation)@t 3.50 @a (or)@t 3.50 @a (deallocation)@t 3.50 @a (of)@t 3.50 @a (a)@t 90.33 417.30 @p (co-array.)@t 71.08 397.80 @p (5)@t (.)@t 5.50 @a 5.50 @a 90.33 397.80 @p (Normal)@t 3.02 @a (array)@t 3.02 @a (syntax)@t 3.02 @a (is)@t 3.02 @a (extended)@t 3.02 @a (to)@t 3.02 @a (include)@t 3.02 @a (square)@t 3.02 @a (brackets)@t 3.02 @a (and)@t 3.02 @a (the)@t 3.02 @a (resulting)@t 3.02 @a (objects)@t 3.02 @a (are)@t 3.02 @a (called)@t 3.02 @a (co-array)@t 90.33 383.80 @p (subobjects.)@t 2.87 @a (A)@t 2.87 @a (co-array)@t 2.87 @a (subobject)@t 2.87 @a (may)@t 2.87 @a (appear)@t 2.87 @a (in)@t 2.87 @a (an)@t 2.87 @a (expression)@t 2.87 @a (within)@t 2.87 @a (parentheses)@t 2.87 @a (or)@t 2.87 @a (as)@t 2.87 @a (an)@t 2.87 @a (operand)@t 2.87 @a (of)@t 2.87 @a (an)@t 90.33 369.80 @p (intrinsic)@t 3.76 @a (operation;)@t 3.76 @a (in)@t 3.76 @a (both)@t 3.76 @a (cases,)@t 3.76 @a (the)@t 3.76 @a (behaviour)@t 3.76 @a (is)@t 3.76 @a (as)@t 3.76 @a (if)@t 3.76 @a (a)@t 3.76 @a (temporary)@t 3.76 @a (array)@t 3.76 @a (were)@t 3.76 @a (allocated)@t 3.76 @a (on)@t 3.76 @a (the)@t 3.76 @a (local)@t 90.33 355.80 @p (image)@t 3.62 @a (and)@t 3.62 @a (the)@t 3.62 @a (data)@t 3.62 @a (copied)@t 3.62 @a (to)@t 3.62 @a (it)@t 3.62 @a (from)@t 3.62 @a (other)@t 3.62 @a (images.)@t 3.62 @a (A)@t 3.62 @a (co-array)@t 3.62 @a (subobject)@t 3.62 @a (may)@t 3.62 @a (appear)@t 3.62 @a (on)@t 3.62 @a (the)@t 3.62 @a (left)@t 3.62 @a (of)@t 3.62 @a (an)@t 90.33 341.80 @p (intrinsic)@t 3.66 @a (assignment.)@t 3.66 @a (The)@t 3.66 @a (rank)@t 3.66 @a (of)@t 3.66 @a (a)@t 3.66 @a (co-array)@t 3.66 @a (subobject)@t 3.66 @a (is)@t 3.66 @a (the)@t 3.66 @a (sum)@t 3.66 @a (of)@t 3.66 @a (its)@t 3.66 @a (local)@t 3.66 @a (rank)@t 3.66 @a (and)@t 3.66 @a (its)@t 3.66 @a (co-rank)@t 3.66 @a (and)@t 90.33 327.80 @p (must)@t 2.95 @a (not)@t 2.95 @a (exceed)@t 2.95 @a (seven.)@t 2.95 @a (The)@t 2.95 @a (shape)@t 2.95 @a (is)@t 2.95 @a (the)@t 2.95 @a (concatenation)@t 2.95 @a (of)@t 2.95 @a (its)@t 2.95 @a (local)@t 2.95 @a (shape)@t 2.95 @a (and)@t 2.95 @a (its)@t 2.95 @a (co-shape.)@t 2.95 @a (Conformance)@t 90.33 313.79 @p (in)@t 3.02 @a (array)@t 3.02 @a (expressions)@t 3.02 @a (and)@t 3.02 @a (assignments)@t 3.02 @a (is)@t 3.02 @a (by)@t 3.02 @a (shape.)@t 71.08 294.29 @p (6)@t (.)@t 5.50 @a 5.50 @a 90.33 294.29 @p (A)@t 3.02 @a (reference)@t 3.02 @a (to)@t 3.02 @a (a)@t 3.02 @a (co-array)@t 3.02 @a (without)@t 3.02 @a (square)@t 3.02 @a (brackets)@t 3.02 @a (is)@t 3.02 @a (a)@t 3.02 @a (reference)@t 3.02 @a (to)@t 3.02 @a (the)@t 3.02 @a (local)@t 3.02 @a (object.)@t 71.08 274.79 @p (7)@t (.)@t 5.50 @a 5.50 @a 90.33 274.79 @p (Dummy)@t 2.77 @a (arguments,)@t 2.77 @a (but)@t 2.77 @a (not)@t 2.77 @a (function)@t 2.77 @a (results,)@t 2.77 @a (may)@t 2.77 @a (be)@t 2.77 @a (co-arrays.)@t 2.77 @a (The)@t 2.77 @a (corresponding)@t 2.77 @a (actual)@t 2.77 @a (argument)@t 2.77 @a (must)@t 90.33 260.79 @p (be)@t 2.58 @a (the)@t 2.58 @a (name)@t 2.58 @a (of)@t 2.58 @a (co-array)@t 2.58 @a (or)@t 2.58 @a (a)@t 2.58 @a (subobject)@t 2.58 @a (of)@t 2.58 @a (a)@t 2.58 @a (co-array)@t 2.58 @a (without)@t 2.58 @a (any)@t 2.58 @a (square)@t 2.58 @a (brackets)@t 2.58 @a (or)@t 2.58 @a (component)@t 2.58 @a (selection.)@t 90.33 246.79 @p (The)@t 2.51 @a (interface)@t 2.51 @a (must)@t 2.51 @a (be)@t 2.51 @a (explicit.)@t 2.51 @a (The)@t 2.51 @a (co-array)@t 2.51 @a (properties)@t 2.51 @a (are)@t 2.51 @a (specified)@t 2.51 @a (afresh)@t 2.51 @a (without)@t 2.51 @a (regard)@t 2.51 @a (to)@t 2.51 @a (the)@t 2.51 @a (co-array)@t 90.33 232.79 @p (properties)@t 4.62 @a (of)@t 4.62 @a (the)@t 4.62 @a (actual)@t 4.62 @a (argument.)@t 4.62 @a (The)@t 4.62 @a (co-array)@t 4.62 @a (properties)@t 4.62 @a (are)@t 4.62 @a (disregarded)@t 4.62 @a (in)@t 4.62 @a (applying)@t 4.62 @a (the)@t 4.62 @a (rules)@t 4.62 @a (for)@t 90.33 218.79 @p (argument)@t 3.02 @a (association)@t 3.02 @a (and)@t 3.02 @a (resolution)@t 3.02 @a (of)@t 3.02 @a (generic)@t 3.02 @a (invocations.)@t 71.08 199.39 @p (8)@t (.)@t 5.50 @a 5.50 @a 90.33 199.39 @p (There)@t 3.73 @a (are)@t 3.73 @a (intrinsic)@t 3.73 @a (functions)@t 3.73 @a (that)@t 3.73 @a (return)@t 3.73 @a (the)@t 3.73 @a (number)@t 3.73 @a (of)@t 3.73 @a (images,)@t 3.73 @a (the)@t 3.73 @a (base-2)@t 3.73 @a (logarithm)@t 3.73 @a (of)@t 3.73 @a (the)@t 3.73 @a (number)@t 3.73 @a (of)@t 90.33 185.39 @p (images,)@t 3.02 @a (and)@t 3.02 @a (the)@t 3.02 @a (remainder)@t 3.02 @a (after)@t 3.02 @a (the)@t 3.02 @a (largest)@t 3.02 @a (integer)@t 3.02 @a (power)@t 3.02 @a (of)@t 3.02 @a (2)@t 3.02 @a (is)@t 3.02 @a (subtracted)@t 3.02 @a (from)@t 3.02 @a (the)@t 3.02 @a (number)@t 3.02 @a (of)@t 3.02 @a (images.)@t 71.08 165.89 @p (9)@t (.)@t 5.50 @a 5.50 @a 90.33 165.89 @p (There)@t 2.74 @a (is)@t 2.74 @a (an)@t 2.74 @a (intrinsic)@t 2.74 @a (subroutine)@t 2.74 @a (for)@t 2.74 @a (synchronizing)@t 2.74 @a (the)@t 2.74 @a (executing)@t 2.74 @a (image)@t 2.74 @a (with)@t 2.74 @a (another)@t 2.74 @a (image,)@t 2.74 @a (a)@t 2.74 @a (set)@t 2.74 @a (of)@t 2.74 @a (other)@t 90.33 151.89 @p (images,)@t 3.02 @a (or)@t 3.02 @a (all)@t 3.02 @a (other)@t 3.02 @a (images.)@t 65.58 132.39 @p (10)@t (.)@t 5.50 @a 5.50 @a 90.33 132.39 @p (Co-arrays)@t 5.13 @a (are)@t 5.13 @a (not)@t 5.14 @a (permitted)@t 5.13 @a (to)@t 5.13 @a (be)@t 5.13 @a (pointers,)@t 5.14 @a (but)@t 5.13 @a (a)@t 5.13 @a (co-array)@t 5.14 @a (may)@t 5.13 @a (be)@t 5.13 @a (of)@t 5.13 @a (a)@t 5.14 @a (derived)@t 5.13 @a (type)@t 5.13 @a (with)@t 5.13 @a (pointer)@t 90.33 118.39 @p (components.)@t 3.79 @a (Such)@t 3.79 @a (a)@t 3.79 @a (component)@t 3.79 @a (is)@t 3.79 @a (restricted)@t 3.79 @a (to)@t 3.79 @a (the)@t 3.79 @a (role)@t 3.79 @a (of)@t 3.79 @a (an)@t 3.79 @a (allocatable)@t 3.79 @a (component.)@t 3.79 @a (A)@t 3.79 @a (pointer)@t 3.79 @a (is)@t 3.79 @a (not)@t 90.33 104.39 @p (permitted)@t 3.02 @a (to)@t 3.02 @a (become)@t 3.02 @a (associated)@t 3.02 @a (with)@t 3.02 @a (a)@t 3.02 @a (co-array.)@t 65.58 85.00 @p (11)@t (.)@t 5.50 @a 5.50 @a 90.33 85.00 @p (There)@t 4.18 @a (is)@t 4.18 @a (an)@t 4.18 @a (intrinsic)@t 4.18 @a (function)@t 4.18 @a (that)@t 4.18 @a (returns)@t 4.18 @a (the)@t 4.18 @a (index)@t 4.18 @a (of)@t 4.18 @a (the)@t 4.18 @a (executing)@t 4.18 @a (image)@t 4.18 @a (or)@t 4.18 @a (the)@t 4.18 @a (co-subscripts)@t 4.18 @a (of)@t 4.18 @a (a)@t 295.18 51.00 @p @TB (24)@t 309.21 51.00 @p 11.00 @a @endpage %%Page: 25 27 /pn 25 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 90.33 726.90 @p 11 @s @TR (co-array)@t 3.02 @a (that)@t 3.02 @a (denote)@t 3.02 @a (data)@t 3.02 @a (on)@t 3.02 @a (the)@t 3.02 @a (executing)@t 3.02 @a (image.)@t 65.58 707.40 @p (12)@t (.)@t 5.50 @a 5.50 @a 90.33 707.40 @p (Input)@t 2.71 @a (and)@t 2.71 @a (output)@t 2.71 @a (is)@t 2.71 @a (performed)@t 2.71 @a (independently)@t 2.71 @a (by)@t 2.71 @a (each)@t 2.71 @a (image.)@t 2.71 @a (However,)@t 2.71 @a (there)@t 2.71 @a (is)@t 2.71 @a (a)@t 2.71 @a (single)@t 2.71 @a (file)@t 2.71 @a (system)@t 2.71 @a (and)@t 2.71 @a (a)@t 90.33 693.40 @p (single)@t 2.95 @a (set)@t 2.96 @a (of)@t 2.95 @a (units)@t 2.95 @a (shared)@t 2.95 @a (by)@t 2.96 @a (all)@t 2.95 @a (images.)@t 2.95 @a (The)@t 2.96 @a (new)@t 2.95 @a (keyword)@t 2.95 @a (TEAM)@t 2.95 @a (is)@t 2.96 @a (used)@t 2.95 @a (to)@t 2.95 @a (identify)@t 2.95 @a (which)@t 2.96 @a (images)@t 2.95 @a (may)@t 90.33 679.40 @p (perform)@t 3.02 @a (I/O)@t 3.02 @a (on)@t 3.02 @a (a)@t 3.02 @a (given)@t 3.02 @a (unit.)@t 3.02 @a (There)@t 3.02 @a (is)@t 3.02 @a (an)@t 3.02 @a (intrinsic)@t 3.02 @a (for)@t 3.02 @a (marking)@t 3.02 @a (the)@t 3.02 @a (progress)@t 3.02 @a (of)@t 3.02 @a (input-output)@t 3.02 @a (on)@t 3.02 @a (a)@t 3.02 @a (unit.)@t 65.58 659.90 @p (13)@t (.)@t 5.50 @a 5.50 @a 90.33 659.90 @p (Execution)@t 3.02 @a (of)@t 3.02 @a (a)@t 3.02 @a (STOP)@t 3.02 @a (on)@t 3.02 @a (any)@t 3.02 @a (images)@t 3.02 @a (causes)@t 3.02 @a (all)@t 3.02 @a (images)@t 3.02 @a (to)@t 3.02 @a (cease)@t 3.02 @a (execution.)@t 65.33 640.40 @p (At)@t 2.71 @a (the)@t 2.71 @a (beginning)@t 2.71 @a (of)@t 2.71 @a (this)@t 2.71 @a (paper,)@t 2.71 @a (we)@t 2.71 @a (asked)@t 2.71 @a (the)@t 2.71 @a (question)@t 2.71 @a (`What)@t 2.71 @a (is)@t 2.71 @a (the)@t 2.71 @a (smallest)@t 2.71 @a (change)@t 2.71 @a (required)@t 2.71 @a (to)@t 2.71 @a (convert)@t 2.71 @a (Fortran)@t 65.33 626.40 @p (95)@t 2.48 @a (into)@t 2.48 @a (a)@t 2.48 @a (robust,)@t 2.48 @a (efficient)@t 2.48 @a (parallel)@t 2.48 @a (language?'.)@t 2.48 @a (The)@t 2.48 @a (answer)@t 2.48 @a (to)@t 2.48 @a (our)@t 2.48 @a (question)@t 2.48 @a (is)@t 2.48 @a (contained)@t 2.48 @a (in)@t 2.48 @a (just)@t 2.48 @a (nine)@t 2.48 @a (pages)@t 2.48 @a (of)@t 2.48 @a (text)@t 65.33 612.40 @p (in)@t 4.68 @a (Section)@t 4.68 @a (3,)@t 4.68 @a (which)@t 4.68 @a (describes)@t 4.68 @a (a)@t 4.68 @a (simple)@t 4.68 @a (syntactic)@t 4.68 @a (extension)@t 4.68 @a (to)@t 4.68 @a (Fortran)@t 4.68 @a (95.)@t 4.68 @a (The)@t 4.68 @a (rest)@t 4.68 @a (of)@t 4.68 @a (the)@t 4.68 @a (paper)@t 4.68 @a (contains)@t 65.33 598.40 @p (examples)@t 4.66 @a (to)@t 4.66 @a (illustrate)@t 4.66 @a (the)@t 4.66 @a (simplicity)@t 4.66 @a (and)@t 4.66 @a (elegance)@t 4.66 @a (of)@t 4.66 @a (co-array)@t 4.66 @a (syntax,)@t 4.66 @a (which)@t 4.66 @a (places)@t 4.66 @a (enormous)@t 4.66 @a (power)@t 4.66 @a (and)@t 65.33 584.40 @p (flexibility)@t 4.34 @a (in)@t 4.34 @a (the)@t 4.34 @a (hands)@t 4.34 @a (of)@t 4.34 @a (the)@t 4.34 @a (programmer.)@t 4.34 @a (W)@t -0.59 @a (e)@t 4.34 @a (feel)@t 4.34 @a (that)@t 4.34 @a (once)@t 4.34 @a (Fortran)@t 4.34 @a (programmers)@t 4.34 @a (begin)@t 4.34 @a (to)@t 4.34 @a (use)@t 4.34 @a (co-array)@t 65.33 570.40 @p (syntax,)@t 3.02 @a (it)@t 3.02 @a (will)@t 3.02 @a (become)@t 3.02 @a (the)@t 3.02 @a (model)@t 3.02 @a (of)@t 3.02 @a (choice)@t 3.02 @a (for)@t 3.02 @a (parallel)@t 3.02 @a (programming.)@t 65.33 488.10 @p 18 @s @TB (7)@t 4.95 @a 9.00 @a (Acknowledgements)@t 65.33 468.60 @p 11 @s @TR (W)@t -0.59 @a (e)@t 4.11 @a (would)@t 4.11 @a (like)@t 4.11 @a (to)@t 4.11 @a (express)@t 4.11 @a (our)@t 4.11 @a (special)@t 4.11 @a (thanks)@t 4.11 @a (to)@t 4.11 @a (Alan)@t 4.11 @a (W)@t -0.59 @a (allcraft)@t 4.11 @a (of)@t 4.11 @a (the)@t 4.11 @a (Naval)@t 4.11 @a (Research)@t 4.11 @a (Laboratory,)@t 4.11 @a (Stennis)@t 65.33 454.60 @p (Space)@t 4.72 @a (Center,)@t 4.72 @a (Mississippi)@t 4.72 @a (for)@t 4.72 @a (his)@t 4.72 @a (enthusiastic)@t 4.72 @a (support)@t 4.72 @a (and)@t 4.72 @a (many)@t 4.72 @a (helpful)@t 4.72 @a (email)@t 4.72 @a (exchanges,)@t 4.72 @a (particularly)@t 4.72 @a (in)@t 65.33 440.60 @p (connection)@t 3.37 @a (with)@t 3.37 @a (the)@t 3.37 @a (design)@t 3.37 @a (of)@t 3.37 @a (the)@t 3.37 @a (synchronization)@t 3.37 @a (procedures)@t 3.37 @a (and)@t 3.37 @a (of)@t 3.37 @a (the)@t 3.37 @a (I/O)@t 3.37 @a (features.)@t 3.37 @a (W)@t -0.59 @a (e)@t 3.37 @a (would)@t 3.37 @a (also)@t 3.37 @a (like)@t 3.37 @a (to)@t 65.33 426.60 @p (thank)@t 3.54 @a (Dick)@t 3.54 @a (Hendrickson)@t 3.54 @a (of)@t 3.54 @a (Imagine1,)@t 3.54 @a (Inc.)@t 3.54 @a (for)@t 3.54 @a (his)@t 3.54 @a (careful)@t 3.54 @a (reading)@t 3.54 @a (of)@t 3.54 @a (early)@t 3.54 @a (drafts)@t 3.54 @a (of)@t 3.54 @a (this)@t 3.54 @a (paper)@t 3.54 @a (and)@t 3.54 @a (his)@t 3.54 @a (many)@t 65.33 412.60 @p (helpful)@t 3.36 @a (suggestions)@t 3.36 @a (and)@t 3.36 @a (to)@t 3.36 @a (Mike)@t 3.36 @a (Metcalf)@t 3.36 @a (formerly)@t 3.36 @a (of)@t 3.36 @a (CERN,)@t 3.36 @a (Ian)@t 3.36 @a (Gladwell)@t 3.36 @a (of)@t 3.36 @a (SMU)@t 3.36 @a (Dallas,)@t 3.36 @a (and)@t 3.36 @a (Bill)@t 3.36 @a (Long)@t 3.36 @a (of)@t 65.33 398.60 @p (Silicon)@t 3.02 @a (Graphics)@t 3.02 @a (for)@t 3.02 @a (their)@t 3.02 @a (suggestions)@t 3.02 @a (after)@t 3.02 @a (reading)@t 3.02 @a (more)@t 3.02 @a (recent)@t 3.02 @a (drafts.)@t 65.33 316.39 @p 18 @s @TB (8)@t 4.95 @a 9.00 @a (References)@t 65.33 297.89 @p 11 @s @TR (Gropp,)@t 6.36 @a (W.,)@t 6.36 @a (Lusk,)@t 6.36 @a (E.,)@t 6.36 @a (and)@t 6.36 @a (Skjellum,)@t 6.36 @a (A.)@t 6.36 @a (\(1994\).)@t 6.36 @a (Using)@t 6.36 @a (MPI,)@t 6.36 @a (portable)@t 6.36 @a (parallel)@t 6.36 @a (programming)@t 6.36 @a (with)@t 6.36 @a (the)@t 65.33 283.89 @p (Message-P)@t -0.59 @a (assing)@t 3.02 @a (Interface.)@t 3.02 @a (The)@t 3.02 @a (MIT)@t 3.02 @a (P)@t -0.59 @a (ress.)@t 65.33 265.50 @p (Hill,)@t 3.20 @a (J.)@t 3.20 @a (M.)@t 3.20 @a (D.,)@t 3.20 @a (McColl,)@t 3.20 @a (W.,)@t 3.20 @a (Stefanescu,)@t 3.20 @a (D.)@t 3.20 @a (C.,)@t 3.20 @a (Goudreau,)@t 3.20 @a (M.)@t 3.20 @a (W.,)@t 3.20 @a (Lang,)@t 3.20 @a (K.,)@t 3.20 @a (Rao,)@t 3.20 @a (S.)@t 3.20 @a (B.,)@t 3.20 @a (Suel,)@t 3.20 @a (T.,)@t 3.20 @a (T)@t -0.59 @a (santilas,)@t 3.20 @a (T.)@t 65.33 251.50 @p (and)@t 3.02 @a (Bisseling,)@t 3.02 @a (R.)@t 3.02 @a (\(1997\).)@t 3.02 @a (The)@t 3.02 @a (BSP)@t 3.02 @a (programming)@t 3.02 @a (library.)@t 3.02 @a (T)@t -0.59 @a (o)@t 3.02 @a (appear)@t 3.02 @a (in)@t 3.02 @a @TI (P)@t -0.59 @a (arallel)@t 3.02 @a (Computing)@t @TR (.)@t 65.33 233.09 @p (Koebel,)@t 2.49 @a (C.)@t 2.49 @a (H.,)@t 2.49 @a (Loveman,)@t 2.49 @a (D.)@t 2.49 @a (B.,)@t 2.49 @a (Schrieber,)@t 2.49 @a (R.)@t 2.49 @a (S.,)@t 2.49 @a (Steele,)@t 2.49 @a (G.)@t 2.49 @a (L.,)@t 2.49 @a (and)@t 2.49 @a (Zosel,)@t 2.49 @a (M.)@t 2.49 @a (E.)@t 2.49 @a (\(1994\).)@t 2.49 @a (The)@t 2.49 @a (High)@t 2.49 @a (P)@t -0.59 @a (erformance)@t 65.33 219.09 @p (Fortran)@t 3.02 @a (Handbook,)@t 3.02 @a (M.)@t 3.02 @a (I.)@t 3.02 @a (T.)@t 3.02 @a (P)@t -0.59 @a (ress,)@t 3.02 @a (Cambridge,)@t 3.02 @a (Massachusetts.)@t 65.33 200.70 @p (MPI)@t 3.02 @a (\(1995\).)@t 3.02 @a (A)@t 3.02 @a (message-passing)@t 3.02 @a (interface)@t 3.02 @a (standard.)@t 3.02 @a (http://www.mcs.anl.gov/mpi/index.html)@t 65.33 182.20 @p (MPI-2)@t 3.02 @a (\(1997\).)@t 3.02 @a (Extensions)@t 3.02 @a (to)@t 3.02 @a (the)@t 3.02 @a (message-passing)@t 3.02 @a (interface.)@t 3.02 @a (http://www.mcs.anl.gov/mpi/index.html)@t 65.33 163.79 @p (Numrich,)@t 3.23 @a (R.)@t 3.23 @a (W.)@t 3.23 @a (\(1991\).)@t 3.23 @a (An)@t 3.23 @a (explicit)@t 3.23 @a (node-oriented)@t 3.23 @a (programming)@t 3.23 @a (model.)@t 3.23 @a (P)@t -0.59 @a (rivate)@t 3.23 @a (Report,)@t 3.23 @a (Cray)@t 3.23 @a (Research,)@t 3.23 @a (Inc.,)@t 65.33 149.79 @p (March)@t 3.02 @a (1991.)@t 3.02 @a (Available)@t 3.02 @a (from)@t 3.02 @a (the)@t 3.02 @a (author.)@t 65.33 131.39 @p (Numrich,)@t 2.88 @a (R.)@t 2.88 @a (W.)@t 2.88 @a (\(1994a\).)@t 2.88 @a (The)@t 2.88 @a (Cray)@t 2.88 @a (T3D)@t 2.88 @a (address)@t 2.88 @a (space)@t 2.88 @a (and)@t 2.88 @a (how)@t 2.88 @a (to)@t 2.88 @a (use)@t 2.88 @a (it.)@t 2.88 @a (P)@t -0.59 @a (rivate)@t 2.88 @a (Report,)@t 2.88 @a (Cray)@t 2.88 @a (Research,)@t 2.88 @a (Inc.,)@t 65.33 117.39 @p (April)@t 3.02 @a (1994.)@t 3.02 @a (Available)@t 3.02 @a (from)@t 3.02 @a (the)@t 3.02 @a (author.)@t 188.52 103.70 @p 7 @s @SY (-)@t 192.37 103.70 @p 1.16 @a 193.53 103.70 @p @SY (-)@t 65.33 99.00 @p 11 @s @TR (Numrich,)@t 3.37 @a (R.)@t 3.37 @a (W.)@t 3.37 @a (\(1994b\).)@t 181.54 99.00 @p (F)@t 198.48 99.00 @p (:)@t 3.37 @a (A)@t 3.37 @a (parallel)@t 3.37 @a (Fortran)@t 3.37 @a (language,)@t 3.37 @a (P)@t -0.59 @a (rivate)@t 3.37 @a (Report,)@t 3.37 @a (Cray)@t 3.37 @a (Research,)@t 3.37 @a (Inc.,)@t 3.37 @a (April)@t 3.37 @a (1994.)@t 65.33 85.00 @p (Available)@t 3.02 @a (from)@t 3.02 @a (the)@t 3.02 @a (author.)@t 295.18 51.00 @p @TB (25)@t 309.21 51.00 @p 11.00 @a @endpage %%Page: 26 28 /pn 26 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 181.62 731.60 @p 7 @s @SY (-)@t 185.47 731.60 @p 1.16 @a 186.64 731.60 @p @SY (-)@t 65.33 726.90 @p 11 @s @TR (Numrich,)@t 3.02 @a (R.)@t 3.02 @a (W.)@t 3.02 @a (\(1997\).)@t 174.65 726.90 @p (F)@t 191.59 726.90 @p (:)@t 3.02 @a (A)@t 3.02 @a (parallel)@t 3.02 @a (extension)@t 3.02 @a (to)@t 3.02 @a (Cray)@t 3.02 @a (Fortran.)@t 3.02 @a @TI (S)@t -0.36 @a (cientific)@t 3.02 @a (P)@t -0.59 @a (rogramming)@t 3.02 @a @TB (6)@t @TR (,)@t 3.02 @a (275-284.)@t 65.33 707.40 @p (Numrich,)@t 2.56 @a (R.)@t 2.56 @a (W.,)@t 2.56 @a (Reid,)@t 2.56 @a (J.)@t 2.56 @a (K.,)@t 2.56 @a (and)@t 2.56 @a (Kim,)@t 2.56 @a (K.)@t 2.56 @a (\(1998\).)@t 2.56 @a (W)@t -0.59 @a (riting)@t 2.56 @a (a)@t 2.56 @a (multigrid)@t 2.56 @a (solver)@t 2.56 @a (using)@t 2.56 @a (Co-array)@t 2.56 @a (Fortran.)@t 2.56 @a (T)@t -0.59 @a (o)@t 2.56 @a (appear)@t 65.33 693.40 @p (in)@t 4.41 @a (the)@t 4.41 @a (P)@t -0.59 @a (roceeding)@t 4.41 @a (of)@t 4.41 @a (the)@t 4.41 @a (fourth)@t 4.41 @a (International)@t 4.41 @a (W)@t -0.59 @a (orkshop)@t 4.41 @a (on)@t 4.41 @a (Applied)@t 4.41 @a (P)@t -0.59 @a (arallel)@t 4.41 @a (Computing)@t 4.41 @a (\(P)@t -0.59 @a (ARA98\),)@t 4.41 @a (Umea)@t -4.26 @a 0.00 0.82 @m (\312)@t -3.66 @a 0.00 -0.82 @m 4.26 @a 65.33 679.40 @p (University,)@t 3.02 @a (Umea)@t -4.26 @a 0.00 0.82 @m (\312)@t -3.66 @a 0.00 -0.82 @m 4.26 @a 3.02 @a (Sweden,)@t 3.02 @a (June,)@t 3.02 @a (1998.)@t 65.33 659.90 @p (Numrich,)@t 2.84 @a (R.)@t 2.84 @a (W.,)@t 2.84 @a (Springer,)@t 2.84 @a (P.)@t 2.84 @a (L.)@t 2.84 @a (and)@t 2.84 @a (P)@t -0.59 @a (eterson,)@t 2.84 @a (J.)@t 2.84 @a (C.)@t 2.84 @a (\(1994\).)@t 2.84 @a (Measurement)@t 2.84 @a (of)@t 2.84 @a (communication)@t 2.84 @a (rates)@t 2.84 @a (on)@t 2.84 @a (the)@t 2.84 @a (Cray)@t 65.33 645.90 @p (T3D)@t 2.67 @a (interprocessor)@t 2.67 @a (network.)@t 2.67 @a (In)@t 2.67 @a @TI (High-P)@t -0.59 @a (erformance)@t 2.67 @a (Computing)@t 2.67 @a (and)@t 2.67 @a (Networking,)@t 2.67 @a (International)@t 2.67 @a (Conference)@t 2.67 @a (and)@t 65.33 631.90 @p (Exhibition,)@t 5.81 @a (Munich,)@t 5.81 @a (Germany,)@t 5.81 @a (April)@t 5.81 @a (18-20,)@t 5.81 @a (1994,)@t 5.81 @a (P)@t -0.59 @a (roceedings,)@t 5.81 @a (V)@t -0.59 @a (olume)@t 5.81 @a (2:)@t 5.81 @a (Networking)@t 5.81 @a (and)@t 5.81 @a (T)@t -0.59 @a (ools,)@t 5.81 @a @TR (Eds)@t 65.33 617.90 @p (W)@t -0.59 @a (olfgang)@t 3.02 @a (Gentzsch)@t 3.02 @a (and)@t 3.02 @a (Uwe)@t 3.02 @a (Harms,)@t 3.02 @a (Springer-V)@t -0.59 @a (erlag,)@t 3.02 @a (pp.)@t 3.02 @a (150-157.)@t 262.20 603.09 @p 7 @s @SY (-)@t 266.05 603.09 @p 1.16 @a 267.22 603.09 @p @SY (-)@t 65.33 598.40 @p 11 @s @TR (Numrich,)@t 2.75 @a (R.)@t 2.75 @a (W.)@t 2.75 @a (and)@t 2.75 @a (Steidel,)@t 2.75 @a (J.)@t 2.75 @a (L.)@t 2.75 @a (\(1997a\).)@t 255.22 598.40 @p (F)@t 272.17 598.40 @p (:)@t 2.75 @a (A)@t 2.75 @a (simple)@t 2.75 @a (parallel)@t 2.75 @a (extension)@t 2.75 @a (to)@t 2.75 @a (Fortran)@t 2.75 @a (90.)@t 2.75 @a (SIAM)@t 2.75 @a (News,)@t 2.75 @a @TB (30)@t @TR (,)@t 2.75 @a (7,)@t 65.33 584.40 @p (1-8.)@t 65.33 564.90 @p (Numrich,)@t 4.58 @a (R.)@t 4.58 @a (W.)@t 4.58 @a (and)@t 4.58 @a (Steidel,)@t 4.58 @a (J.)@t 4.58 @a (L.)@t 4.58 @a (\(1997b\).)@t 4.58 @a (Simple)@t 4.58 @a (parallel)@t 4.58 @a (extensions)@t 4.58 @a (to)@t 4.58 @a (Fortran)@t 4.58 @a (90.)@t 4.58 @a (P)@t -0.59 @a (roc.)@t 4.58 @a (eighth)@t 4.58 @a (SIAM)@t 65.33 550.90 @p (conference)@t 3.02 @a (of)@t 3.02 @a (parallel)@t 3.02 @a (processing)@t 3.02 @a (for)@t 3.02 @a (scientific)@t 3.02 @a (computing,)@t 3.02 @a (Mar.)@t 3.02 @a (1997.)@t 65.33 531.40 @p (Numrich,)@t 2.96 @a (R.)@t 2.96 @a (W.,)@t 2.96 @a (Steidel,)@t 2.96 @a (J.)@t 2.96 @a (L.,)@t 2.96 @a (Johnson,)@t 2.96 @a (B.)@t 2.96 @a (H.,)@t 2.96 @a (de)@t 2.96 @a (Dinechin,)@t 2.96 @a (B.)@t 2.96 @a (D.,)@t 2.96 @a (Elsesser,)@t 2.96 @a (G.,)@t 2.96 @a (Fischer,)@t 2.96 @a (G.,)@t 2.96 @a (and)@t 2.96 @a (MacDonald,)@t 198.48 522.09 @p 7 @s @SY (-)@t 202.33 522.09 @p 1.16 @a 203.50 522.09 @p @SY (-)@t 65.33 517.40 @p 11 @s @TR (T.)@t 3.33 @a (\(1998\).)@t 3.33 @a (Definition)@t 3.33 @a (of)@t 3.33 @a (the)@t 191.50 517.40 @p (F)@t 211.78 517.40 @p (extension)@t 3.33 @a (to)@t 3.33 @a (Fortran)@t 3.33 @a (90.)@t 3.33 @a (P)@t -0.59 @a (roceedings)@t 3.33 @a (of)@t 3.33 @a (the)@t 3.33 @a (10th)@t 3.33 @a (International)@t 3.33 @a (W)@t -0.59 @a (orkshop)@t 3.33 @a (on)@t 65.33 503.40 @p (Languages)@t 5.04 @a (and)@t 5.04 @a (Compilers)@t 5.04 @a (for)@t 5.04 @a (P)@t -0.59 @a (arallel)@t 5.04 @a (Computers,)@t 5.04 @a (Lectures)@t 5.04 @a (on)@t 5.04 @a (Computer)@t 5.04 @a (Science)@t 5.04 @a (Series,)@t 5.04 @a (Number)@t 5.04 @a (1366,)@t 65.33 489.40 @p (Springer-V)@t -0.59 @a (erlag.)@t 65.33 469.90 @p (OpenMP)@t 8.44 @a (\(1997\).)@t 8.44 @a (OpenMP:)@t 8.44 @a (a)@t 8.44 @a (proposed)@t 8.44 @a (industry)@t 8.44 @a (standard)@t 8.44 @a (API)@t 8.44 @a (for)@t 8.44 @a (shared)@t 8.44 @a (memory)@t 8.44 @a (programming.)@t 65.33 455.90 @p (http:www.openmp.org)@t 65.33 436.40 @p (P)@t -0.59 @a (ase,)@t 3.93 @a (D.)@t 3.93 @a (M.,)@t 3.93 @a (MacDonald,)@t 3.93 @a (T.,)@t 3.93 @a (and)@t 3.93 @a (Meltzer,)@t 3.93 @a (A.)@t 3.93 @a (\(1994\).)@t 3.93 @a (The)@t 3.93 @a (CRAFT)@t 3.93 @a (Fortran)@t 3.93 @a (P)@t -0.59 @a (rogramming)@t 3.93 @a (Model.)@t 3.93 @a (Scientific)@t 65.33 422.40 @p (P)@t -0.59 @a (rogramming,)@t 3.02 @a @TB (3)@t @TR (,)@t 3.02 @a (227-253.)@t 65.33 402.90 @p (Sawdey,)@t 6.40 @a (A.,)@t 6.40 @a (O'Keefe,)@t 6.40 @a (M.,)@t 6.40 @a (Bleck,)@t 6.40 @a (R.)@t 6.40 @a (and)@t 6.40 @a (Numrich,)@t 6.40 @a (R.)@t 6.40 @a (W.)@t 6.40 @a (\(1995\).)@t 6.40 @a (The)@t 6.40 @a (design,)@t 6.40 @a (implementation,)@t 6.40 @a (and)@t 65.33 388.90 @p (performance)@t 2.70 @a (of)@t 2.70 @a (a)@t 2.70 @a (parallel)@t 2.70 @a (ocean)@t 2.70 @a (circulation)@t 2.70 @a (model.)@t 2.70 @a (P)@t -0.59 @a (roceedings)@t 2.70 @a (of)@t 2.70 @a (the)@t 2.70 @a (Sixth)@t 2.70 @a (ECMWF)@t 2.70 @a (W)@t -0.59 @a (orkshop)@t 2.70 @a (on)@t 2.70 @a (the)@t 2.70 @a (Use)@t 2.70 @a (of)@t 65.33 374.90 @p (P)@t -0.59 @a (arallel)@t 5.02 @a (P)@t -0.59 @a (rocessors)@t 5.02 @a (in)@t 5.02 @a (Meteorology,)@t 5.02 @a (Reading,)@t 5.02 @a (England,)@t 5.02 @a (November)@t 5.02 @a (1994,)@t 5.02 @a (W)@t -0.59 @a (orld)@t 5.02 @a (Scientific)@t 5.02 @a (P)@t -0.59 @a (ublishers,)@t 5.02 @a (pp.)@t 65.33 360.90 @p (523-550.)@t 65.33 341.40 @p (V)@t -0.59 @a (aliant,)@t 3.02 @a (L.)@t 3.02 @a (G.)@t 3.02 @a (\(1990\).)@t 3.02 @a (A)@t 3.02 @a (bridging)@t 3.02 @a (model)@t 3.02 @a (for)@t 3.02 @a (parallel)@t 3.02 @a (computation.)@t 3.02 @a @TI (Communications)@t 3.02 @a (ACM)@t 3.02 @a @TB (33)@t @TR (,)@t 3.02 @a (103-111.)@t 65.33 321.89 @p (W)@t -0.59 @a (allcraft,)@t 3.02 @a (A.J.,)@t 3.02 @a (R.W.)@t 3.02 @a (Numrich)@t 3.02 @a (and)@t 3.02 @a (J.K.)@t 3.02 @a (Reid)@t 3.02 @a (\(1998\).)@t 3.02 @a (An)@t 3.02 @a (I/O)@t 3.02 @a (model)@t 3.02 @a (for)@t 3.02 @a (Co-Array)@t 3.02 @a (Fortran.)@t 3.02 @a (In)@t 3.02 @a (preparation.)@t 295.18 51.00 @p @TB (26)@t 309.21 51.00 @p 11.00 @a @endpage %%Page: 27 29 /pn 27 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 65.33 724.60 @p 18 @s @TB (Appendix)@t 4.95 @a (1.)@t 4.95 @a (Extension)@t 4.95 @a (to)@t 4.95 @a (allow)@t 4.95 @a (co-array)@t 4.95 @a (subobjects)@t 4.95 @a (as)@t 4.95 @a (actual)@t 65.33 705.40 @p (arguments)@t 65.33 684.20 @p 11 @s @TR (A)@t 3.23 @a (possible)@t 3.23 @a (extension)@t 3.23 @a (of)@t 3.23 @a (the)@t 3.23 @a (language)@t 3.23 @a (would)@t 3.23 @a (allow)@t 3.23 @a (co-array)@t 3.23 @a (subobjects)@t 3.23 @a (as)@t 3.23 @a (actual)@t 3.23 @a (arguments.)@t 3.23 @a (In)@t 3.23 @a (this)@t 3.23 @a (appendix,)@t 65.33 670.20 @p (we)@t 3.02 @a (give)@t 3.02 @a (the)@t 3.02 @a (additional)@t 3.02 @a (rules)@t 3.02 @a (that)@t 3.02 @a (such)@t 3.02 @a (an)@t 3.02 @a (extension)@t 3.02 @a (would)@t 3.02 @a (imply.)@t 65.33 650.90 @p (If)@t 3.40 @a (a)@t 3.40 @a (co-array)@t 3.40 @a (subobject)@t 3.40 @a (of)@t 3.40 @a (nonzero)@t 3.40 @a (co-rank)@t 3.40 @a (is)@t 3.40 @a (associated)@t 3.40 @a (as)@t 3.40 @a (an)@t 3.40 @a (actual)@t 3.40 @a (argument)@t 3.40 @a (with)@t 3.40 @a (a)@t 3.40 @a (dummy)@t 3.40 @a (argument)@t 3.40 @a (of)@t 3.40 @a (a)@t 65.33 636.90 @p (procedure)@t 4.29 @a (with)@t 4.29 @a (no)@t 4.29 @a (co-array)@t 4.29 @a (dummy)@t 4.29 @a (arguments,)@t 4.29 @a (the)@t 4.29 @a (behaviour)@t 4.29 @a (is)@t 4.29 @a (as)@t 4.29 @a (if)@t 4.29 @a (copy-in)@t 4.29 @a (copy-out)@t 4.29 @a (is)@t 4.29 @a (employed.)@t 4.29 @a (This)@t 65.33 622.90 @p (allows)@t 2.48 @a (all)@t 2.48 @a (Fortran)@t 2.48 @a (95)@t 2.48 @a (intrinsics)@t 2.48 @a (and)@t 2.48 @a (application)@t 2.48 @a (code)@t 2.48 @a (procedures)@t 2.48 @a (to)@t 2.48 @a (be)@t 2.48 @a (referenced)@t 2.48 @a (with)@t 2.48 @a (actual)@t 2.48 @a (arguments)@t 2.48 @a (that)@t 2.48 @a (are)@t 65.33 608.90 @p (co-array)@t 3.02 @a (subobjects.)@t 65.33 589.50 @p (T)@t -0.59 @a (o)@t 4.57 @a (avoid)@t 4.57 @a (hidden)@t 4.57 @a (references)@t 4.57 @a (to)@t 4.57 @a (other)@t 4.57 @a (images,)@t 4.57 @a (a)@t 4.57 @a (co-array)@t 4.57 @a (subobject)@t 4.57 @a (is)@t 4.57 @a (not)@t 4.57 @a (permitted)@t 4.57 @a (as)@t 4.57 @a (an)@t 4.57 @a (actual)@t 4.57 @a (argument)@t 65.33 575.50 @p (corresponding)@t 3.02 @a (to)@t 3.02 @a (a)@t 3.02 @a (pointer)@t 3.02 @a (dummy)@t 3.02 @a (argument.)@t 65.33 556.09 @p (In)@t 3.94 @a (a)@t 3.94 @a (generic)@t 3.94 @a (procedure)@t 3.94 @a (reference,)@t 3.94 @a (including)@t 3.94 @a (a)@t 3.94 @a (defined)@t 3.94 @a (operation)@t 3.94 @a (or)@t 3.94 @a (a)@t 3.94 @a (defined)@t 3.94 @a (assignment,)@t 3.94 @a (the)@t 3.94 @a (ranks)@t 3.94 @a (and)@t 3.94 @a (the)@t 65.33 542.09 @p (co-ranks)@t 2.76 @a (of)@t 2.76 @a (the)@t 2.76 @a (actual)@t 2.76 @a (and)@t 2.76 @a (corresponding)@t 2.76 @a (dummy)@t 2.76 @a (arguments)@t 2.76 @a (must)@t 2.76 @a (match)@t 2.76 @a (if)@t 2.76 @a (any)@t 2.76 @a (dummy)@t 2.76 @a (argument)@t 2.76 @a (is)@t 2.76 @a (a)@t 2.76 @a (co-array)@t 65.33 528.09 @p (and)@t 3.02 @a (the)@t 3.02 @a (actual)@t 3.02 @a (argument)@t 3.02 @a (is)@t 3.02 @a (a)@t 3.02 @a (co-array)@t 3.02 @a (subobject.)@t 65.33 508.70 @p (T)@t -0.59 @a (wo)@t 2.55 @a (procedures)@t 2.55 @a (are)@t 2.55 @a (permitted)@t 2.55 @a (to)@t 2.55 @a (be)@t 2.55 @a (overlaid)@t 2.55 @a (in)@t 2.55 @a (a)@t 2.55 @a (generic)@t 2.55 @a (interface)@t 2.55 @a (if)@t 2.55 @a (a)@t 2.55 @a (non-optional)@t 2.55 @a (argument)@t 2.55 @a (differs)@t 2.55 @a (in)@t 2.55 @a (rank)@t 2.55 @a (or)@t 65.33 494.70 @p (co-rank.)@t 3.02 @a (For)@t 3.02 @a (example,)@t 3.02 @a (the)@t 3.02 @a (following)@t 3.02 @a (interface)@t 3.02 @a (is)@t 3.02 @a (valid:)@t 65.33 478.10 @p 10 @s @CR ( subroutine sub1\(a\))@t 65.33 467.10 @p ( real a\(:\))@t 65.33 456.10 @p ( end subroutine sub1)@t 65.33 445.10 @p ( subroutine sub2\(b\))@t 65.33 434.10 @p ( real b\(:\)[:])@t 65.33 423.10 @p ( end subroutine sub2)@t 65.33 412.10 @p ( subroutine sub3\(c\))@t 65.33 401.10 @p ( real c\(:,:\))@t 65.33 390.10 @p ( end subroutine sub3)@t 65.33 379.10 @p ( subroutine sub4\(d\))@t 65.33 368.10 @p ( real d[:,:])@t 65.33 357.10 @p ( end subroutine sub4)@t 65.33 346.10 @p ( subroutine sub5\(e\))@t 65.33 335.10 @p ( real e[:])@t 65.33 324.09 @p ( end subroutine sub5)@t 65.33 313.09 @p ( end interface sub)@t 65.33 293.50 @p 11 @s @TR (Given)@t 3.02 @a (the)@t 3.02 @a (array)@t 65.33 276.79 @p 10 @s @CR ( real :: c\(10\)[*])@t 65.33 257.20 @p 11 @s @TR (the)@t 3.02 @a (following)@t 3.02 @a (calls)@t 3.02 @a (are)@t 3.02 @a (valid:)@t 65.33 240.59 @p 10 @s @CR ( call sub\(c\) ! Calls sub1)@t 65.33 229.59 @p ( call sub\(c\(:\)\) ! Calls sub1)@t 65.33 218.59 @p ( call sub\(c\(1\)[:]\) ! Calls sub5)@t 65.33 207.59 @p ( call sub\(c\(:\)[:]\) ! Calls sub2)@t 65.33 188.00 @p 11 @s @TR (In)@t 4.06 @a (resolving)@t 4.06 @a (a)@t 4.06 @a (generic)@t 4.06 @a (call,)@t 4.06 @a (a)@t 4.06 @a (specific)@t 4.06 @a (procedure)@t 4.06 @a (that)@t 4.06 @a (matches)@t 4.06 @a (in)@t 4.06 @a (rank)@t 4.06 @a (and)@t 4.06 @a (co-rank)@t 4.06 @a (is)@t 4.06 @a (given)@t 4.06 @a (preference)@t 4.06 @a (to)@t 4.06 @a (a)@t 65.33 174.00 @p (procedure)@t 3.40 @a (with)@t 3.40 @a (no)@t 3.40 @a (co-array)@t 3.40 @a (arguments)@t 3.40 @a (that)@t 3.40 @a (matches)@t 3.40 @a (only)@t 3.40 @a (in)@t 3.40 @a (rank.)@t 3.40 @a (For)@t 3.40 @a (example,)@t 3.40 @a (if)@t 3.40 @a @CR (sub5)@t 3.40 @a @TR (were)@t 3.40 @a (removed)@t 3.40 @a (from)@t 65.33 160.00 @p (the)@t 3.02 @a (above)@t 3.02 @a (interface,)@t 65.33 143.29 @p 10 @s @CR ( call sub\(c\(1\)[:]\))@t 65.33 123.70 @p 11 @s @TR (would)@t 3.02 @a (result)@t 3.02 @a (in)@t 3.02 @a (a)@t 3.02 @a (call)@t 3.02 @a (to)@t 3.02 @a @CR (sub1)@t @TR (.)@t 65.33 104.29 @p (The)@t 3.02 @a (following)@t 3.02 @a (intrinsic)@t 3.02 @a (procedure)@t 3.02 @a (is)@t 3.02 @a (added:)@t 65.33 85.00 @p @CR (image_indices\(source\))@t 5.10 @a @TR (is)@t 5.10 @a (an)@t 5.10 @a (inquiry)@t 5.10 @a (function)@t 5.10 @a (that)@t 5.10 @a (returns)@t 5.10 @a (the)@t 5.10 @a (indices)@t 5.09 @a (of)@t 5.10 @a (the)@t 5.10 @a (images)@t 5.10 @a (on)@t 5.10 @a (which)@t 5.10 @a (a)@t 295.18 51.00 @p @TB (27)@t 309.21 51.00 @p 11.00 @a @endpage %%Page: 28 30 /pn 28 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 65.33 726.90 @p 11 @s @TR (co-array)@t 3.02 @a (subobject)@t 3.02 @a (resides.)@t 65.33 687.90 @p @TB (A2.1)@t 3.02 @a (Sequence)@t 3.02 @a (association)@t 65.33 668.40 @p @TR (For)@t 3.18 @a (a)@t 3.18 @a (co-array)@t 3.18 @a (subobject)@t 3.18 @a (actual)@t 3.18 @a (argument)@t 3.18 @a (of)@t 3.18 @a (nonzero)@t 3.18 @a (co-rank)@t 3.18 @a (in)@t 3.18 @a (a)@t 3.18 @a (procedure)@t 3.18 @a (reference)@t 3.18 @a (that)@t 3.18 @a (is)@t 3.18 @a (not)@t 3.18 @a (generic,)@t 3.18 @a (the)@t 65.33 654.40 @p (rules)@t 2.93 @a (of)@t 2.93 @a (sequence)@t 2.93 @a (association)@t 2.93 @a (are)@t 2.93 @a (applied)@t 2.93 @a (separately)@t 2.93 @a (to)@t 2.93 @a (the)@t 2.93 @a (local)@t 2.93 @a (and)@t 2.93 @a (co-array)@t 2.93 @a (parts.)@t 2.93 @a (The)@t 2.93 @a (co-ranks)@t 2.93 @a (of)@t 2.93 @a (the)@t 2.93 @a (actual)@t 65.33 640.40 @p (and)@t 3.02 @a (dummy)@t 3.02 @a (arguments)@t 3.02 @a (are)@t 3.02 @a (permitted)@t 3.02 @a (to)@t 3.02 @a (differ.)@t 3.02 @a (For)@t 3.02 @a (example,)@t 3.02 @a (the)@t 3.02 @a (following)@t 3.02 @a (is)@t 3.02 @a (permitted:)@t 65.33 623.59 @p 10 @s @CR ( call sub\(a[:,:]\))@t 65.33 612.59 @p ( :)@t 65.33 601.59 @p ( subroutine sub\(a\))@t 65.33 590.59 @p ( real :: a[*])@t 65.33 570.90 @p 11 @s @TR (The)@t 3.23 @a (local)@t 3.23 @a (ranks)@t 3.23 @a (are)@t 3.23 @a (allowed)@t 3.23 @a (to)@t 3.23 @a (differ,)@t 3.23 @a (except)@t 3.23 @a (that)@t 3.23 @a (if)@t 3.23 @a (one)@t 3.23 @a (is)@t 3.23 @a (zero,)@t 3.23 @a (so)@t 3.23 @a (is)@t 3.23 @a (the)@t 3.23 @a (other.)@t 3.23 @a (The)@t 3.23 @a (two)@t 3.23 @a (correspondences)@t 3.23 @a (are)@t 65.33 556.90 @p (independent.)@t 3.32 @a (One)@t 3.32 @a (says)@t 3.32 @a (how)@t 3.32 @a (the)@t 3.32 @a (storage)@t 3.32 @a (is)@t 3.32 @a (arranged)@t 3.32 @a (on)@t 3.32 @a (each)@t 3.32 @a (image)@t 3.32 @a (\(and)@t 3.32 @a (it)@t 3.32 @a (is)@t 3.32 @a (the)@t 3.32 @a (same)@t 3.32 @a (on)@t 3.32 @a (each\))@t 3.32 @a (and)@t 3.32 @a (the)@t 3.32 @a (other)@t 65.33 542.90 @p (says)@t 3.35 @a (how)@t 3.35 @a (the)@t 3.35 @a (image)@t 3.35 @a (addressing)@t 3.35 @a (will)@t 3.35 @a (be)@t 3.35 @a (arranged.)@t 3.35 @a (W)@t -0.59 @a (e)@t 3.35 @a (therefore)@t 3.35 @a (need)@t 3.35 @a (something)@t 3.35 @a (for)@t 3.35 @a (images)@t 3.35 @a (that)@t 3.35 @a (is)@t 3.35 @a (akin)@t 3.35 @a (to)@t 3.35 @a (the)@t 65.33 528.90 @p (array)@t 3.02 @a (element)@t 3.02 @a (order)@t 3.02 @a (in)@t 3.02 @a (Fortran)@t 3.02 @a (95.)@t 65.33 509.40 @p (The)@t 2.79 @a (images)@t 2.79 @a (of)@t 2.79 @a (a)@t 2.79 @a (co-array)@t 2.79 @a (or)@t 2.79 @a (co-array)@t 2.79 @a (subobject)@t 2.79 @a (form)@t 2.79 @a (a)@t 2.79 @a (sequence)@t 2.79 @a (called)@t 2.79 @a (the)@t 2.79 @a @TB (image)@t 2.79 @a (order)@t @TR (.)@t 2.79 @a (For)@t 2.79 @a (a)@t 2.79 @a (co-array)@t 2.79 @a (that)@t 2.79 @a (is)@t 65.33 495.40 @p (not)@t 5.05 @a (a)@t 5.05 @a (dummy)@t 5.05 @a (argument)@t 5.05 @a (associated)@t 5.05 @a (with)@t 5.05 @a (a)@t 5.05 @a (co-array)@t 5.05 @a (subobject,)@t 5.05 @a (the)@t 5.05 @a (images)@t 5.05 @a (are)@t 5.05 @a (1,)@t 5.05 @a (2,)@t 5.05 @a (3,)@t 5.05 @a (...)@t 5.05 @a (For)@t 5.05 @a (a)@t 5.05 @a (co-array)@t 65.33 481.40 @p (subobject,)@t 2.92 @a (the)@t 2.92 @a (images)@t 2.92 @a (are)@t 2.92 @a (selected)@t 2.92 @a (from)@t 2.92 @a (those)@t 2.92 @a (of)@t 2.92 @a (its)@t 2.92 @a (parent.)@t 2.92 @a (For)@t 2.92 @a (a)@t 2.92 @a (dummy)@t 2.92 @a (argument)@t 2.92 @a (associated)@t 2.92 @a (with)@t 2.92 @a (a)@t 2.92 @a (co-array)@t 65.33 467.40 @p (subobject,)@t 3.29 @a (the)@t 3.29 @a (images)@t 3.29 @a (are)@t 3.29 @a (selected)@t 3.29 @a (from)@t 3.29 @a (those)@t 3.29 @a (of)@t 3.29 @a (the)@t 3.29 @a (associated)@t 3.29 @a (actual)@t 3.29 @a (argument.)@t 3.29 @a (The)@t 3.29 @a (position)@t 3.29 @a (of)@t 3.29 @a (an)@t 3.29 @a (arbitrary)@t 65.33 453.40 @p (image)@t 3.28 @a (element)@t 3.28 @a (is)@t 3.28 @a (determined)@t 3.28 @a (by)@t 3.28 @a (the)@t 3.28 @a (subscript)@t 3.28 @a (order)@t 3.28 @a (value)@t 3.28 @a (of)@t 3.28 @a (the)@t 3.28 @a (subscript)@t 3.28 @a (list)@t 3.28 @a (designating)@t 3.28 @a (the)@t 3.28 @a (image)@t 3.28 @a (element)@t 65.33 439.40 @p (using)@t 3.02 @a (the)@t 3.02 @a (same)@t 3.02 @a (formulas)@t 3.02 @a (as)@t 3.02 @a (those)@t 3.02 @a (for)@t 3.02 @a (computing)@t 3.02 @a (ordinary)@t 3.02 @a (subscript)@t 3.02 @a (order)@t 3.02 @a (values.)@t 65.33 419.90 @p (Note)@t 3.02 @a (that)@t 3.02 @a (the)@t 3.02 @a (image)@t 3.02 @a (indices)@t 3.02 @a (of)@t 3.02 @a (a)@t 3.02 @a (dummy)@t 3.02 @a (co-array)@t 3.02 @a (associated)@t 3.02 @a (with)@t 3.02 @a (a)@t 3.02 @a (co-array)@t 3.02 @a (subobject)@t 3.02 @a (need)@t 3.02 @a (not)@t 3.02 @a (commence)@t 3.02 @a (at)@t 65.33 405.90 @p (one)@t 3.02 @a (and)@t 3.02 @a (need)@t 3.02 @a (not)@t 3.02 @a (be)@t 3.02 @a (contiguous.)@t 3.02 @a (Consider)@t 3.02 @a (for)@t 3.02 @a (example,)@t 65.33 389.10 @p 10 @s @CR ( real a\(100\)[32])@t 65.33 378.10 @p ( ...)@t 65.33 367.10 @p ( call sub\(a\(:\)[5:30:5], ... \))@t 65.33 347.40 @p 11 @s @TR (Here,)@t 3.29 @a (the)@t 3.29 @a (first)@t 3.29 @a (dummy)@t 3.29 @a (argument)@t 3.29 @a (of)@t 3.29 @a @CR (sub)@t 3.29 @a @TR (will)@t 3.29 @a (be)@t 3.29 @a (a)@t 3.29 @a (co-array)@t 3.29 @a (that)@t 3.29 @a (resides)@t 3.29 @a (on)@t 3.29 @a (images)@t 3.29 @a (with)@t 3.29 @a (indices)@t 3.29 @a (5,)@t 3.29 @a (10,)@t 3.29 @a (15,)@t 3.29 @a (...)@t 3.29 @a (.)@t 65.33 333.40 @p (The)@t 3.86 @a (intrinsic)@t 3.86 @a (procedure)@t 3.86 @a @CR (image_indices)@t 3.86 @a @TR (is)@t 3.86 @a (available)@t 3.86 @a (to)@t 3.86 @a (provide)@t 3.86 @a (lists)@t 3.86 @a (of)@t 3.86 @a (image)@t 3.86 @a (indices)@t 3.86 @a (when)@t 3.86 @a (needed.)@t 3.86 @a (For)@t 65.33 319.39 @p (example,)@t 3.02 @a @CR (image_indices\(a\(:\)[5:30:5]\))@t 3.02 @a @TR (has)@t 3.02 @a (the)@t 3.02 @a (value)@t 3.02 @a @CR (\(/5,10,15,20,25,30/\))@t @TR (.)@t 65.33 299.89 @p (A)@t 2.66 @a (restriction)@t 2.66 @a (is)@t 2.66 @a (needed)@t 2.66 @a (to)@t 2.66 @a (avoid)@t 2.66 @a (the)@t 2.66 @a (possibility)@t 2.66 @a (of)@t 2.66 @a (data)@t 2.66 @a (redistribution)@t 2.66 @a (across)@t 2.66 @a (a)@t 2.66 @a (procedure)@t 2.66 @a (interface.)@t 2.66 @a (Hence,)@t 2.66 @a (if)@t 2.66 @a (the)@t 65.33 285.89 @p (parent)@t 2.95 @a (of)@t 2.95 @a (the)@t 2.95 @a (actual)@t 2.95 @a (argument)@t 2.95 @a (is)@t 2.95 @a (of)@t 2.95 @a (assumed)@t 2.95 @a (co-shape,)@t 2.95 @a (the)@t 2.95 @a (local)@t 2.95 @a (ranks)@t 2.95 @a (and)@t 2.95 @a (the)@t 2.95 @a (co-ranks)@t 2.95 @a (must)@t 2.95 @a (both)@t 2.95 @a (agree.)@t 2.95 @a (Also,)@t 65.33 271.89 @p (restrictions)@t 2.70 @a (are)@t 2.70 @a (needed)@t 2.70 @a (so)@t 2.70 @a (that)@t 2.70 @a (the)@t 2.70 @a (implementation)@t 2.70 @a (nevers)@t 2.70 @a (needs)@t 2.70 @a (to)@t 2.70 @a (perform)@t 2.70 @a (copy-in)@t 2.70 @a (copy-out)@t 2.70 @a (when)@t 2.70 @a (the)@t 2.70 @a (dummy)@t 65.33 257.89 @p (argument)@t 2.51 @a (is)@t 2.51 @a (a)@t 2.51 @a (co-array;)@t 2.51 @a (for)@t 2.51 @a (example,)@t 2.51 @a (if)@t 2.51 @a (the)@t 2.51 @a (dummy)@t 2.51 @a (argument)@t 2.51 @a (has)@t 2.51 @a (explicit)@t 2.51 @a (local)@t 2.51 @a (shape,)@t 2.51 @a (the)@t 2.51 @a (actual)@t 2.51 @a (argument)@t 2.51 @a (must)@t 65.33 243.89 @p (not)@t 3.02 @a (have)@t 3.02 @a (assumed)@t 3.02 @a (local)@t 3.02 @a (shape.)@t 295.18 51.00 @p @TB (28)@t 309.21 51.00 @p 11.00 @a @endpage %%Page: 29 31 /pn 29 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 65.33 724.60 @p 18 @s @TB (Appendix)@t 4.95 @a (2.)@t 4.95 @a (Extension)@t 4.95 @a (to)@t 4.95 @a (allow)@t 4.95 @a (co-array)@t 4.95 @a (pointers)@t 65.33 705.10 @p 11 @s @TR (A)@t 3.79 @a (possible)@t 3.79 @a (extension)@t 3.79 @a (of)@t 3.79 @a (the)@t 3.79 @a (language)@t 3.79 @a (would)@t 3.79 @a (allow)@t 3.79 @a (co-array)@t 3.79 @a (pointers.)@t 3.79 @a (In)@t 3.79 @a (this)@t 3.79 @a (section,)@t 3.79 @a (we)@t 3.79 @a (give)@t 3.79 @a (the)@t 3.79 @a (additional)@t 65.33 691.10 @p (rules)@t 3.02 @a (that)@t 3.02 @a (such)@t 3.02 @a (an)@t 3.02 @a (extension)@t 3.02 @a (would)@t 3.02 @a (imply.)@t 65.33 671.60 @p (A)@t 2.50 @a (co-array)@t 2.50 @a (may)@t 2.50 @a (be)@t 2.50 @a (a)@t 2.50 @a (pointer)@t 2.50 @a (or)@t 2.50 @a (a)@t 2.50 @a (target.)@t 2.50 @a (In)@t 2.50 @a (the)@t 2.50 @a (absence)@t 2.50 @a (of)@t 2.50 @a (pointers,)@t 2.50 @a (the)@t 2.50 @a (whole)@t 2.50 @a (of)@t 2.50 @a (a)@t 2.50 @a (co-array)@t 2.50 @a (can)@t 2.50 @a (be)@t 2.50 @a (referenced)@t 2.50 @a (as)@t 65.33 657.60 @p (an)@t 2.79 @a (actual)@t 2.79 @a (argument)@t 2.79 @a (by)@t 2.79 @a (use)@t 2.79 @a (of)@t 2.79 @a (array)@t 2.79 @a (syntax)@t 2.79 @a (such)@t 2.79 @a (as)@t 2.79 @a @CR (P\(:\)[:])@t @TR (.)@t 2.79 @a (If)@t 2.79 @a @CR (P)@t 2.79 @a @TR (is)@t 2.79 @a (a)@t 2.79 @a (co-array)@t 2.79 @a (pointer,)@t 2.79 @a (this)@t 2.79 @a (would)@t 2.79 @a (refer)@t 2.79 @a (to)@t 2.79 @a (the)@t 65.33 643.59 @p (target.)@t 3.76 @a (W)@t -0.59 @a (e)@t 3.76 @a (also)@t 3.76 @a (need)@t 3.76 @a (a)@t 3.76 @a (notation)@t 3.76 @a (for)@t 3.76 @a (the)@t 3.76 @a (whole)@t 3.76 @a (of)@t 3.76 @a (the)@t 3.76 @a (pointer,)@t 3.76 @a (and)@t 3.76 @a (have)@t 3.76 @a (chosen)@t 3.76 @a (to)@t 3.76 @a (use)@t 3.76 @a (the)@t 3.76 @a (name)@t 3.76 @a (followed)@t 3.76 @a (an)@t 65.33 629.59 @p (empty)@t 3.02 @a (pair)@t 3.02 @a (of)@t 3.02 @a (square)@t 3.02 @a (brackets,)@t 3.02 @a (for)@t 3.02 @a (example,)@t 3.02 @a @CR (P[])@t @TR (.)@t 65.33 610.09 @p (The)@t 2.90 @a (ALLOCA)@t -1.00 @a (TE)@t 2.90 @a (statement)@t 2.90 @a (is)@t 2.90 @a (available)@t 2.90 @a (for)@t 2.90 @a (a)@t 2.90 @a (pointer)@t 2.90 @a (and)@t 2.90 @a (the)@t 2.90 @a (rules)@t 2.90 @a (of)@t 2.90 @a (the)@t 2.90 @a (Section)@t 2.90 @a (2.6)@t 2.90 @a (apply)@t 2.90 @a (in)@t 2.90 @a (this)@t 2.90 @a (case)@t 2.90 @a (too.)@t 2.90 @a (In)@t 65.33 596.09 @p (order)@t 2.82 @a (not)@t 2.82 @a (to)@t 2.82 @a (hide)@t 2.82 @a (communication)@t 2.82 @a (inside)@t 2.82 @a (a)@t 2.82 @a (pointer,)@t 2.82 @a (pointer)@t 2.82 @a (assignment)@t 2.82 @a (for)@t 2.82 @a (a)@t 2.82 @a (co-array)@t 2.82 @a (pointer)@t 2.82 @a (must)@t 2.82 @a (be)@t 2.82 @a (limited)@t 2.82 @a (to)@t 65.33 582.09 @p (co-array)@t 2.64 @a (targets.)@t 2.64 @a (The)@t 2.64 @a (pointer)@t 2.64 @a (must)@t 2.64 @a (provide)@t 2.64 @a (both)@t 2.64 @a (a)@t 2.64 @a (means)@t 2.64 @a (to)@t 2.64 @a (access)@t 2.64 @a (local)@t 2.64 @a (data)@t 2.64 @a (without)@t 2.64 @a (any)@t 2.64 @a (square)@t 2.64 @a (brackets)@t 2.64 @a (and)@t 2.64 @a (a)@t 65.33 568.09 @p (means)@t 2.76 @a (to)@t 2.76 @a (address)@t 2.76 @a (data)@t 2.76 @a (on)@t 2.76 @a (other)@t 2.76 @a (images)@t 2.76 @a (through)@t 2.76 @a (square)@t 2.76 @a (brackets.)@t 2.76 @a (T)@t -0.59 @a (o)@t 2.76 @a (ensure)@t 2.76 @a (that)@t 2.76 @a (this)@t 2.76 @a (is)@t 2.76 @a (achieved,)@t 2.76 @a (we)@t 2.76 @a (require)@t 2.76 @a (the)@t 65.33 554.09 @p (pointer)@t 2.57 @a (and)@t 2.57 @a (its)@t 2.57 @a (target)@t 2.57 @a (to)@t 2.57 @a (have)@t 2.57 @a (the)@t 2.57 @a (same)@t 2.57 @a (local)@t 2.57 @a (rank)@t 2.57 @a (and)@t 2.57 @a (the)@t 2.57 @a (same)@t 2.57 @a (co-rank.)@t 2.57 @a (For)@t 2.57 @a (example,)@t 2.57 @a (the)@t 2.57 @a (pointer)@t 2.57 @a (assignment)@t 2.57 @a (in)@t 65.33 540.09 @p (the)@t 3.02 @a (code)@t 65.33 523.40 @p 10 @s @CR ( REAL, POINTER :: P\(:\)[:], T\(:,:\)[:,:])@t 65.33 512.40 @p ( ...)@t 65.33 501.40 @p ( P[] => T\(1,:\)[:,2])@t 65.33 481.60 @p 11 @s @TR (tells)@t 2.86 @a (us)@t 2.87 @a (that)@t 2.86 @a (the)@t 2.87 @a (sections)@t 2.86 @a @CR (P\(:\))@t 2.87 @a @TR (and)@t 2.86 @a @CR (T\(1,:\))@t 2.87 @a @TR (are)@t 2.86 @a (identical,)@t 2.86 @a (as)@t 2.87 @a (are)@t 2.86 @a (the)@t 2.87 @a (sections)@t 2.86 @a @CR (P\(1\)[:])@t 2.87 @a @TR (and)@t 2.86 @a @CR (T\(1,1\)[:,2])@t @TR (.)@t 65.33 467.60 @p (There)@t 2.59 @a (is)@t 2.59 @a (no)@t 2.59 @a (need)@t 2.59 @a (for)@t 2.59 @a (automatic)@t 2.59 @a (synchronization)@t 2.59 @a (at)@t 2.59 @a (a)@t 2.59 @a (pointer)@t 2.59 @a (assignment)@t 2.59 @a (statement,)@t 2.59 @a (since)@t 2.59 @a (the)@t 2.59 @a (statement)@t 2.59 @a (involves)@t 65.33 453.60 @p (only)@t 3.02 @a (local)@t 3.02 @a (data)@t 3.02 @a (and)@t 3.02 @a (affects)@t 3.02 @a (the)@t 3.02 @a (later)@t 3.02 @a (action)@t 3.02 @a (only)@t 3.02 @a (of)@t 3.02 @a (the)@t 3.02 @a (current)@t 3.02 @a (image.)@t 65.33 434.10 @p (A)@t 4.93 @a (co-array)@t 4.93 @a (pointer)@t 4.93 @a (is)@t 4.93 @a (not)@t 4.93 @a (permitted)@t 4.93 @a (in)@t 4.93 @a (a)@t 4.93 @a (pointer)@t 4.93 @a (assignment)@t 4.93 @a (statement)@t 4.93 @a (without)@t 4.93 @a (the)@t 4.93 @a (empty)@t 4.93 @a (pair)@t 4.93 @a (of)@t 4.93 @a (square)@t 65.33 420.10 @p (brackets,)@t 3.02 @a (that)@t 3.02 @a (is,)@t 3.02 @a (both)@t 3.02 @a (the)@t 3.02 @a (array)@t 3.02 @a (and)@t 3.02 @a (co-array)@t 3.02 @a (parts)@t 3.02 @a (must)@t 3.02 @a (be)@t 3.02 @a (pointer)@t 3.02 @a (assigned)@t 3.02 @a (together.)@t 65.33 337.90 @p 18 @s @TB (Appendix)@t 4.95 @a (3.)@t 4.95 @a (The)@t 4.95 @a (synchronization)@t 4.95 @a (intrinsics)@t 4.95 @a (in)@t 4.95 @a (Co-Array)@t 65.33 318.59 @p (Fortran)@t 65.33 299.50 @p 11 @s @TR (In)@t 3.45 @a (this)@t 3.45 @a (appendix,)@t 3.45 @a (we)@t 3.45 @a (explain)@t 3.45 @a (how)@t 3.45 @a (a)@t 3.45 @a (simple)@t 3.45 @a (module)@t 3.45 @a (for)@t 3.45 @a @CR (sync_team)@t 3.45 @a @TR (and)@t 3.45 @a @CR (sync_all)@t 3.45 @a @TR (may)@t 3.45 @a (be)@t 3.45 @a (constructed)@t 3.45 @a (in)@t 65.33 285.50 @p (Co-Array)@t 2.73 @a (Fortran,)@t 2.73 @a (assuming)@t 2.73 @a (that)@t 2.73 @a (the)@t 2.73 @a (intrinsic)@t 2.73 @a @CR (sync_memory)@t 2.73 @a @TR (is)@t 2.73 @a (available.)@t 2.73 @a (Improved)@t 2.73 @a (code)@t 2.73 @a (is)@t 2.73 @a (accessible)@t 2.73 @a (by)@t 2.73 @a (ftp)@t 65.33 271.50 @p (from)@t 3.02 @a @CR (jkr.cc.rl.ac.uk)@t 3.02 @a @TR (in)@t 3.02 @a (the)@t 3.02 @a (directory)@t 3.02 @a @CR (pub/caf)@t @TR (.)@t 65.33 254.09 @p (W)@t -0.59 @a (e)@t 2.63 @a (identify)@t 2.63 @a (corresponding)@t 2.63 @a (calls)@t 2.63 @a (of)@t 2.63 @a @CR (sync_team)@t 2.63 @a @TR (by)@t 2.63 @a (counting,)@t 2.63 @a (for)@t 2.63 @a (each)@t 2.63 @a (pair)@t 2.63 @a @TI (p)@t 2.63 @a @TR (and)@t 424.21 254.09 @p @TI (q)@t 429.71 254.09 @p @TR (,)@t 2.63 @a (the)@t 2.63 @a (number)@t 2.63 @a (of)@t 2.63 @a (invocations)@t 65.33 240.09 @p @TI (c)@t @SY (\()@t @TI (p)@t @SY (,)@t @TI (q)@t @SY (\))@t 3.10 @a @TR (for)@t 3.10 @a (a)@t 3.10 @a (team)@t 3.10 @a (including)@t 3.10 @a (image)@t 3.10 @a @TI (p)@t 3.10 @a @TR (on)@t 3.10 @a (image)@t 270.43 240.09 @p @TI (q)@t 275.93 240.09 @p @TR (.)@t 3.10 @a (If)@t 3.10 @a @TI (p)@t 3.10 @a @TR (and)@t 3.10 @a @TI (q)@t 3.10 @a @TR (belong)@t 3.10 @a (to)@t 3.10 @a (more)@t 3.10 @a (than)@t 3.10 @a (one)@t 3.10 @a (team,)@t 3.10 @a (their)@t 3.10 @a (calls)@t 3.10 @a (for)@t 3.10 @a (each)@t 65.33 226.09 @p (team)@t 2.60 @a (are)@t 2.60 @a (required)@t 2.60 @a (to)@t 2.60 @a (be)@t 2.60 @a (in)@t 2.60 @a (the)@t 2.60 @a (same)@t 2.60 @a (order,)@t 2.60 @a (so)@t 2.60 @a (the)@t 2.60 @a (calls)@t 2.60 @a (correspond)@t 2.60 @a (if)@t 2.60 @a (and)@t 2.60 @a (only)@t 2.60 @a (if)@t 2.60 @a @TI (c)@t @SY (\()@t @TI (p)@t @SY (,)@t @TI (q)@t @SY (\))@t 2.60 @a @TR (and)@t 2.60 @a @TI (c)@t @SY (\()@t @TI (q)@t @SY (,)@t @TI (p)@t @SY (\))@t 2.60 @a @TR (have)@t 2.60 @a (the)@t 2.60 @a (same)@t 65.33 212.09 @p (value.)@t 65.33 194.70 @p (In)@t 3.64 @a (a)@t 3.64 @a (long)@t 3.64 @a (run)@t 3.64 @a (on)@t 3.64 @a (a)@t 3.64 @a (powerful)@t 3.64 @a (machine,)@t 3.64 @a (the)@t 3.64 @a (counts)@t 3.64 @a @TI (c)@t @SY (\()@t @TI (p)@t @SY (,)@t @TI (q)@t @SY (\))@t 3.64 @a @TR (may)@t 3.64 @a (get)@t 3.64 @a (very)@t 3.64 @a (large.)@t 3.64 @a (W)@t -0.59 @a (e)@t 3.64 @a (therefore)@t 3.64 @a (use)@t 3.64 @a (long)@t 3.64 @a (integers,)@t 65.33 180.70 @p (declared)@t 4.37 @a (as)@t 4.37 @a (with)@t 4.37 @a @CR (kind=selected_int_kind\(18\))@t @TR (,)@t 4.37 @a (to)@t 4.37 @a (hold)@t 4.37 @a (these)@t 4.37 @a (counts.)@t 4.37 @a (On)@t 4.37 @a (a)@t 4.37 @a (machine)@t 4.37 @a (without)@t 4.37 @a (such)@t 65.33 166.70 @p (integers,)@t 3.02 @a (extra)@t 3.02 @a (code)@t 3.02 @a (will)@t 3.02 @a (be)@t 3.02 @a (needed;)@t 3.02 @a (for)@t 3.02 @a (example,)@t 3.02 @a (the)@t 3.02 @a (counts)@t 3.02 @a (might)@t 3.02 @a (be)@t 3.02 @a (held)@t 3.02 @a (as)@t 3.02 @a (a)@t 3.02 @a (pair)@t 3.02 @a (of)@t 3.02 @a (integers.)@t 65.33 149.29 @p (The)@t 2.94 @a (basic)@t 2.94 @a (mechanism)@t 2.94 @a (we)@t 2.94 @a (use)@t 2.94 @a (to)@t 2.94 @a (force)@t 2.94 @a (an)@t 2.94 @a (image)@t 2.94 @a (to)@t 2.94 @a (wait)@t 2.94 @a (for)@t 2.94 @a (another)@t 2.94 @a (image)@t 2.94 @a (is)@t 2.94 @a (to)@t 2.94 @a (make)@t 2.94 @a (it)@t 2.94 @a (execute)@t 2.94 @a (a)@t 2.94 @a (tight)@t 2.94 @a (loop)@t 2.94 @a (of)@t 65.33 135.29 @p (code)@t 3.16 @a (until)@t 3.16 @a (co-array)@t 3.16 @a (data)@t 3.16 @a (is)@t 3.16 @a (altered)@t 3.16 @a (by)@t 3.16 @a (the)@t 3.16 @a (other)@t 3.16 @a (image.)@t 3.16 @a (Here)@t 3.16 @a (is)@t 3.16 @a (an)@t 3.16 @a (example,)@t 3.16 @a (where)@t 3.16 @a (we)@t 3.16 @a (hold)@t 3.16 @a (the)@t 3.16 @a (count)@t 3.16 @a @TI (c)@t @SY (\()@t @TI (p)@t @SY (,)@t @TI (q)@t @SY (\))@t 3.16 @a @TR (in)@t 65.33 121.29 @p (the)@t 3.02 @a (co-array)@t 3.02 @a (element)@t 3.02 @a @CR (c\(p\)[q])@t @TR (.)@t 65.33 106.70 @p 10 @s @CR ( do ! Wait for the count on image q to be big enough)@t 65.33 95.70 @p ( call sync_memory)@t 65.33 84.70 @p ( if\( c\(me\)[q] >= c\(q\) \) exit)@t 295.18 51.00 @p 11 @s @TB (29)@t 309.21 51.00 @p 11.00 @a @endpage %%Page: 30 32 /pn 30 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 65.33 729.60 @p 10 @s @CR ( end do)@t 65.33 712.10 @p 11 @s @TR (Note)@t 2.66 @a (the)@t 2.66 @a (presence)@t 2.66 @a (of)@t 2.66 @a @CR (sync_memory)@t 2.66 @a @TR (in)@t 2.66 @a (the)@t 2.66 @a (loop.)@t 2.66 @a (This)@t 2.66 @a (is)@t 2.66 @a (essential.)@t 2.66 @a (Without)@t 2.66 @a (it,)@t 2.66 @a (the)@t 2.66 @a (compiler)@t 2.66 @a (could)@t 2.66 @a (legitimately)@t 65.33 698.10 @p (make)@t 3.06 @a (a)@t 3.06 @a (single)@t 3.06 @a (local)@t 3.06 @a (copy)@t 3.06 @a (of)@t 3.06 @a (c\(me\)[q])@t 3.06 @a (and)@t 3.06 @a (execute)@t 3.06 @a (the)@t 3.06 @a (loop)@t 3.06 @a (for)@t 3.06 @a (ever.)@t 3.06 @a (On)@t 3.06 @a (some)@t 3.06 @a (systems,)@t 3.06 @a (the)@t 3.06 @a (loop)@t 3.06 @a (may)@t 3.06 @a (slow)@t 3.06 @a (the)@t 65.33 684.10 @p (execution)@t 3.14 @a (of)@t 3.14 @a (other)@t 3.14 @a (images)@t 3.14 @a (by)@t 3.14 @a (the)@t 3.14 @a (continual)@t 3.14 @a (reference)@t 3.14 @a (to)@t 3.14 @a (data)@t 3.14 @a (on)@t 3.14 @a (image)@t 3.14 @a @CR (q)@t @TR (.)@t 3.14 @a (This)@t 3.14 @a (may)@t 3.14 @a (be)@t 3.14 @a (alleviated)@t 3.14 @a (by)@t 3.14 @a (inserting)@t 65.33 670.10 @p (some)@t 3.70 @a (code)@t 3.70 @a (ahead)@t 3.70 @a (of)@t 3.70 @a (the)@t 3.70 @a @CR (end)@t 3.70 @a (do)@t 3.70 @a @TR (statement)@t 3.70 @a (to)@t 3.70 @a (slow)@t 3.70 @a (the)@t 3.70 @a (loop.)@t 3.70 @a (W)@t -0.59 @a (e)@t 3.70 @a (will)@t 3.70 @a (not)@t 3.70 @a (do)@t 3.70 @a (this)@t 3.70 @a (here,)@t 3.70 @a (but)@t 3.70 @a (it)@t 3.70 @a (illustrates)@t 3.70 @a (that)@t 65.33 656.10 @p (tuning)@t 3.02 @a (of)@t 3.02 @a (the)@t 3.02 @a (code)@t 3.02 @a (may)@t 3.02 @a (be)@t 3.02 @a (needed)@t 3.02 @a (for)@t 3.02 @a (efficient)@t 3.02 @a (working)@t 3.02 @a (on)@t 3.02 @a (a)@t 3.02 @a (particular)@t 3.02 @a (machine.)@t 65.33 638.59 @p (W)@t -0.59 @a (e)@t 4.67 @a (begin)@t 4.67 @a (with)@t 4.67 @a (a)@t 4.67 @a (simple)@t 4.67 @a (module)@t 4.67 @a (for)@t 4.67 @a @CR (sync_team)@t 4.67 @a @TR (with)@t 4.67 @a @CR (wait)@t 4.67 @a @TR (present.)@t 4.67 @a (The)@t 4.67 @a (counts)@t 4.67 @a @TI (c)@t @SY (\()@t @TI (p)@t @SY (,)@t @TI (q)@t @SY (\))@t 4.67 @a @TR (are)@t 4.67 @a (held)@t 4.67 @a (in)@t 4.67 @a (the)@t 65.33 624.59 @p (co-array)@t 2.60 @a @CR (c)@t @TR (.)@t 2.61 @a (This)@t 2.60 @a (has)@t 2.61 @a (to)@t 2.60 @a (be)@t 2.61 @a (allocatable)@t 2.60 @a (because)@t 2.61 @a (the)@t 2.60 @a (number)@t 2.60 @a (of)@t 2.61 @a (images)@t 2.60 @a (is)@t 2.61 @a (not)@t 2.60 @a (a)@t 2.61 @a (Fortran)@t 2.60 @a (constant.)@t 2.61 @a (It)@t 2.60 @a (means)@t 2.61 @a (that)@t 2.60 @a (the)@t 65.33 610.59 @p (initialization)@t 2.79 @a (subroutine)@t 2.79 @a @CR (sync_start)@t 2.79 @a @TR (is)@t 2.79 @a (needed)@t 2.79 @a (to)@t 2.79 @a (allocate)@t 2.79 @a (the)@t 2.79 @a (co-array)@t 2.79 @a (and)@t 2.79 @a (initialize)@t 2.79 @a (its)@t 2.79 @a (value.)@t 2.79 @a (This)@t 2.79 @a (must)@t 2.79 @a (be)@t 65.33 596.59 @p (called)@t 2.77 @a (on)@t 2.77 @a (all)@t 2.77 @a (images.)@t 2.77 @a (W)@t -0.59 @a (e)@t 2.77 @a (must)@t 2.77 @a (not)@t 2.77 @a (allow)@t 2.77 @a (any)@t 2.77 @a (image)@t 2.77 @a (to)@t 2.77 @a (return)@t 2.77 @a (until)@t 2.77 @a (all)@t 2.77 @a (images)@t 2.77 @a (have)@t 2.77 @a (initialized)@t 2.77 @a (this)@t 2.77 @a (array.)@t 2.77 @a (W)@t -0.59 @a (e)@t 2.77 @a (do)@t 65.33 582.59 @p (this)@t 3.02 @a (here)@t 3.02 @a (by)@t 3.02 @a (another)@t 3.02 @a (allocate)@t 3.02 @a (statement,)@t 3.02 @a (since)@t 3.02 @a (this)@t 3.02 @a (causes)@t 3.02 @a (synchronization.)@t 65.33 567.90 @p 10 @s @CR (module sync)@t 65.33 556.90 @p ( implicit none)@t 65.33 545.90 @p ( save)@t 65.33 534.90 @p ( integer, private :: this_image, num_images)@t 65.33 523.90 @p ( integer, parameter :: long=selected_int_kind\(18\))@t 65.33 512.90 @p ( integer\(long\), allocatable, private :: c\(:\)[:],dummy\(:\)[:])@t 65.33 501.90 @p ( integer, private :: k,me,nimg,q)@t 65.33 490.90 @p (contains)@t 65.33 479.90 @p ( subroutine sync_start ! This must be called initially on all images)@t 65.33 468.90 @p ( me = this_image\(\))@t 65.33 457.90 @p ( nimg = num_images\(\))@t 65.33 446.90 @p ( allocate \( c\(nimg\)[*] \))@t 65.33 435.90 @p ( c\(:\) = 0)@t 65.33 424.90 @p ( call sync_memory)@t 65.33 413.90 @p ( allocate \( dummy\(0\)[*] \) ! Synchronize)@t 65.33 402.90 @p ( end subroutine sync_start)@t 65.33 391.90 @p ( )@t 65.33 380.90 @p ( subroutine sync_team\(team,wait\))@t 65.33 369.90 @p ( integer, intent\(in\) :: team\(:\),wait\(:\))@t 65.33 358.90 @p ( call sync_memory)@t 65.33 347.90 @p ( c\(team\) = c\(team\) + 1)@t 65.33 336.90 @p ( do k= 1,size\(wait\))@t 65.33 325.89 @p ( q = wait\(k\))@t 65.33 314.89 @p ( do ! spin waiting for image wait\(k\))@t 65.33 303.89 @p ( call sync_memory)@t 65.33 292.89 @p ( if\( c\(me\)[q] >= c\(q\) \) exit)@t 65.33 281.89 @p ( enddo)@t 65.33 270.89 @p ( enddo)@t 65.33 259.89 @p ( call sync_memory)@t 65.33 248.89 @p ( end subroutine sync_team)@t 65.33 237.89 @p ( )@t 65.33 226.89 @p ( end module sync)@t 65.33 215.89 @p ( )@t 65.33 198.39 @p 11 @s @TR (The)@t 3.02 @a (following)@t 3.02 @a (additions)@t 3.02 @a (provide)@t 3.02 @a (for)@t 3.02 @a (the)@t 3.02 @a (cases)@t 3.02 @a (where)@t 3.02 @a @CR (team)@t 3.02 @a @TR (is)@t 3.02 @a (scalar)@t 3.02 @a (or)@t 3.02 @a @CR (wait)@t 3.02 @a @TR (is)@t 3.02 @a (absent)@t 65.33 183.70 @p 10 @s @CR ( interface sync_team)@t 65.33 172.70 @p ( module procedure sync_team, sync_team0, sync_team1, &)@t 65.33 161.70 @p ( sync_team2, sync_team3, sync_team4)@t 65.33 150.70 @p ( end interface)@t 65.33 139.70 @p ( )@t 65.33 128.70 @p ( subroutine sync_team0\(team\))@t 65.33 117.70 @p ( integer, intent\(in\) :: team)@t 65.33 106.70 @p ( call sync_team \(\(/me,team/\)\))@t 65.33 95.70 @p ( end subroutine sync_team0)@t 65.33 84.70 @p ( )@t 295.18 51.00 @p 11 @s @TB (30)@t 309.21 51.00 @p 11.00 @a @endpage %%Page: 31 33 /pn 31 def /ph 843.00 def /pw 550.06 def @beginpage 0.40 @w 65.33 729.60 @p 10 @s @CR ( subroutine sync_team1\(team\))@t 65.33 718.60 @p ( integer, intent\(in\) :: team\(:\))@t 65.33 707.60 @p ( call sync_team\(team,team\))@t 65.33 696.60 @p ( end subroutine sync_team1)@t 65.33 685.60 @p ( )@t 65.33 674.60 @p ( subroutine sync_team2\(team,wait\))@t 65.33 663.60 @p ( integer, intent\(in\) :: team\(:\))@t 65.33 652.59 @p ( integer, intent\(in\) :: wait)@t 65.33 641.59 @p ( call sync_team\(team,\(/wait/\)\))@t 65.33 630.59 @p ( end subroutine sync_team2)@t 65.33 619.59 @p ( )@t 65.33 608.59 @p ( subroutine sync_team3\(team,wait\))@t 65.33 597.59 @p ( integer, intent\(in\) :: team)@t 65.33 586.59 @p ( integer, intent\(in\) :: wait)@t 65.33 575.59 @p ( call sync_team \(\(/me,team/\),\(/wait/\)\))@t 65.33 564.59 @p ( end subroutine sync_team3)@t 65.33 553.59 @p ( )@t 65.33 542.59 @p ( subroutine sync_team4\(team,wait\))@t 65.33 531.59 @p ( integer, intent\(in\) :: team)@t 65.33 520.59 @p ( integer, intent\(in\) :: wait\(:\))@t 65.33 509.60 @p ( call sync_team \(\(/me,team/\),wait\))@t 65.33 498.60 @p ( end subroutine sync_team4)@t 65.33 487.60 @p ( )@t 65.33 464.00 @p 11 @s @TR (The)@t 3.02 @a (following)@t 3.02 @a (additions)@t 3.02 @a (provide)@t 3.02 @a (for)@t 3.02 @a @CR (sync_all)@t 65.33 443.70 @p 10 @s @CR ( integer, allocatable, private :: all\(:\))@t 65.33 432.70 @p ( interface sync_all)@t 65.33 421.70 @p ( module procedure sync_all, sync_all1, sync_all2)@t 65.33 410.70 @p ( end interface)@t 65.33 399.70 @p ( )@t 65.33 388.70 @p (! In sync_start)@t 65.33 377.70 @p ( allocate \(all\(nimg\)\))@t 65.33 366.70 @p ( all = \(/ \(k,k=1,nimg\) /\))@t 65.33 355.70 @p ( )@t 65.33 344.70 @p ( subroutine sync_all)@t 65.33 333.70 @p ( call sync_team \(all,all\))@t 65.33 322.70 @p ( end subroutine sync_all)@t 65.33 311.70 @p ( )@t 65.33 300.70 @p ( subroutine sync_all1\(wait\))@t 65.33 289.70 @p ( integer, intent\(in\) :: wait\(:\))@t 65.33 278.70 @p ( call sync_team\(all,wait\))@t 65.33 267.70 @p ( end subroutine sync_all1)@t 65.33 256.70 @p ( )@t 65.33 245.70 @p ( subroutine sync_all2\(wait\))@t 65.33 234.70 @p ( integer, intent\(in\) :: wait)@t 65.33 223.70 @p ( call sync_team\(all,\(/wait/\)\))@t 65.33 212.70 @p ( end subroutine sync_all2)@t 65.33 201.70 @p ( )@t 65.33 178.00 @p 11 @s @TR (The)@t 3.62 @a (subroutine)@t 3.62 @a @CR (sync_team)@t 3.62 @a @TR (may)@t 3.62 @a (also)@t 3.62 @a (include)@t 3.62 @a (checks)@t 3.62 @a (that)@t 3.62 @a @CR (me)@t 3.62 @a @TR (is)@t 3.62 @a (in)@t 3.62 @a @CR (team)@t @TR (,)@t 3.62 @a (that)@t 3.62 @a (the)@t 3.62 @a (element)@t 3.62 @a (of)@t 3.62 @a @CR (team)@t 3.62 @a @TR (are)@t 3.62 @a (in)@t 65.33 164.00 @p (range,)@t 2.94 @a (that)@t 2.94 @a (there)@t 2.94 @a (are)@t 2.94 @a (no)@t 2.94 @a (repeated)@t 2.94 @a (values,)@t 2.94 @a (and)@t 2.94 @a (that)@t 2.94 @a (each)@t 2.94 @a (value)@t 2.94 @a (in)@t 2.94 @a @CR (wait)@t 2.94 @a @TR (is)@t 2.94 @a (in)@t 2.94 @a @CR (team)@t @TR (.)@t 2.94 @a (These)@t 2.94 @a (checks)@t 2.94 @a (may)@t 2.94 @a (be)@t 2.94 @a (under)@t 65.33 150.00 @p (the)@t 2.55 @a (control)@t 2.55 @a (of)@t 2.55 @a (a)@t 2.55 @a (public)@t 2.55 @a (flag)@t 2.55 @a (in)@t 2.55 @a (the)@t 2.55 @a (module,)@t 2.55 @a (so)@t 2.55 @a (that)@t 2.55 @a (they)@t 2.55 @a (can)@t 2.55 @a (be)@t 2.55 @a (omitted)@t 2.55 @a (in)@t 2.55 @a (production)@t 2.55 @a (code)@t 2.55 @a (when)@t 2.55 @a (the)@t 2.55 @a (developer)@t 2.55 @a (is)@t 65.33 136.00 @p (confident)@t 3.02 @a (that)@t 3.02 @a (the)@t 3.02 @a (errors)@t 3.02 @a (will)@t 3.02 @a (not)@t 3.02 @a (occur.)@t 65.33 113.00 @p (The)@t 2.97 @a (number)@t 2.97 @a (of)@t 2.97 @a (cycles)@t 2.97 @a (of)@t 2.97 @a (the)@t 2.97 @a (do)@t 2.97 @a (construct)@t 2.97 @a (for)@t 2.97 @a (the)@t 2.97 @a (wait)@t 2.97 @a (may)@t 2.97 @a (be)@t 2.97 @a (limited,)@t 2.97 @a (so)@t 2.97 @a (that)@t 2.97 @a (deadlock)@t 2.97 @a (can)@t 2.97 @a (be)@t 2.97 @a (detected.)@t 2.97 @a (If)@t 2.97 @a (the)@t 65.33 99.00 @p (limit)@t 3.54 @a (is)@t 3.54 @a (reached,)@t 3.54 @a (we)@t 3.54 @a (recommend)@t 3.54 @a (that)@t 3.54 @a (a)@t 3.54 @a (message)@t 3.54 @a (be)@t 3.54 @a (printed)@t 3.54 @a (showing)@t 3.54 @a (the)@t 3.54 @a (index)@t 3.54 @a @CR (p)@t 3.54 @a @TR (of)@t 3.54 @a (the)@t 3.54 @a (executing)@t 3.54 @a (image,)@t 3.54 @a (the)@t 65.33 85.00 @p (index)@t 3.02 @a @CR (q)@t 3.02 @a @TR (of)@t 3.02 @a (the)@t 3.02 @a (image)@t 3.02 @a (for)@t 3.02 @a (which)@t 3.02 @a (it)@t 3.02 @a (is)@t 3.02 @a (waiting,)@t 3.02 @a (the)@t 3.02 @a (team,)@t 3.02 @a (and)@t 3.02 @a (the)@t 3.02 @a (counts)@t 3.02 @a @TI (c)@t @SY (\()@t @TI (p)@t @SY (,)@t @TI (q)@t @SY (\))@t 3.02 @a @TR (and)@t 424.12 85.00 @p @TI (c)@t @SY (\()@t @TI (q)@t @SY (,)@t @TI (p)@t @SY (\))@t 450.10 85.00 @p @TR (.)@t 295.18 51.00 @p @TB (31)@t 309.21 51.00 @p 11.00 @a @endpage @tail %%Trailer JobVM restore %%Pages:33 %%Endfile %%EndJob