— 29 —SENAC Vol. 46, No. 1（2013. 1）

Fortran スマートプログラミング	 S ȉʑł

v{®ÈÖº}ÅÓ§ÏÊ~k_ SǪİ ûųƖĨœŘǦŧŘɨɼǍɼŕŧŘǿȉʏłz !EHJH7D ÅÓ§ÏÊŋƯǲƩű{qȥ`ƠǽkʋȉʐłzªÄÑÖµÔ{ĉđĝ~w^yɊƤkksʌƜĀȿȌȿȌǃ¬ÉÍÒÖ¬ÎÔǩÅÓ§ÏÊƩfsǹɏhhzzĥĒzmʌƜĀȿȌ{ʋ¨ÔÂÍÖ³ŋƯġõz]TʆɡƜĀǙȌU{TœŝɫËÌÐɋƩdUĖǩmcàǳǲzʋq~TĉđĝÔ³ÖÃÖ®UĞ`ĐǦřșmbzmʌkbkʋ!EHJH7D ~hê~ƿY}ƞǑcǩƂjy^mʌqß~ʋÅÓ§ÏÊƩfƉɯǶ^sʋËÔ¸¼Ô®ŝƥ~ksʋ¨ÔÂÍÖ³ġõȕbfėŹmsƩűcĺy^mʌƪȗłz]çłʋhßbùĖ}
^fwbȖèkmʌ÷`ʋ
TɩēǙȌUö`ʋƜĀɸĶ×wŐƜzìȲkʋɸĶȶȔɯǙȌʋɸĶ{ɸĶǙȌŶzɀɜmh{czdmʌsʋŐƜŜȾƌŴŶʋƞŖēŐƜ}|~w^yȖèkmʌÅÓ§ÏÊõ~ƅydsʋh_}uv{ɤtƞǑövyʋÅÓ§ÏÊj~®ÈÖº~kyk_ʌsʋƜĀȿȌm{d~ʋʆɡÃÖÐ ŐƕŒÿɬȿȌ}|ʋȨĒz×bõƆmɻk^ÅÓ§ÏÊcŻȶ~}h{c]mʌŮ^}h{~ʋhŒfÔ³Ö¾¶ºb´ÔÓÖ»Ĳȧ}ªÄÑÖµÔÏÄÏÐ{kyċɮjy^zʋƪŷ~!EHJH7D bĖǩzdȊȦcaĢÏÄÏÐ^fwbȖèkmʌ1.	
  知っておくと便利な文法	 ƯȍzʋȺ`yaf{ùĖ}ƩűʋhzŋƯǲƞǑzɀɜmh{czd}^ʋ¨ÔÂÍÖ³ȕb}ġõƎŚ~w^yɊƤkmʌ

1.1	
  継 続 行 と 複 文 	 ȿȌűcɽŪ~ɬfyʋõƆ~övy^ ¹³Ô»ǁūɓ`{ɋxf}mʌsʋ¨ÔÀÏ~vyʏȱ~ƩgƞŖƜ~ėɳc]zʋqz ÏÖ~}h{]mʌqhzʋʏȱƞɟßzƙȱkyʋȵƜȱ~ĒĜkyƩfh{czdmʌh{dʋǅȱ~Ȝȝm{^_ƂżǽmĪ{kyʋȱƮ~TUƞŖƩdmʌ÷`ʋ
FH?DJ 7BF>7 8;J7 =7CC7 :;BJ7 ;FI?BED P;J7 ;J7 ?EJ7 A7FF7 B7C8:7 CK{^_ʏȱʋ
FH?DJ 7BF>7 8;J7 =7CC7 :;BJ7 ;FI?BED  P;J7 ;J7 ?EJ7 A7FF7 B7C8:7 CK{ĒĜkyƩfh{czdmʌȜȝȱôȱ~svyb^oʌ
FH?DJ 7BF>7 8;J7 =7CC7  :;BJ7 ;FI?BED  P;J7 ;J7 ?EJ7  A7FF7 B7C8:7 CK{Ʃ^yķlzmʌƪŷȱ~TUëĞm{ ÏÖ~}zǒƂkyÚj^ʌ
ɞ~ʋʏȱ~ȵƜƞƩfh{ĲȧzmʌhTȵƞU{^^mʌʐþíÙƞʏȱzƩf~ʋƞ{ƞĒɺmɀĴ{kyTUƞŖƩdmʌ÷`ʋ

— 30 —

SENAC Vol. 46, No. 1（2013. 1）

M	
 	
 	
 N	
 	
 	
 O	
 	
 	
 
~]|ƧdfyaxbkʊqriʉȳƜ~ôǧf~]{Ǹ\êćƜƧdŋĴ|ɱŘiwØh\ʊÃÑ¥ÍÈʍȯxÕu~ŗȗiqğóȰk~aŉƭxkʊʍȯ|ȳƚ~ƜƧdyʉğó~ǒaȵ^|dd{~xʉŐǧi{\ƞaȩ\yŽ\kʊ	 	  \Z(Vu`	 fxŎƚɧđ~Śȼ|ôtw\qŚȼƜʉ	 ņƌŘ	 Ŏƚ  	 Ŏƚ ʉ

	 y\]Ŵůxiqʊffxʉ
SņƌŘT|S>CI:<:GTy`ʉ
SG:6AT~]{ƚþņȾɚiʉSŎƚT|ŎƚĶ`ʉɧđĶyo~ȴȒƚȾɚikʊf~ŚȼƜʉ·Ô±ɿň|_e
ÉÊÎ~Ǻúy\]ƀĺ[kʊ	
 hwʉ DGIG6C `ŚȼƜ~ȾɚŴůaƊŲhiqʊƊŲŚȼƜô]yʉÉÊÎǺúkyĵƥ|ĒƪþêćiqʉÉÊÎ~ǟžƌŘkfyaxbkʊƊŲŚȼƜëØ~Ŵůxkʊ	 ņƌŘʕ ŢžʍʉŢžʎʉʖ	 	 Ŏƚ ʕƚþʍʖ Ŏƚ ʕƚþʍʖʉ	
 ffxʉȺ`tfʉS
ʕTySʖ
Tʉf~ÝaǴǫİȥx[y\]ƀĺxôtw\re{~xʉȺ`tfȦñƧ`{\xØh\ʊƊŲŚȼƜôǧkybʉņƌŘɦyŚȼkŎƚɧ
đ~ɭ|¦ÑÒʎüSTƧdŹȴa[kʊqʉSŢžT|ŚȼkŎƚ~ǟžƌŘkq~áȐɆȾɚikʊŢžƚþǴǫiwʉħ|ņƌŘyŎƚ~ɭ|STƧ\
qre~ŚȼƜʉƧ`l|ŚȼiqơƯ~Ƨůyĵjƀĺ|{kʊ	 ŢžƧ`l|ʉħ|ƚþêćiqŴxŚȼkyʉo~Ŏƚ|ƌŘiqƚþêćiwʉÃÑ¥ÍÈ~ğóaɬŒkfyƀĺikʊõ^ʉ	 >CI:<:G	 	 >B6M 	
 ?B6M
G:6A	
 	
 MM
	
 NN 	 	 ~]|Śȼkyʉop~Ŏƚ|ƌŘhqþêćiqǠƂxğóaɬŒikʊqr
iʉf~ŚȼƜÝx~ƚþêćÕŮrexkʊ¨ÂÏÔ³ÒÝxƚþêćiqŎƚŚȼiwʉ¦ÔÏkq|ƚþaêćh~x[mʊf~qʉo~ŎƚřȯƜxŎƦ
kyʉo~ŎƦiqȗƳaǆkʊõ^ʉ	 EGD<G6B	
 HI:HI	 	 	 >BEA>8>I	
 CDC:	 	 	
 86AA	 HJ7G	 	 	 86AA	 HJ7G	 	 	 86AA	 HJ7G	 :C9	
 EGD<G6B	
 HI:HI	 HJ7GDJI>C:	 HJ7G	 	 	 >BEA>8>I	
 CDC:	 	 	 >CI:<:G	
 	
 C	
 
	
 	
 EG>CI	
  C	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ¦ÔÏkq| C ōĜk	
 
	
 	
 C	
 	
 C	
 	
 	
 
:C9	
 HJ7GDJI>C:	 HJ7G	 y\]ÃÑ¥ÍÈxʉÉÒÃÑ¥ÍÈx¨ÂÏÔ³Ò HJ7G aʏŀ¦ÔÏhw\kaʉ¨ÂÏÔ³ÒÝ~ EG>CI Ɯ~ďěʉʍŀǱa ʉʎŀǱa ʉʏŀǱa ʉy{kʊŚȼƜ|_eêćʉÃÑ¥ÍÈɬŒƥ~Ēƪþryȣ^wØh\ʊ	
 hwʉ×Ⱦ~¨ÂÏÔ³Ò~ğóȣ^ybʉÕuǐƀi{e{{\fya[kʊ
1ƭȁxʉƊŲhqŚȼƜ~fySƊŲŚȼƜTyĻxʉơƯ~ņƌŘre~ŚȼƜyĢēikʊ

Fortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —— 31 —

ęŀ~¨ÂÏÔ³Ò~ȋxʉÑÔ¡ÏŎƚĳÏÔ³Ò~·Ô±ɿň|ƆŢiw\y\]ɈƢiiqaʉ]şiɄidȼ]yʉ¨ÂÏÔ³Ò~·Ô±ɿň|ʎȀʃ[kʊÕuʉ¨ÂÏÔ³Òa¦ÔÏhqƥǙxÕƥǰ|ǦƄhÉÊÎɿňxʉ]Õuʉ¨ÂÏÔ³
Ò~Ļďi|ɮø{dŨ|ǺúhqÉÊÎɿňxkʊƭȁxʉęȤSÕƥÉÊÎɿňTyĻʉŵȤSŃŘÉÊÎɿňTyĻfy|ikʊơƯ~ŚȼƜxŚȼiqÑÔ¡ÏŎƚʉÕƥÉÊÎɿň|ƆŢikʊÕƥÉÊÎɿňʉ¨ÂÏÔ³ÒĻďkq|ŋƆČśaŎİȥža[~xʉĵj¨ÂÏÔ³Òʎŀ¦ÔÏiqŋĴʉʍŀǱ~¦ÔÏxÑÔ
¡ÏŎƚ|êćiqþaʉʎŀǱ|¦ÔÏiqƥǙxo~ǆtw\yɱmʊ	
 
õ^ʉ	
 
EGD<G6B	
 HI:HI	 	 	 >BEA>8>I	
 CDC:	 	 	
 86AA	 HJ7G	 	 	 86AA	 HJ7G	 :C9	
 EGD<G6B	
 HI:HI	 HJ7GDJI>C:	 HJ7GC	 	 	 >BEA>8>I	
 CDC:	 	 	 >CI:<:G	
 C	
 
	
 	
 G:6A	
 M N	
 
	
 	
 >;	
 C	
 	
 	
 EG>CI	  M N	
 	
 	
 	
 	
 	
 	
  	
  	
 f~ďěþÙŘ	
 
	
 	
 M	
 	
 
	
 
	
 	
 N	
 	
 
	
 
:C9	
 HJ7GDJI>C:	 HJ7G	 ~]{ÃÑ¥ÍÈƧ\qyikʊʍŀǱ~¦ÔÏƜʉ86AA	
 HJ7GxʉÑÔ¡ÏŎƚ M
y N |ʉop yy\]þaêćhkaʉʎŀǱ~¦ÔÏƜʉ86AA	
 HJ7G
řȯiqyb|ʉEG>CI Ɯxďěiq M y N a y|{úɁ{\~xkʊÑÔ¡ÏŎƚ|êćiqþúɁk|ʉŃŘÉÊÎɿň|ƆŢhm{e{mʊƊŲŚȼƜôtwĒƪþêćiqÑÔ¡ÏŎƚʉÕƥÉÊÎɿňx{dʉŃŘÉÊÎɿň|ƆŢikʊƨĒ~¨ÂÏÔ³ÒõʉHJ7G ~Ŏƚ C aʉ¦ÔÏkgy|ʍluōĜiqþďěk~ʉĒƪþ  êćiwŚȼkfyxŃŘÉÊÎɿň|ƆŢhmqqxkʊ	 ƚþêćml|ʉÑÔ¡ÏŎƚŃŘÉÊÎɿň|ƆŢhm|ʉŎƚ| H6K: ŢžƌŘikʊõ^ʉ×Ⱦ~¨ÂÏÔ³Ò HJ7G ëØ~]|ƧbƓ^ʉʎŀǱ~¦ÔÏx yaďěhkʊ	 HJ7GDJI>C:	 HJ7GC	 	 	 >BEA>8>I	
 CDC:	 	 	 >CI:<:G	
 C	
 
	
 	
 G:6A 	 H6K:	
 	
 M N	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 H6K: ŢžƌŘ	
 
	
 	
 >;	
 C	
 	
 	
 EG>CI	  M N	
 
	
 	
 M	
 	
 
	
 
	
 	
 N	
 	
 
	
 
:C9	
 HJ7GDJI>C:	 HJ7G	 Ŏƚ~ĒƪþaƫŘ~ybʉÑÔ¡ÏɧđŃŘÉÊÎɿň|ƆŢhmq\ybʉH6K: ŢžôtwØh\ʊqʉĒƪþêćkŋĴxʉŃŘÉÊÎɿň|ƆŢhmfyȂƹǰ|Ĕǧk~x[ʉǃ~]| H6K: ŢžéĜiwʉŃŘÉÊÎɿň|[fyƢǻiqƞaȩ\yŽ\kʊ	
 2f|ŜiʉÉÒÃÑ¥ÍÈ~ŎƚyÊ«ËÔÏČ~¥ÑÔ½ÏŎƚʉŚȼƜ~Ⱦɚ|``lʉĈwŃŘÉÊÎɿň|ƆŢikʊ3 ¦Ò¾Í|twʉĈw~ÑÔ¡ÏŎƚŃŘÉÊÎɿň|ƆŢhm~a[ʉf~ÃÑ¥ÍÈx]d\dŋĴa[kʊi`iʉƜǏǰ|úɁhw\{\~xk`ʉųw|k bx[mʊ

— 32 —

SENAC Vol. 46, No. 1（2013. 1）>CI:<:G 	
 H6K:	 	 C	 o~è~÷Ĕ{Ţž\du`Ȕæikʊlʉĵņ~ɧđŐƚŚȼkyb~q|ʉ
9>B:CH>DC Ţžaǧƀhw\kʊõ^ʉ Q ~ʎǃĄřƚņɧđ  üǧƀkybʉɞŨ~Śȼxʉ	
 
G:6A	
 6

  	
 7

  	
 8

  	
 9

  	
 :

 	
 

yƧbkaʉ9>B:CH>DC Ţžô^ʉfǃ~]|Ƨdfyaxbkʊ	
 G:6A 	
 9>B:CH>DC

 	
 	
 6 	
 7 	
 8 	
 9 	
 :	
 

k{sʉ9>B:CH>DC Ţž|ɧđ~ŴǠʅǃĄȴȒƚʆƧ\w_eʉŚȼkŎƚ~ðȡ|ʉɧđĶȾɚkre|{kʊŢžȳƚéĜkfyaxb~xʉ9>B:CH>DC Ţ
ž| H6K: ŢžĜ^wŚȼkfyİȥxkʊ	 ]ÕuʉɧđŚȼkyb|÷Ĕ{~aʉE6G6B:I:G ŢžƌŘiqŎƚʉE6G6B:I:G Ŏƚ
xkʊE6G6B:I:G Ŏƚ|Źlþêći{e{mʊõ^ʉ	 >CI:<:G 	
 E6G6B:I:G	 	
 >B6M

	
 ?B6M

	 ~]|Ƨdyʉ>B6M y ?B6M a E6G6B:I:G Ŏƚ|{kʊ	 hwʉɧđŚȼkybʉo~ȴȒƚƛƚŘƚxƌŘi{e{mʊf~qʉɧđ~ɪhŎƦkyb|ʉŚȼiqȴȒƚ|ɮɡiqƚþĈwŎƦkŹȴa[ʉƇɭa``rex{dʉȵȮyiqʉƧbɭɤ^İȥža[kʊõ^ʉ	
 G:6A	
 6  7 	
 	
 	
 	
 	
 	
 
>CI:<:G	
 >	
 
9D	
 >	
 	
  	
  	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 
	
 	
 6>	
 	
 >>	
 
	
 	
 7>	 	
 6>	 
:C99D	
 

aʎ¡Ɔ	
 
aʍ¡Ɔ	
 

y\]ÃÑ¥ÍÈ|_\wʉɧđȴȒƚ~  ʉŚȼƜrex{dʉ9D Ɯ~ȕàþ|ćtw\kʊf~qʉɧđȴȒƚŎƦkybʏ¡ƆŎƦi{e{mʊf~ybʉɧđŚȼ~ȴȒƚ E6G6B:I:G Ŏƚ|êćkŴxǧƀiw_dyʉɧđȴȒƚo~ E6G6B:I:GŎƚxȡb`^fyaxbkʊõ^ʉ×~ÃÑ¥ÍÈǃ~]|ƧbƓ^fyaxb
kʊ	
 >CI:<:G 	
 E6G6B:I:G	 	
 >B6M
G:6A	
 6>B6M 7>B6M	
 
>CI:<:G	
 >	
 
9D	
 >	
 	
  	
 >B6M	 	 	
 6>	
 	
 >>	
 
	
 	
 7>	 	
 6>	 
:C99D	 	
 f~ÃÑ¥ÍÈ{ʉ>B6M |êćkƚþŎƦkrexʉɧđȴȒƚ~ŎƦŗàxkʊ	 E6G6B:I:G ŎƚĸrȽȊůē~ E6G6B:I:G Ŏƚ~êćþ|iqʉɧđŚȼ~ȴȒƚ|ô]fyxbkʊfʉo~ȽȊů~ȗƳxŚȼiqfy|ǳųikʊõ^ʉ	 >CI:<:G 	
 E6G6B:I:G	 	
 >B6M
	
 >B6M>B6M	
 G:6A	
 6>B6M  7>B6M 8>B6M	 y\]ŚȼʉëØ~ŚȼƜyĵȉxkʊ	 >CI:<:G 	
 E6G6B:I:G	 	
 >B6M
G:6A	
 6 7  8	 	
 >B6M	 qriʉè~ E6G6B:I:G Ŏƚ|êćkybʉêćhŎƚʅf~õx >B6Mʆaʉêć

— 33 —

Fortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —kȽȊů|ô]Ŏƚʅf~õx >B6MʆŵxŚȼh{e{mʊ	 řʉE6G6B:I:G ŢžƌŘiqŎƚʉSŎƚʓƚþT~ŴůxŎƚĶyƚþ~ŜŻɮøǻ
iw\rexʉÉÊÎyiw~řñ[mʊf~ŜŻɮøôtqSŎƚT`SƚþT
~ȡbƓ^ʉ¦Ò¾Ï~Ǉɴxȯ~xʉɻřȯƜx[ŚȼƜxô^~xkʊ
ɜ|ȼ^ʉE6G6B:I:G Ŏƚ|řȯƜôtwêćkfyxbmʊõ^ʉ	 >CI:<:G 	
 E6G6B:I:G	 	
 >B6M 	 G:6A	
 6>B6M 7>B6M	
 
>B6M	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 fÍÔ	 yƧ\qŋĴʉ
S>B6MTʉ¦Ò¾ÏÍÔxkʊfʉÃÑ¥ÍÈ|S TyƧ\qfy|ȉi\~xk`ųǛryȼ^kʊ	 ¦Ò¾Ïƥ|ƚþ~ȡbƓ^k~xk`ʉêćy\]řȯğóaÙȴ|{ʉşixkaȽȊƥɭ~ǸȞ|{kʊqʉĵƥ|ÉÊÎ~ȋȐ|{kʊofxʉȽȊxô]Řƚ E6G6B:I:G Ŏƚ|iw_dy÷Ĕxkʊõ^ʉ	
 G:6A 	
 E6G6B:I:G	 	 9
	 E>  	 E>E>	 G:6A 	
 E6G6B:I:G	 	
 8A><=I : 	
 =EA6C8@  : 	 ~]|ʉƚŖŘƚǞǤŘƚ E6G6B:I:G Ŏƚxǧƀiw_e\\xi]ʊfÊ«
ËÔÏ~Ý|ćw¥ÑÔ½ÏŎƚ|iw_dyʉh|ȩ\yŽ\kʊE6G6B:I:G ŎƚʉÙǧƀ|ƧbƓ^fya{\~xʉf~]{Řƚ~ŘȢ|]twuexkʊ	 	
  _G4A1#lX]U	 ȇʍŀxʉŉƭǰ{ƚþņ|ƛƚņyřƚņa[ʉřƚņ|ħȎŮřƚņyýȎŮřƚ
ņa[y\]Ƀiiqʊ DGIG6C ~·ÁÏ¸řƚņħȎŮxkaʉ¦Ò¾Í~ȦğýȎŮǁȥô^·ÁÏ¸ýȎŮřƚņ|ŎƦxb~xʉƭȁxfxƚþ~ȎŮ|ɮiwǟ|ƀɍi{\ɈƢiwbiqʊi`iʉőɩ~·Ô±½ºÎŴůxúŕk
yb|úŕśɩńȞkq|ȎŮȮykfyaȣ^kiʉ
SʐýȎŮřƚTy\]ýȎŮƩĞƶƚ~Ő\řƚņôtwʉʄȎŮȽȊkfyxbkʊf~fy`ʉȎŮƌŘkƞǏǷtw_dy÷Ĕxkʊ	 Ŏƚ~ȎŮƌŘk|ʉʏȀʃ~ƞǏa[kʊffxʉŉƭǰ{ŚȼƜreȔæikaʉŢžƚþêćĸƊŲŚȼİȥxkʊ	 ņƌŘȎŮƚ	 	 ŎƚʍʉŎƚʎʉ	 ņƌŘȎŮƚ	 	 ŎƚʍʉŎƚʎʉ	 ņƌŘ@>C9ȎŮƚ	 	 ŎƚʍʉŎƚʎʉ	
 ffxʉSȎŮƚT~yf|ʉƚþņ~ 7NI: ƚƛƚxƌŘikʊřƚņ~ŋĴʉħȎŮ{ ʉýȎŮ{ ʉʐýȎŮ{  xkʊõ^ʉħȎŮřƚņŎƚŚȼk|ʉ	
 G:6A	
 MH NH 6H 	
 G:6A	
 MH NH 6H 	
 G:6A@>C9	
 MH NH 9H



	
 

{zyƧbkʊqʉɞŨ~ƛƚņ 7NI: xkaʉƨɘSýȎŮƛƚTy\] 7NI: ~ƛƚņô]fyaxb~xʉfĔǧkyb|ʉ	 >CI:<:G	
 C B @ 	
 >CI:<:G	
 C B @ 	
 >CI:<:G@>C9	
 C B @6



	
 

{zyƧbkʊ	 ʏȀʃ~Ƨů~Ýxzaȩ\`Õƻ|ȼ^mʊÕǬǱ~STôtqƧůʉį\
4qriʉʐýȎŮřƚņʉŹlřȱi{e{{\ȶƵx{\]xʉ¦Ò¾Í|twô^{\ŋĴa[kʊgfortran xʉ½Ô«ÌÒ 4.8 xô^kaʉ4.2 xô^{\]xkʊ— 34 —

SENAC Vol. 46, No. 1（2013. 1）

DGIG6C `ôw\~xʉ¦Ò¾Íaį\ŋĴʉƤ~ÃÑ¥ÍÈȚƉkŋĴ~q|ȸ^w_\qƞaȩ\yŽ\kaʉf`ÃÑ¥ÍÈƧbŒŋĴ|ʉâǬǱ`ʉ
ȎŮƚ~ƀĺƢȾiqÖǬǱ~ƞaȩ\yŽ\kʊfʉǃ~]|ȎŮƚ E6G6B:I:GŎƚôtwƌŘkfyaxbkʊ	
 >CI:<:G 	
 E6G6B:I:G	 	
 @E	
 G:6A@E	
 MF NF 6F 	
 G:6A@>C9@E	
 MF NF 9F



	
 

f|Ŝiʉ
STôtqƧůxʉŹlŘƚxƌŘi{e{mʊE6G6B:I:G ŎƚxȎŮƌŘiw_eʉȽȊǁǥŌ|ŻjwȎŮŎƦkŹȴa[yb|÷Ĕxkʊ	 qriʉʄȎŮ~ȽȊkŋĴʉŘƚʄȎŮ|i{e{mʊõ^ʉ
S TyƧeʉ·ÁÏ¸~řƚņ|{~xʉƭȁxýȎŮřƚxkʊtwʉf~ʐýȎ
Ů~ȽȊ|ô]yȎŮaȮswi\kʊQ  xȰhřƚʐýȎŮxȰǣkyb
S TS F TyƧ`{e{mʊ	
 SFTyƧbkʊf~qʉi`iʉE6G6B:I:G ŎƚxȎŮƌŘiw\yb|ʉ:  F ~]{ƜŔxȎŮƌŘiw\
yʉȎŮŎƦkɵ|ʉŘƚ~ŎƦaēɝŹȴxkʊofxʉƚþ~ŵ|Ò²Ô¬¦S5T
yȎŮƚéewŘƚ~ȎŮƌŘkfyaxbkʊõ^ʉýȎŮ~S TS 5TyƧeʉʐýȎŮ~S F Tʉ
S 5TyƧdfyaxbkʊf~ȎŮƌŘ| E6G6B:I:GŎƚô]fyaxb~xʉǃ~]|Ƨdfyaxbkʊ	
 >CI:<:G 	
 E6G6B:I:G	 	
 @E	
 G:6A@E	
 MM NN	 MM	 	  5@E	 NN	 	  : 5@EMM	 f~õ~ NN |êćiw\řƚ~ƌƚƌŘ : ôtw\kaʉȎŮƚa  {~xʉʐýȎ
ŮŘƚ|{kʊ	 	   
`	 E6G6B:I:G Ŏƚô^ʉɧđ~ȴȒƚrex{dƚþņ~ȎŮxƌŘkfyaxbkaʉoxÏÔ³Ògy|Śȼiw\yʉŎƦaŹȴ|{tqyb|ʉôǧiw\Ĉw~ÏÔ³Òx E6G6B:I:G Ŏƚ~þŎƦi{e{mʊofxʉ	 BD9JA:	
 <AD76A5E6G6B	
 	 	 >CI:<:G 	
 E6G6B:I:G	 	
 >B6M
:C9	
 BD9JA:	
 <AD76A5E6G6B	
 	
 ?B6M

	 ~]|ʉE6G6B:I:G ŎƚreȾɚiqÊ«ËÔÏǧƀiwʉĊƩkÏÔ³Òx JH: Śȼk~aȩ\yŽ\kʊJH: ŚȼÊ«ËÔÏ~Ýxô]fyaxb~xʉëØ~]|Ⱦɚkfyaİȥxkʊ	 BD9JA:	
 <AD76A5E6G6B	
 	 	 >CI:<:G 	
 E6G6B:I:G	 	
 >B6M
	
 ?B6M 	
 :C9	
 BD9JA:	
 <AD76A5E6G6B	
 BD9JA:	
 BD956GG6N	
 
	
 	
 JH:	
 <AD76A5E6G6B	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Ê«ËÔÏČx JH: Śȼİȥ	 	 	 G:6A	
 678>B6M ?B6M 89?B6M 	
 :C9	
 BD9JA:	
 BD956GG6N	
 EGD<G6B	
 BI:HI	
 
	
 	
 JH:	
 BD956GG6N	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 JH:	
 <AD76A5E6G6B Ùȴ	 	 	 >BEA>8>I	
 CDC:	 	 	 >CI:<:G	
 @B>B6M	 5s{|ʉ·ÁÏ¸řƚaħȎŮ~ƥʉýȎŮřŘƚS9 TyƧbkʊõ^ʉS TS 9 Txkʊ

— 35 —

Fortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —ffxʉ[Ê«ËÔÏ~Ýxē~Ê«ËÔÏ JH: ŚȼiqŋĴʉęȤ~Ê«ËÔÏ JH: ŚȼiqÏÔ³ÒxʉŵȤ~Ê«ËÔÏĴmw JH: Śȼiqfy|{kʊ×Ⱦ~ÉÒÃÑ¥ÍÈ BI:HI xÊ«ËÔÏ BD956GG6N i` JH: Śȼiw\maʉBD956GG6N	
 ~Ýx
JH: Śȼiw\Ê«ËÔÏ <AD76A5E6G6B ĵƥ|Śȼiqfy|{ʉo~Ý|[Ŏƚ>B6M ÉÒÃÑ¥ÍÈxĔǧİȥ|{kʊqriʉǃ~]|ʉÉÒÃÑ¥ÍÈ|	 <AD76A5E6G6B ~ JH: ŚȼĜ^wʉo~ôǧƢǻkfyxbkʊ	
 EGD<G6B	
 BI:HI	
 
	
 	
 JH:	
 <AD76A5E6G6B	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Ƨ\wÍÔx{\	
 
	
 	
 JH:	
 BD956GG6N	 	 	 >BEA>8>I	
 CDC:	 	 	 >CI:<:G	
 @B>B6M	 	 fʉĵjÊ«ËÔÏ~ JH: ŚȼɨȳiwƧ\wÍÔ|{{\`xkʊ	 hwʉÃÑ¥ÍÈaŗƄiwʉŵľʂ|Żjw E6G6B:I:G ŎƚŎƦkre|{yʉ
E6G6B:I:G Ŏƚ~ŎƦ~qre|ÃÑ¥ÍÈƭñŎƦk~ǜi\iʉŎƦkyb|ɇtwƭñƧbƓ^wi]Î¬¤[kʊÃÑ¥ÍÈŎƦkyʉÃÑ¥ÍÈÁ
Ï~ƟéaŎƦh~xʉ\u~ƥǙxŗƄiqÃÑ¥ÍÈ``{d{kʊfʉǟ|èä|ÃÑ¥ÍÈƒökyb|ľʂy{kʊ	 ofxʉE6G6B:I:G Ŏƚ~ɦĐreÃÑ¥ÍÈƭñ`ĐɸiwúŕiʉŹȴ|ŻjwȗĴky÷ĔxkʊȗĴkÕu~ƇǇ| >C8AJ9: Ɯ~Ĕǧa[kʊ>C8AJ9: ƜyʉëØ~]| >C8AJ9: ~ŵ|ʉÁÏĶƜŔđxȾɚiqƜxkʊ	 >C8AJ9:	 ÁÏĶ	 >C8AJ9: ƜƧdyʉ¦Ò¾Ío~ðȡ|SÁÏĶTxƌŘiqÁÏ~ČśƎćiqÃÑ¥ÍÈǦƄiwʉo¦Ò¾Ïikʊõ^ʉ×Ⱦ~Ê«ËÔÏ <AD76A5E6G6B
S<AD76A >C8Ty\]ÁÏ|Ƨbɗxúŕiw_eʉǃ~]|Ⱦɚkfyaxb
kʊ	
 >C8AJ9:	
 <AD76A >C8	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ff| <AD76A5E6G6B aƎćh	 BD9JA:	
 BD956GG6N	
 
	
 	
 JH:	
 <AD76A5E6G6B	
 	 	 G:6A	
 678>B6M ?B6M 89?B6M 	
 :C9	
 BD9JA:	
 BD956GG6N	
 EGD<G6B	
 BI:HI	
 
	
 	
 JH:	
 BD956GG6N	 	 	 >BEA>8>I	
 CDC:	 	 	 >CI:<:G	
 @B>B6M	
 
	
 	
 
	
 
>C8AJ9: ƜaƌŘkÁÏ~Čśʉo >C8AJ9: Ɯ~ðȡ|Ǝćiqyb|ʉÃÑ¥ÍÈĈñaǄidğók\\~xʉÊ«ËÔÏ¨ÂÏÔ³Ò~]{ŗȗiqÃÑ¥ÍÈx[Źȴ[mʊqʉĵjÁÏÕu~ÃÑ¥ÍÈ~ȳƚ~ŋƆx >C8AJ9: ƌŘkfyxbkʊõ^ʉ	 	 	 >CI:<:G 	
 E6G6B:I:G	 	
 >B6M

	
 ?B6M	 reÁÏ|Ƨ\wʉ¨ÂÏÔ³Ògy| >C8AJ9: ƌŘkfyİȥxkʊ	 	  `TJ#dg	 fx EG>CI Ɯ LG>I: Ɯ|Ǝćiwʉƚþ~ƀĺ{zȰǻk~|ôtwbqƜŔđx
kaʉf~è|ƽW{ǧɝa[kʊqʉŃŘiqƜŔ~Ürex{dʉƜŔđŎƚ
ôtwʉƮí|Żjwo~ČśŎƦiqʉƜŔđyƜŔđɡȗiqʉÕɦĭďi

— 36 —

SENAC Vol. 46, No. 1（2013. 1）

qƜŔđóƄk{z~SƜŔđǗȊTkfyxbkʊƭȋxƜŔđȂƹǰ|ǑǧkƇǏȔæikʊ	 	  `TJU_ `TJR_	 DGIG6C |_eƜŔđyʎü~XYqXYxŁrƜŔ~Ü~fyxkʊõ^ʉ	 678	
  ,6<J8=>␣, 	   04	 	  ǘŔƧek	 XYyXYĵȉ{~ȉaƜŔđxkʊƜŔđ|¬ÅÔ¬ȾĲćfyxbkʊ
xʉzsô]`Ȧǩxkʊõ^ʉɞŨXYxŁ\ʉƜŔđ~Ý|XYô\q\ybʉX,:68=:GHY~]|ĈñXYxŁʉy\]]|Ǎw_eȩ\xi]ʊ	 ¦ÒÀËÔ±~SƜŔTƜŔ¦Ô¹y\]ƛƚþyŜŻiw\wʉƜŔđƜŔ¦Ô¹Ȱ
kƛƚ~ɧđxřǣhw\kʊf~qʉƛƚŘƚ~  yƜŔđ~	 	 Ĉdǭ{~xkʊƜŔ¦Ô¹ĤȺȭƚŔ{ʍƜŔ[q 7NI: ~ƛƚʉĈȺ~ǘŔa{{ʍƜŔ[q 7NI: ~ƛƚxkʊĤȺȭƚŔ~¦Ô¹ʉǣŅyzĈw~¦ÒÀËÔ±x +## ¦
Ô¹aôw\kʊf~qʉĤȺȭƚŔrexÃÑ¥ÍÈƧeǾƸž~ľʂ[mʊi`iʉĈȺƜŔ (+ ĔǧǥŌ|twƜŔ¦Ô¹aɤ]İȥža[~xʉÃÑ¥Í
ÈÝ|ƟƭɆȾɚkyʉē~¦ÒÀËÔ±|Ǿiqyb|ƜŔġekfya[kʊ
DGIG6C |_\wƟƭɆaô^~¦ÉÒ¸Ɯy¶¢¬¸Ȱǻd\{~xʉozɨȴx[mʊëØʉƜŔđÝ~SƜŔT 7NI: ~ +## ¦Ô¹x[yìŘiwɈƢikʊ	 XYqXYxŁrƜŔđʉSƜŔđŘƚTxkaʉƜŔđêćiwúŕkƜŔđ~ŎƚófyxbkʊƜŔđŎƚó| 8=6G68I:G Śȼô\kʊ8=6G68I:G ŚȼʉëØ~]{Ƨůxkʊ	 8=6G68I:G	 ƜŔđŎƚʍƜŔƚʍ ƜŔđŎƚʎƜŔƚʎ

	
 

	
 

ƜŔƚyʉƜŔđŎƚ|êćİȥ{ƨő~ƜŔƚxkʊƌŘxbƨŞ~ƜŔƚ  xkʊqʉƊŲŚȼƜ|iwŢž{zéĜkfyİȥxkʊõ^ʉ	
 8=6G68I:G	
 8

8

88 8=G 

8=H



 	
 

yŚȼkyʉƜŔđŎƚ 8 |  üxʉ8 |  üx~ƜŔêćkfyaxb
kʊf|Ŝi 88 |ʍƜŔi`ćmʊq 8=G  8=H ~]|ƜŔđ~ɧđŚȼkfyİȥxkʊ8=G   ƜŔxćʍǃĄɧđxʉ
8=H   ƜŔxćʎǃĄɧđxkʊ	 ĵjƜŔƚ~ƜŔđŎƚȳƚüŚȼkybʉëØ~ƧůxŚȼkfyaxbkʊ	
 8=6G68I:GƜŔƚ	 	 ƜŔđŎƚʍʉƜŔđŎƚʎʉ	
 8=6G68I:GƜŔƚ	 	 ƜŔđŎƚʍʉƜŔđŎƚʎʉ	
 8=6G68I:GA:CƜŔƚ	 	 ƜŔđŎƚʍʉƜŔđŎƚʎʉ

	
 

ffxʉ
SƜŔđŎƚT|ʉŎƚĶ`ʉɧđĶyo~ȴȒƚȾɚikʊf~ʏȀʃ~ǳɤǙʉ  ȋ~ȎŮƚ~ƌŘyĵƽxʉƨĒ~SƜŔƚTaơƯ~ƧůʉoëŏaƝi\ƧůxkʊƝi\Ƨů~ŋĴ|ʉE6G6B:I:G ŎƚĔǧiwƜŔƚƌŘkfyaxbkʊ	 ƜŔđŎƚ|ƜŔđêćk|ʉƚþ~êćyĵjxʉ¦ÔÏXYô\kʊõ^ʉ×Ⱦ~  ƜŔ~ƜŔđŎƚ 8 |ƜŔđŘƚêćk|ʉ	
 
8	
 	
 678	 ~]|Ƨbkʊf~ybʉêćhƜŔ	 678	   ƜŔ{~xʉ ƜŔ~Ŏƚ 8 ~Ćʀ
6ƭȋxĤȺ¬ÅÔ¬ȾĲƢȾkyb|S␣Tô\kʊ¾°¦Òxôw\~ Shift JIS ¦Ô¹aŐdʉLinux {z~ UNIX ȏ OS xôw\~ EUC ¦Ô¹aŐ\]xkʊƨɘʉ¦Ô¹ñȏȘÕġiq Unicode ô] OS aō^wbiqʊ
8 ƜǏǰ|S*ƜŔƚTǴǫiwŎƚĶrexŚȼkyʉƜŔƚaʍ~ƜŔđ|{kʊi`iʉÃÑ¥ÍÈa`|dd{~xʉŨ|S*1TéĜiwƜŔƚʍɳ|ƌŘiqƞaȩ\xi]ʊ
7Fortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —— 37 —`ɾ|  ƜŔvuêćhʉǆ~ɿňĤȺ¬ÅÔ¬aêćhkʊ¬ÅÔ¬ƜŔxk`ʉ8 ~ƜŔƚʉêćiqƜŔđ~ƜŔƚ|``lʉ ~xkʊł|ƑeʉëØ~]{ÉÔ«xkʊ	
 
	
 
8	
  6	
  7	
  8	
  ␣	
  ␣	
  ␣	
  ␣	
  ␣	
  ␣	
  ␣	
  ␣	
 
	
 
ɜ|ʉêćkƜŔđ~ƜŔƚ~ƞaŐ\ŋĴ|ʉo~ƜŔđ~Ćʀ`ʉêćxbƨőƜŔƚxaêćhʉǆǚȷhkʊƊŲŚȼƜô^ʉǃ~]|[`jƜŔđŘƚêćiqƜŔđŎƚǧƀkfyİȥxkʊ	 8=6G68I:G	 	
 8=G 6789:	 ƜŔđŎƚ|êćhqƜŔđɦĐǰ|ĭďkfyaxbkʊfSɦĐƜŔđTy
\\kʊɦĐƜŔđʉƜŔđŎƚ~Ćʀ`ƚ^wòǬǱ`òǬǱy\]ȌŁXYôtwƌŘikʊõ^ʉ8 y\]ƜŔđŎƚ~ C ǬǱ` C ǬǱ~ƜŔĭďk|ʉ	
 8CC	 yƌŘikʊf~ƜŔđʉC C ƜŔ~ƜŔđyiwƈkʊõ^ʉ86789:;<{ʉ8ʉ89:xkʊC y C ȉidkfyxʍƜŔĭďkfyxbkʊ
õ^ʉ	
 
8	
 	
 6789:;<	
 
9D	
 >	
 	
  	
 	
 
	
  	
 EG>CI	
  8>>	
 :C99D	 ykʉʍƜŔluȝ|ďěhkʊ	 ƜŔđɧđ~ɦĐƜŔđĭďkŋĴ|ʉȴȒƌŘĆ|ʉɦĐƜŔđƌŘŵ|Ƨbkʊõ^ʉʍǃĄ~ƜŔđɧđ 8=G |Ŝiʉ@ ǬǱ~ȴȒ~ɦĐƜŔđʉ	
 8=G@CC	 ~]|ƌŘikʊ`tfaɡțk~xʉɾǬ|ǋéewØh\ʊ	
 ƜŔđɡȗkfyxbkʊƜŔđ~ɡȗ|ǗȊœX Yǧ\kʊõ^ʉ	
 
8	
 	
 678

MNO	 yƧdyʉ8 |678MNOy\]ƜŔđaêćhkʊƜŔđ~ɡȗʉƜŔđŘƚyƜŔđ
ŎƚʉƜŔđŎƚyƜŔđŎƚy\]ȖĴmxİȥxkʊqriʉƜŔđŎƚ|êćhqƜŔđɡȗkyb|ǐƀaŹȴxkʊõ^ʉ	
 8=6G68I:G	
 8 8 	
 
8	
 	
 678	 8	 	
 8 MNO	 yƧ\qŋĴʉ8 |678MNOy\]ƜŔđaêćhyŽtqɭɤ\xkʊǄid	 678␣␣␣␣␣␣␣MNO	 aêćhkʊfʉ×Ⱦ~]|  ƜŔ~ƜŔŎƚ 8 |  ƜŔ~	 678êćiwʉ
8 ~ƜŔƚŎ{\`xkʊƬŠ~Ùȴ{¬ÅÔ¬Ęɲk|ʉɦĐƜŔđô]Ź
ȴa[kʊ	
 8=6G68I:G	
 8 8 	
 
8	
 	
 678	 8	 	 8 MNO	
 f~ÃÑ¥ÍÈ{ʉ8 |678MNOaêćhkʊ	
 i`iʉf~ƞǏŎƚ|êćhw\ƜŔƚaÙƢ~yb|ô^mʊofxʉɮƚ— 38 —

SENAC Vol. 46, No. 1（2013. 1）

IG>B aǧƀhw\kʊIG>B ƬŠ~¬ÅÔ¬ɲĪiqƜŔđəkȖɗɮƚxkʊõ^ʉ×Ⱦ~õʉ	
 8=6G68I:G	
 8 8 	
 
8	
 	
 678	 8	 	 IG>B8 MNO	 yƧdfyaxbkʊf~ȗƳ 8 |678MNOaêćhkʊ	 ƜŔđ¨ÂÏÔ³Ò~Űƚ|kybʉ
XYƌŘiwŚȼikʊõ^ʉ	 HJ7GDJI>C:	 HJ7G8=G	 	 	 >BEA>8>I	
 CDC:	 	 	
 8=6G68I:G	
 8=G	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ƜŔƚÙȴ	 ~ 8=G ~]|Śȼikʊ DGIG6C ~ƜŔđ|ʉƜŔ¦Ô¹~Ürex{dʉƜŔƚ~ſŊĸw\kʊf~qʉƌŘ~]|ƜŔƚaƢȾhw\{dwʉ¦ÔÏĀxƌŘiqƜŔƚ~ƜŔđyiwôǧkfyaxbkʊõ^ʉ	 EGD<G6B	
 8I:HI	 	 	 >BEA>8>I	
 CDC:	 	 	
 86AA	 HJ7G6789:	 :C9	 EGD<G6B	
 8I:HI	 HJ7GDJI>C:	 HJ7G8=G	 	 	 >BEA>8>I	
 CDC:	 	 	
 8=6G68I:G	
 8=G	
 
	
 	
 EG>CI	  8=G A:C8=G	
 	
 	
 	
 	
 	
 ƜŔđ	
 678:9yƜŔƚ  aďěh	
 :C9	
 HJ7GDJI>C:	 HJ7G	 ~]{ÃÑ¥ÍÈ|_\wʉ¨ÂÏÔ³Ò HJ7G ~ EG>CI Ɯ~ďěʉƜŔđ	 6789:’yƜŔƚ  |{kʊffxʉɮƚ A:C ʉƜŔđ~ƜŔƚĭŶkɮƚxkʊƜŔđ|ɮkȖɗɮƚʉ  ȋxɈƢikʊ	 ƜŔđ|őŞɮøa[ʉfĔǧiw >; ƜxƮíĐŤkfyxbkʊʎü~ƜŔđǈɔkybʉëØ~Ƈɾxȯ\kʊ	 	 ƜŔƚ~ɪhaǭ{ybʉǸ\ƞ~ƜŔđ~ƬŠ|¬ÅÔ¬ɛĜiwƜŔƚȉ
idk	
 
	
 ʎü~ƜŔđĆʀ`ʍƜŔvuǈɔiw\twʉĈwĵj{ʉSȉi\ʅʆT	 	 ǭ{ƜŔa[ʉƨĒ|ǭ{ƜŔ~ +## ¦Ô¹ǈɔiwʉ¦Ô¹þ~őŞa
ƜŔđ~SőʅʆTqSŞʅʆT	
 +## ¦Ô¹ʉ
S¬ÅÔ¬TʒSƚŔTʒSȭőƜŔTʒSȭŞƜŔT~ɾxőbd{ʉüW~ƜŔ|ǃ~]{őŞɮøa[kʊ	
 	
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 ␣	  	
 

	
 	
 	
 	
 

	
 1	
 	
 6	
 7

	
 O	
 

õ^ʉƜŔđ~ǈɔôtwǃ~]{ÃÑ¥ÍÈƧdfyaxbkʊ	
 8=6G68I:G	
 8 8 	
 
8	
 	
 6789:	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ʏǬǱa	
 8	
 
8	
 	
 6798:	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ʏǬǱa	
 9	
 
>;	
 8	
 	
 8	
 	
 EG>CI	  8	
 	
 8	
 
>;	
 8	
 	
 8	
 EG>CI	  8	
 	
 8	
 
>;	
 8	
 	
 8	
 	
 EG>CI	  8	 	 8	
 f~ȗƳʉ8	 	
 8xkʊ{n{ʉʏǬǱ~ƜŔaĒwǭ{ʉ8 	 8ʉ8 	 9	 xkaʉ8	 9r`xkʊ{_ʉ8   ƜŔʉ8   ƜŔxkaʉŵ|¬ÅÔ¬Ȳ]~xʉf~õ~ȗƳ|ǚɮøxkʊ	 — 39 —

Fortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —	  HM"'`TJ#Kg	 ƨdƜŔđô]ŋɼʉEG>CI Ɯ LG>I: Ɯ~Ý|ćwȰǻ~Ȳĝ|ô]fyxi]ʊõ^ʉ	
 G:6A	
 HE9 EG:H	
 
HE9	
 	
 
	
 
EG:H	
 	
 
	
 
EG>CI	  	 />C9	
 +E::9	 	  HE9 	 	 )G:HHJG:	 	  EG:H	 yƧeʉďěa	 />C9	
 +E::9	
 	
 	
 	
 	
 

	
 	
 	
 	
 	
 	
 	
 	
 )G:HHJG:	
 	
 	
 	
 	
 

	
 

~]|{twʉz~ƚþaz~Ŏƚ~þ{~`aÕǱx`kʊ	
 ffxʉƜŔđo~ɪh|Ĵmwďěhw\kʊfʉEG>CI ƜaƜŔđ|ćtw\ƜŔƚ~ſŊ|Ĵmwďěk`xkʊf~ǁȥʉ;DGB6I ôtwƜŔđ~ďěƌŘkyb|ô]fyaxbkʊƜŔđ~ďěƌŘ|ʉ Ȝɶǧ\kaʉ Ȝɶʉ
X6Y
reƧdyʉƜŔđ~ƜŔƚaďěũ|{kʊõ^×Ⱦ~ EG>CI Ɯʉ	 EG>CI	 	
 />C9	
 +E::9	 	  HE9 	
 B H	
 EG>CI	 	 )G:HHJG:	 	  EG:H 	 =)6	  	 ;DGB6I6 ;  6	 yƧeʉǃ~]{ƜŔũ|ĴmqďěȗƳaŶkʊ	
 />C9	
 +E::9	
 	
 	
 	
 	
 
)G:HHJG:	
 	
 	
 	
 

	
 B H	
 
	
 =)6	
 

ęŀ~ ;DGB6I ~ɈƢxȔæiiqaʉďěŴůƌŘ EG>CI Ɯ LG>I: Ɯ~Ý|ŇɗƧůʉƜŔđ~ĔǧƞǏ~Õuxkʊõ^ʉ	 EG>CI	 M	 LG>I:  	
 M	
 
 	
 ;DGB6I	
 M :H 	
 y\]ÃÑ¥ÍÈǃ~]|ƧbƓ^fyaxbkʊ	 EG>CI	 	
 M :H  M	
 LG>I: 	
 M :H 	 M	 k{sʉ;DGB6I Ɯ~`tfëØʉÛȆ~`tfĸwƜŔđ|iw EG>CI Ɯ LG>I: Ɯ~ƧůƌŘ~ðȡ|Ƨbɗkʊf~ybʉƜŔđŎƚô^ʉȳƚ~ŋƆxĵj ;DGB6I ô]yb|÷ĔriʉďěČś|Żjwʉřȯƥ| ;DGB6I ŎƦkfyİȥxkʊõ^ʉ	
 
G:6A	
 M	
 
8=6G68I:G	 ;DGB 	 >;	
 67HM	 	  :	
 I=:C	 	 	 	
 ;DGB	 	
 M :H 	 
	
 :AH:	 	 	 	
 ;DGB	 	
 M ; 	 :C9>;	
 EG>CI	
 ;DGB M	 h{d ;  Ȝɶxďěhkʊ
	
 
ykʉ
M ~șŜþa   ë×~yb| :H  ȜɶxʉqʉɦĐƜŔđĔǧiwŎƦkfyȣ^kʊõ^ʉ	
 
G:6A	
 M	
 
8=6G68I:G	 ;DGB 	
 
;DGB	
 	
 M ; 	
 
>;	
 M	
 	
 
	
 ;DGB 	
 	
 	
 	
 
EG>CI	
 ;DGB M	  `   |ŎƦ	 — 40 —

SENAC Vol. 46, No. 1（2013. 1）~]|ƧeʉM a ë×~yb ;  Ȝɶxʉh{d ; Ȝɶxďěhkʊ	 	
  _G@`TJR^	 ffx LG>I: Ɯ G:69 Ɯ~ƧůƌŘ~ðȡ|ƜŔđôǧiw\iqaʉȱȡǬĲ~ðȡ|ƜŔđȾɚkfyxbkʊfSƜŔđT`SƚþT~ŎƓʉqo~ɜŎƓȯ]yb|ôǧikʊ×Ⱦ~]|  y\]ƚþyy\]ƜŔđȽȊǁČɦ~
Ȱǣaǭ{kaʉĎǤ~ɣǿx  y\]ƚþ`o|ǳųkƜŔótqʉɜ|y\]ƜŔđƚþyiwȽȊ|Ĕǧiq\ŋĴa[kʊooʉƧů[ G:69 ƜÁÏ{z`SƜŔxȰǣhqƚþTćěiwSȽȊǁČɦ~ƚþT|ŎƓkğóx[ʉƧů[ LG>I: ƜSȽȊǁČɦ~ƚþTSƜŔxȰǣhqƚþT|ŎƓiwďěkğóxkʊȱȡǬĲ~ðȡ|ƜŔđĔǧkyʉo~ŎƓǁȥreô]fyaxb~xkʊ	
 SƚþTUSƜŔđTŎƓk| LG>I: Ɯǧ\kʊõ^ʉ	
 
G:6A	
 M	
 
8=6G68I:G	
 8= 	 M	 	  	 LG>I:8= ; 	 M	
 yƧeʉƜŔđŎƚ 8= |	  
y\]ƜŔđaêćhkʊqriʉƜŔđ|ŎƓkybʉďěƜŔƚë×~ɪhƋuƜŔđŎƚǧƀiw_dŹȴa[kʊ	
 DE:C ƜôtwÁÏ ÔÃÒkybʉÁÏĶƜŔđxƌŘkŹȴa[kʊ
f~qʉ;>A:  96I 	
 ;>A:  96I;>A: 96I y\]ɞiǬĲ~é\q  ü~ÁÏaŕŅiwʉopȱȡǬĲ Z yiw ÔÃÒkybʉǃ~]|Ƨbkʊ	
 8=6G68I:G	
 C6B: 	 
>CI:<:G	
 B	
 
9D	
 B	
 	
  	
  	
 
	
 	
 	
 LG>I:C6B: ;>A: >   96I	
 B	
 
	
  	
 DE:C > ;>A:C6B:	
 :C99D	
 ffxʉƛƚ B ~ďěȜɶ >  |iw\~ʉ¬ÅÔ¬	  xŇwʉƛƚ~ďě ʉ
ʉ ~]|kqxkʊ	 ɜ|ʉSƜŔTUSƚþTŎƓk| G:69 Ɯǧ\kʊõ^ʉ	
 
G:6A	
 M	
 
8=6G68I:G	
 8= 	 8=	 	  	
 G:698= 	 M	 yƧeʉřƚņŎƚ M | 

y\]SƚþTaêćhkʊ	 	  `TJ"~'n$x$~_	
 ƜŔđ|ɮkȖɗɮƚʉIG>B ~è|ȪW[kʊêȰǰ{~Ȱʍ|ǻikʊ	 ƜŔđɮƚ	 ȰʍʊƜŔđ|ɮkȖɗɮƚ	
 
Űƚ~ņ	
 
ɮƚþ~ņ	 
ɮƚ~ƀĺ	
 IG>B8	
 

ƜŔđ	
 

ƜŔđ	
 

ƬŠ~ȄǯĘɲ	 A:C8	
 

ƜŔđ	
 

ƛƚ	
 

ƜŔđ~ƜŔƚ	
 A:C5IG>B8	
 

ƜŔđ	
 

ƛƚ	
 

ƬŠ~ȄǯĘɲiqƜŔđ~ƜŔƚ	
 69?JHIA8	
 

ƜŔđ	
 

ƜŔđ	
 

ƜŔđŦ|o^qƜŔđ	 69?JHIG8	
 

ƜŔđ	
 

ƜŔđ	
 

ƜŔđı|o^qƜŔđ	 — 41 —

Fortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —Ȱʍʅțbʆ
ʊƜŔđ|ɮkȖɗɮƚ	
 
Űƚ~ņ	
 
ɮƚþ~ņ	 
ɮƚ~ƀĺ	 ƜŔđɮƚ	
 >C9:M8 8E	 ʎü~ƜŔđ

ƛƚ	
 G:E:6I8 C	 ƜŔđyƛƚ	 ƜŔđ	 8=6GC	 ƛƚʍƜŔ~ƜŔđ	 >8=6G8	 ʍƜŔ~ƜŔđƛƚ	 ƜŔđ 8 ÝxƜŔđ 8E aĸw\ʉo~ɬŒðȡəkʊ	 ǚe ək	 ƜŔđ 8  C üɡȗiqƜŔđ	 	 +## ¦Ô¹þÚ^yʉo|ŜŻkĤȺȭƚƜŔək	 ĤȺȭƚƜŔÚ^yʉo|ŜŻ	 k +## ¦Ô¹þək	 	 ôǧõ\du`ǻikʊ  ȋ|ďwbqɮƚ A:C ʉƜŔđ~ƜŔƚĭŶkq~ɮƚxkaʉôǧ~ɵǐƀaŹȴxkʊõ^ʉ	
 8=6G68I:G	
 8 	 >CI:<:G	
 B C	
 
B	
 	
 	
 A:C678	
 	
 	
 	
 B	
 	
 	
 
8	
 	
 678	 C	 	 	 A:C8	
 	
 	
 	
 	
 	
 	
 C	
 	
  	
 
ykyʉB ~þ  xkaʉC ~þ  |{kʊfʉƜŔđŎƚ~ƜŔƚaŚȼƥ~ƜŔƚr`xkʊƬŠ~¬ÅÔ¬ɲĪiqƜŔđ~ɪhĭŶk|ʉɮƚ IG>B ôtw
Ęɲiw`ɮƚ A:C xɊ `ʉɮƚ A:C5IG>B ô\kʊõ^ʉ×~ÃÑ¥ÍÈxʉƨŵ~ C ~êćƜ	
 CA:CIG>B8	
 	
 q	
 	
 CA:C5IG>B8	 xȡbƓ^ʉC |{kʊ	 ƨŵ~ 8=6G y >8=6G ~ôǧõǻikʊf~âu~ɮƚȖĴmʉG:69 Ɯ LG>I:Ɯô{dwʉƜŔyƚþ~ŎƓkfyaxbkʊõ^ʉʎƶ~ƛƚʏƶ~  ɢƚxȰǻkÃÑ¥ÍÈëØ~]|{kʊ	 >CI:<:G	
 O:GD CJB	 8=6G68I:G	
 8 	
 
CJB	
 	
 	
 
8	
 	
 
	
 
O:GD	
 	
 >8=6G 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
  ~ƜŔ¦Ô¹ƛƚþ|ŎƓ	
 8	 	
 8=6GO:GDBD9CJB 	
 	
 	
 	
 	
 	
 	
 	
 CJB ~  ~ð~ƜŔ	
 8	 	
 8=6GO:GDBD9CJB  	
 	
 	
 	
 	
 	
 CJB ~  ~ð~ƜŔ	
 8	 	
 8=6GO:GDBD9CJB  	
 	
 	
 	
 	
 CJB ~  ~ð~ƜŔ	
 EG>CI	
  9:8>B6A CJB 	 	
 D8I6A	  IG>B8 	 	
 +## ¦Ô¹xʉ    ~ɾxþa  luōĜiw\kʊofxʉĆʀ~ ~¦Ô¹þ|ʍƶ~ƚŔĜ^ʉo~ƚŔ~¦Ô¹þaŶkʊĵƽ|ʉőƜŔ~ȭƚŔʉŞƜŔ~ȭƚŔ  luōĜiwÜx\~xʉĆʀ~ƜŔx[6~¦Ô¹
þ|ʉo~ƜŔ~ɾǬ~ŧ~ƚŔĜ^wɜŎƓkʉŜŻkƜŔŶfyaxbkʊ
ƛƚ~  ɢƚȰǻkÃÑ¥ÍÈȣ^ww\`axi]`ʊ	 	
  |JvkY	
 ƜŔđ~ĎǤʉfxɈƢiwbqƚþ~ȽȊyşiǉȪaɤ\kʊƚþȽȊaʍü~ƚþyʍü~ƚþ~ɭ~ǗȊŉƭyiw\~|ŜiʉƜŔđ~ĎǤxʉSƜŔđTy\]ƜŔ¦Ô¹~ɶĴyy|iwĭƈ\ʉƜŔđyƜŔđ~ɡȗƜŔđŎƚ~êćÕu~ůxřȯkfyaxbkʊƜŔđyƜŔ¦Ô¹~ɧđ{~xk`ʉfƚþȽȊǰ|ĎǤk{— 42 —

SENAC Vol. 46, No. 1（2013. 1）

ʉƭƯʍƜŔluĎǤi{e{mʊƜŔđ~ǗȊaİȥ{~ʉ DGIG6C ¦Ò¾Í
aʉSƜŔđTy\]ƚþɶĴ~ĎǤʉČɦxʍƜŔluĎǤkÃÑ¥ÍÈ|ŎƓiwd`xkʊ	
 DGIG6C xʉf~ƻżÕȨ~ɧđ|ƊŲiqSɧđǗȊTaİȥxkʊɧđǗȊyʉƚþ~ɶĴɧđĶxêȰhmʉɧđȴȒyɧđȴȒ~ǗȊʉɧđĶyɧđĶ~ǗȊ~ŴxȾɚk
~xkʊɧđǗȊô^ʉ9D Ɯôl|ɧđôtqȽȊȾɚkfyaxbkʊ
fSɧđȽȊůTyĻkʊɧđȽȊůô]ĔǙʉħ|ÃÑ¥ÍÈaǸd{rex[mʊȽȊaƨɥ|{]|ʉȠəi~ɾŭÉÊÎɧȡ¦Ò¾ÍaǍwd
~xʉŋĴ|twʉ9D ƜôtwƧdʄɟ|ȽȊhmfyaxbkʊ	 	  Qai!|JvkY	 ɧđǗȊʉɧđ~ĈȴȒ|ŜiwʉĈwĵj¾±ÔÒ~ǗȊk~aŉƭxkʊf~qʉʍȯ~ɧđȽȊůxǧ\ɧđʉǃĄyĳǃĄ~ȴȒƚaĈwȉi\ʉSĵņ~ɧđTx{e
{mʊo~Ǚ|ǐƀkʉɧđ~Ĉw~ȴȒ|ĵjŘƚêćkybʉʎü~ɧđ~ŜŻkȴȒɭxĈwĵjĿėǗȊkyb|ʉ[q`ɧđĶaÕu~Ŏƚx[`~]{Ⱦɚkfyaxbkʊõ^ʉǃ~]{Ⱦɚaİȥxkʊ	
 G:6A	
 M   N
M	
 	
  	
 
N	
 	
  	
 
O	
 	
 M	
 	
 N 	   O 	
 f~ÃÑ¥ÍÈřȯkyʉɧđ M ~Ĉw~ȴȒ  |{ʉɧđ N ~Ĉw~ȴȒ  |{ʉɧđ O ~Ĉw~ȴȒ  ʅ   ʆ|{kʊf~ÃÑ¥ÍÈ 9D Ɯôtq
ëØ~ÃÑ¥ÍÈyĵjȗƳ|{kʊ	
 	
 
G:6A	
 M   N   O  	
 >CI:<:G	
 > ?	
 	
 
9D	
 ?	
 	
  	
  	
 
	
 	
 9D	
 >	
 	
  	
  	
 
	
 	
 	
 	
 M> ?	
 	
  	
 
	
 	
 	
 	
 N> ?	
 	
  	
 
	
 	
 	
 	
 O> ?	 	 M> ?	 	 N> ? 	 	 	
 :C99D	
 :C99D	 ɧđȽȊůÝ~ŘƚʉĈȴȒ|ŜiwĊɞ~þyiwȽȊikʊ	 ǃ~]{ʉɮƚôtqɧđȽȊůİȥxkʊ	
 
	
 	
 	
 

G:6A	
 6   7   8  	
 
	
 
6	
 	
 HFGI7H>C8  8	 	  : 	 f~ɧđȽȊů 9D ƜxȰkyʉǃ~]|{kʊ	
 
9D	
 ?	
 	
  	
  	
 
	
 	
 9D	
 >	
 	
  	
  	
 
	
 	
 	
 	
 6> ?	 	
 HFGI7> ?H>C8> ?  8> ?	 	  : 	 	 	
 :C99D	
 :C99D	 ɧđȽȊů|_\wʉůÝ|ĸĈw~ɧđaĵņx{e{{\~xʉǭ{ǃĄȴȒƚ~ɧđaǔjtw\yÍÔ|{kʊqriʉØɱǭ{tw`\mʊ

9qriʉÏÔÃ~ĎǤ¦Ò¾ÍaȦğǰ|ǦƄk~xʉřɵ|f~ɞ~ɾŭxȽȊk`z]``mʊ[dxʉf~ÃÑ¥ÍÈyĵjȗƳ|{y\]ƀĺryȣ^wdrh\ʊFortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —— 43 —

õ^ʉ	
 
	
 	
 	
 

G:6A	
 6  G 
	
 
6	
 	
  G	
 

	
 

~]|ȽȊkfyaxbkʊqriʉf~ɧđȽȊů 9D ƜxȰmʉ	
 
9D	
 ?	
 	
  	
 	
 
	
 	
 9D	
 >	
 	
  	
 	
 
	
 	
 	
 	
 6> ?	 	  G>  ? 	 	 	
 :C99D	
 :C99D	 ~]|ʉŜŻkȴȒ~ðȡal~xǐƀiwØh\ʊ	 f~]|ʉɧđȽȊůô]yÃÑ¥ÍÈaªÒÃÏ|{kʊɜ|ʉħÕŎƚ~ȽȊůyɧđȽȊůy~Ģēa{d{~xʉÛȤaćãjyÃÑ¥ÍÈa`|dd{ʉÍÔaȵue|dd{y\]ǂǙ[kʊ	 {_ʉ¨ÂÏÔ³Ò~ŰƚɧđôtwɧđȽȊkyb|ǐƀaŹȴxkʊõ^ʉ	 HJ7GDJI>C:	 HJ7G6 7	 	 	 >BEA>8>I	
 CDC:	 	 	
 G:6A	
 6 7	
 
	
 	
 6	
 	
 7	
 	
 	
 	
 	
 	
 	
 	
 	
 fÍÔ|{	
 
	
 	
 
	
 
~]{ÃÑ¥ÍÈxʉɧđȽȊůÍÔ|{kʊ{n{ʉSTćwɧđŚȼiqŋĴʉȴȒƚaÙŘr`xkʊf|Ŝiʉ	 HJ7GDJI>C:	 HJ7G6 7 C	 	 	 >BEA>8>I	
 CDC:	 	 	
 G:6A	
 6C 7C	 	 	 >CI:<:G	
 C	
 
	
 	
 6	
 	
 7	
 	
 	
 	
 	
 	
 	
 	
 	
 f~ŋĴ ($	
 
	
 	
 
	
 
~]|ʉƛĴɧđô]yʉɧđȽȊaİȥ|{kʊ	
 	
 

	
  {I|J	 ɧđĶreôtqɧđȽȊůxĈw~ȴȒ|u\wȽȊikaʉŨ|ĈȴȒ~ȽȊaŹȴyɱmʊofxʉɧđ~ÕɦĭďiqɧđʉSɦĐɧđTƌŘkfyaxb
kʊɦĐɧđSʑTʅ¦ÑÒʆôtwȴȒǬĲ~ȌŁƌŘikʊõ^ʉʍǃĄɧđ 6|Ŝiwʉ	
 6CC	 yƧeʉ6CZ6Cy\] C C ü~ȴȒ`ƼƄhqʍǃĄɧđyiwȽȊ|ô]fyaxbkʊqʉʎǃĄɧđ 7 |Ŝiwʉ	 7CC CC	 yƧeʉ7C CZ7C CZ7C CZ7C Cy\]ʅC CʆQC C
~ʎǃĄɧđyiwȽȊ|ô]fyaxbkʊqʉ[ǃĄ~ȴȒǬĲŃŘiwʉ	 7C CC	 yƧeʉ7C CZ7C Cy\] C C ü~ȴȒ`ƼƄhqʍǃĄɧđyiwȽȊ|ô]fyaxbkʊ	 ɧđȽȊůxɦĐɧđô]ybʉo~ɦĐɧđao~è~ɧđyĵņx[ȩ\~xʉŚȼƜx~ǃĄȴȒƚaÕȧiw\Źȴ[mʊõ^ʍǃĄɧđ{ʉ	 — 44 —

SENAC Vol. 46, No. 1（2013. 1）

G:6A	
 6  7	 	
 6	 	
 7	 ~]|ƧdfyaxbkʊqʉʎǃĄɧđ~ɦĐɧđôtwʉ	
 G:6A	
 6   7  8 	 	 6 	 	
 7 	 {zyƧdfyaxbkʊf~ɧđȽȊů 9D ƜxȰmʉ	
 
9D	
 ?	
 	
  	
 	
 
	
 	
 9D	
 >	
 	
  	
 	
 
	
 	
 	
 	
 6> ?	 	
 7>  ? 	 	 	
 :C99D	
 :C99D	
 y{kʊ[ǃĄ~ȴȒǬĲŃŘiqʎǃĄɧđʍǃĄɧđyiwƈ^~xʉʎǃĄɧđyʍǃĄɧđaǔŅiqȽȊİȥxkʊõ^ʉ	
 G:6A	
 6   8 	 	 8	 	
 6 	 yƧdfyaxbkʊf~ɧđȽȊů 9D ƜxȰmʉ	
 
9D	
 ?	
 	
  	
 	
 
	
 	
 8?	 	
 6 ?	 
:C99D	
 y{kʊ	 {_ʉȴȒ~yf|SʑTreȾɚkySo~ǃĄ~ĈȴȒTy\]ƀĺ|{kʊ
ofxʉĈɧđȴȒôtqɧđȽȊůƧdyb|SʑTôtwɧđx[fyƢǻkfyaxbkʊõ^ʉęȋ~ʎǃĄɧđȽȊůʉ	
 6	 	 HFGI7H>C8  8	 	  : 	 ʉǃ~]|Ƨdfyaxbkʊ	
 6 	 	
 HFGI7 H>C8   8 	 	  : 	 f~ƞaʉħÕŎƚ~ȽȊyĢēxb~xȩ\xi]ʊƭȁxfëɰf~ƧůôtwȾɚikʊ	 	    	 `"%'bDIW	 ɧđǗȊ÷ĔxkaʉĈw~ȴȒ|u\wĵjŴ~ȽȊk~xʉȴȒ~Ʈí|Żjwǭ{ĎǤhmfyaxbmʊofxʉɧđȴȒ~Ʈí|ŻjwğóĐŤhmq~
L=:G: Ɯaǧƀhw\kʊL=:G: ƜʉëØ~]{Ŵůxkʊ	
 
L=:G:	 ɧđƮí	 ɧđȽȊů	 fʉSɧđƮíT|ĴtqȴȒ|Ŝiw~ʉ
SɧđȽȊůTřȯky\]ƀĺxkʊõ
^ʉ	
 
G:6A	
 6   7  	 	
 L=:G:	
 6 	 	  	 7 	 	
 6 	 ~]|Ƨbkʊf~ L=:G: Ɯ~ɦĐ 9D ƜxȰmʉǃ~]|{kʊ	
 
	
 
	
 

Fortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —— 45 —

9D	
 ?	
 	
  	
  	
 
	
 	
 9D	
 >	
 	
  	
  	
 
	
 	
 	
 	
 >;	
 6> ?	 	  	 7> ?	 	
 6> ?	
 
	
 	
 	
 	
 	
 	
 	
 	
 :C99D	
 :C99D	
 L=:G: ƜÂÑ´¤ƼƜ|kfyxbkʊÂÑ´¤ L=:G: Ɯxʉǃ~]| :AH:	
 L=:G:
ƜéĜiwʉƮí|Õȧi{\ŋĴ~Ⱦɚkfyxbkʊ	 L=:G:	 ɧđƮíʍ	 	 	 	 ɧđȽȊůʍ	
 
	
 	
 
	
 
:AH:	
 L=:G:	 ɧđƮíʎ	 	 	 ɧđȽȊůʎ	
 
	
 	
 
	
 
:AH:	
 L=:G:	 	 	 ɧđȽȊůʌ	
 
	
 	
 
	
 
:C9L=:G:	 f~ŋĴʉɧđƮíʍǖɒkȴȒɧđȽȊůʍ~ÂÑ´¤řȯiʉɧđƮíʍǖɒmlʉɧđƮíʎǖɒkȴȒɧđȽȊůʎ~ÂÑ´¤řȯiʉʊʊʊy\]ċĴ|ț\wʉĈw~Ʈíǖɒi{\ȴȒɧđȽȊůʌ~ÂÑ´¤řȯky\]ğó|{kʊÝɭ~:AH:	
 L=:G: |ɮkÂÑ´¤Ǵǫİȥxkʊ>; Ɯyɤtwʉ
SI=:CTaÙȴ{fyʉ
SĈw~ƮíëŏTȰkƜaS:AH:	
 L=:G:Tx[fyʉÂÑ´¤~ƨŵ|S:C9L=:G:TƜéĜkfyʉ{z|ǐƀiwØh\ʊõ^ʉ	
 G:6A	
 6   7  	 	
 L=:G:	  7 	
 	
  	
 
	
 	
 6 	 	
 7 	 	
 :AH:	
 L=:G:	 	 	 6 	 	
 7 	 
:C9L=:G:	
 ~]|Ƨdfyaxbkʊf~ÂÑ´¤ L=:G: Ɯ 9D ƜxȰmʉǃ~]|{kʊ	
 
9D	
 ?	
 	
  	
  	
 
	
 	
 9D	
 >	
 	
  	
  	
 
	
 	
 	
 	
 >;	
  7> ?	 	  	
 I=:C	
 
	
 	
 	
 	
 	
 	
 6> ?	 	
 7> ?	
 
	
 	
 	
 	
 	
 :AH:	
 	
 
	
 	
 	
 	
 	
 	
 6> ?	 	
 7> ?	
 
	
 	
 	
 	
 	
 	
 	
 :C9>;	
 
	
 	
 	
 	
 	
 	
 	
 	
 :C99D	
 :C99D	
 L=:G: ÂÑ´¤ÝxôǧkɧđʉĈwĵņx{e{mʊf~qʉL=:G: ÂÑ´¤~Ý|ʉħÕŎƚ~ȽȊůʉǃĄȴȒƚ~ǭ{ɧđȽȊůćfyxbmʊ	 	  |JU_	 ɧđǗȊô^ʉ9D Ɯô{dwɧđȴȒ~ȽȊaxbkaʉffx~ƧůxɧđȴȒgy|ǭ{ŘƚôǧkfyaxbmʊofxʉʍǃĄɧđrexkaʉɧđŘƚaǧƀhw\kʊC ü~ȴȒ`{ʍǃĄ~ɧđŘƚëØ~Ŵůxkʊ	
 
	
 	
 	
 	
 	
  Řƚʍ ŘƚʎŘƚ C 	 f~ybʉC ü~ŘƚĈwĵjņ~ƚþņx{e{mʊõ^ʉ	 — 46 —

SENAC Vol. 46, No. 1（2013. 1）

G:6A	
 6	
 
6	
 	
  









	
 

yƧeʉıɖřƚņ~ʍǃĄɧđŘƚx[ʉf~ɧđȽȊůʉ6
	
 6	
 6 	
 6
	
 6 y\]  ü~êćƜřȯiqfy|ǳųikʊf~ɧđŘƚʉǃ~]|ƊŲŚȼƜ~Ēƪþêć|ô]fyxbkʊ	
 
G:6A	
 	
 6 









	
 

i`iʉf~ŴůxƚþÕüÕüƧ`}{lʉȴȒƚaŐ\yőŎxkʊofxʉęŀ~ćďěƜ~ɈƢ|ďwbqʉ
S9D ņŴůTôtwŘƚȿŘkfyaxbkʊf
9D ņŘƚy\\kʊ9D ņŘƚyʉëØ~]{Ŵůxkʊ	
 
	
 	
 	
 	
 	
 ·Ô±ʍ ·Ô±ʎƛƚņŎƚĒƪþ ȕàþ	 f~ŴůxʉlƛƚņŎƚʅ¡Ò±ŎƚʆĒƪþ|iwʉ·Ô±ʍʉ·Ô±ʎʉyÜ ʉǃ|ʉ¡Ò±ŎƚʍōĜiwʉčŮʉ·Ô±ʍʉ·Ô±ʎʉ yÜ ʉ¡Ò±Ŏ
ƚaȕàþ|{xȠəiwŶɧđŘƚ|{kʊf~qʉɧđȴȒƚS·Ô±Ü~ƚQ¡Ò±Ŏƚ~¡Ò¸ŀƚT|{kʊõ^ʉ	  C 	 C  	 y\] 9D ņŘƚôtqɧđŘƚʉƛƚņ~ɧđŘƚʉ	       	 yĵjxkʊqʉ	  C 	 C 	 C  	 y\] 9D ņŘƚôtqɧđŘƚʉƛƚņ~ɧđŘƚʉ	            	 yĵjxkʊȳƚ~ 9D ņŘƚÜ G:6AC 	 C

qʉɞŨ~ŘƚyǔŅhmfyİȥxkʊõ^ʉ	      G:6AC 	 C  	
 y\]řƚņ~ɧđŘƚʉ	
 






    





	
 

yĵjxkʊf~ybʉņŎƓɮƚ~ G:6ACħ| C yƧdyÍÔ|{~xǐƀiwØh
\ʊfʉC aƛƚņ{~xʉC reƧdyÕu~ɧđŘƚ~Ý|řƚņyƛƚņaǔŅk`xkʊ	
 9D ņŘƚŐɨ|kfyİȥxkʊõ^ʉ	  >? >  ?  	 y\] 9D ņŘƚôtqƛƚņ~ɧđŘƚʉ	              	 yĵjxkʊŐɨ|iqŋĴʉ¡Ò±ŎƚČĀaĆ|ɢkʊ	 ƭȋƨĒ~õʉǃ~]| 9D ņŘƚôtwƧdfyaxbkʊ	
 G:6A	 6	 6	 	  C 	 C  	
 ffxʉıɖƛƚņ~ɧđxʉŦɖřƚņ~ɧđxkaʉf~ŋĴĈȴȒ|Ŝiwƛƚņ
`řƚņ~ŎƓaȯwêćh~xÍÔ|{mʊ{_ʉ9D ņŘƚƊŲhqŚȼƜx~Ēƪþêć|ô]fyxbkaʉ¡Ò±Ŏƚo~ŚȼƜę|Śȼhw\Źȴa[kʊ	 — 47 —

Fortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —ɧđŘƚʍǃĄɧđi`ǧƀhw\mʊf~qʉʎǃĄë×~ɧđȽȊxô]ybʉʍǃĄgy|ȽȊkŹȴa[kʊõ^ʉ	
 G:6A	
 6 	 
>CI:<:G	
 > ?	
 
9D	
 ?	
 	
  	
 	
 
	
 	
 6 ?	 	  H>C:C99D	 >? 	
 >  	 ~]|ƧbkʊfëØ~ÃÑ¥ÍÈyĵȉxkʊ	
 G:6A	
 6 	 
>CI:<:G	
 > ?	
 
9D	
 ?	
 	
  	
 	
 
	
 	
 9D	
 >	
 	
  	
 	
 
	
 	
 	
 	
 6> ?	
 	
 H>C
	
 	
 :C99D	
 :C99D	 >?	 qrʉɧđȽȊx 9D Ɯô]~[¬ÆÔ¸x[mʊofxʉɧđ~ŴǠŎƓkȖɗɮƚ G:H=6E: aǧƀhw\kʊG:H=6E: ôtwʍǃĄ~ɧđŘƚŐǃĄɧ
đ|ŎƓkʉo~ŐǃĄ~ɧđȽȊů|Ⱦɚxbkʊf~ƞǏǃȋxɈƢikʊ	 	  |J"~'n$x$~_	 ɧđŰƚ|ƋuȖɗɮƚȪW[kaʉÞyiwɧđſŊ|ɮkɮƚȰʎ|ǻikʊ	 Ȱʎʊɧđ|ɮkȖɗɮƚ	
 
ɧđɮƚ	
 
Űƚ~ņ	
 
ɮƚþ~ņ	 
ɮƚ~ƀĺ	 HJB6	 ɧđ	 ɧđȴȒ~ņ	 Ĉw~ɧđȴȒ~ļ	 EGD9J8I6	
 

ɧđ	
 

ɧđȴȒ~ņ	 Ĉw~ɧđȴȒ~Ȃ	
 



ɧđ	
 

ɧđȴȒ~ņ	 Ĉw~ɧđȴȒ~ƨŞþ	 

B6MK6A6 	
 

ɧđ	
 

ɧđȴȒ~ņ	 Ĉw~ɧđȴȒ~ƨőþ	 B>CAD86	
 

ɧđ	
 

ƛƚņɧđ	 Ĉw~ɧđȴȒ~ƨŞþ~ðȡ	
 B6MAD86	
 

ɧđ	
 

ƛƚņɧđ	 Ĉw~ɧđȴȒ~ƨőþ~ðȡ	
 



ɧđ	
 

ƛƚņɧđ	 

ɧđ~ĳǃĄ~ƨŞȴȒǬĲÎ¬¸	 

J7DJC96 	
 

ɧđ	
 

ƛƚņɧđ	 

ɧđ~ĳǃĄ~ƨőȴȒǬĲÎ¬¸	
 H=6E:6	 ɧđƛƚņɧđ	 

ɧđ~ĳǃĄ~ȴȒƚÎ¬¸	
 H>O:6	
 

ɧđ	
 

ƛƚ	
 

ɧđ~ĈȴȒƚ	 B>CK6A6 	 A7DJC96 	 G:H=6E:6 H	  ɧđyƛƚņɧđ	 6AAD86I:96	
 

ɧđ	
 

6 ~ņ~ɧđ	 ɋǤ	 ɧđ 6 ɧđ H xƌŘhqņ~	 ɧđ|ŎƓk	 ɧđ 6 aĚéew\Ƕʉ	 h{dā	 	
 ffxʉ	
 ~é\qɮƚʉŰƚɧđ~ŵ|ǃĄǻkƛƚņ~ŰƚɛĜiwʉo~ǃĄ|ɮkþĭďkfyxbkʊõ^ʉ	
 G:6A	
 6GG6N 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Q ~ɧđ	
 >CI:<:G	 B C C	
 
B	
 	
 	
 H>O:6GG6N	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ĈȴȒƚ Q	
 
C	
 	
 H>O:6GG6N 	
 	
 	
 	
 	
 	
 	
 	
 ȇʍǃĄȴȒƚ 	
 
C	
 	
 H>O:6GG6N 	
 	
 	
 	
 	
 	
 	
 	
 ȇʎǃĄȴȒƚ 	 yƧeʉB |ʉ6GG6N ~ĈȴȒƚx[  aêćhʉC | 6GG6N ~ȇʍǃĄ~ȴȒƚx— 48 —

SENAC Vol. 46, No. 1（2013. 1）[  aʉC | 6GG6N ~ȇʎǃĄ~ȴȒƚx[  aêćhkʊ	 Ȱʎxʉɮƚþ~ņaSƛƚņɧđT|{tw\ɮƚʉŰƚ|Ú^qɧđ~ǃĄȴȒƚ|ƋuʍǃĄƛƚņɧđaƅþxkʊo~ɵʉo~ʍǃĄɧđ~ĳȴȒ|ʉŰƚɧđ~ĳǃ
Ą~ſŊaêćhw\kʊõ^ʉØɱy×ɱĭŶkq~ɮƚʉA7DJC9 y J7DJC9 ëØ~]|ô\kʊ	
 G:6A	 77   	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ʎǃĄɧđ	 
>CI:<:G	
 7ADL 7JEE	
 	
 	
 	
 	
 ʎǃĄ{~xȴȒƚ  ~ɧđ	
 
7ADL	
 	
 A7DJC977	
 
7JEE	
 	
 J7DJC977	 EG>CI	
  7ADL 7JEE	 ffxʉʎǃĄɧđ 77 ʉȇʍǃĄ~Øɱa  ʉ×ɱa  ʉȇʎǃĄ~Øɱa ʉ×ɱa  xk`ʉŘƚxƧeʉ7ADL    ʉ7JEE    |{kʊf~ybʉJ7DJC977 ~]|ʉǃĄ|ɮkŰƚĜ^yʉo~ȗƳÕü~ƛƚʅf~õx ʆ|{kʊ	
 G:H=6E: ʉɧđ~ŴǠŎƓkɮƚxkʊooʉz{ǃĄ~ɧđÉÊÎ×xʍǃĄǰ|Üx\~xʉʎǃĄɧđ 6 yʍǃĄɧđ 7~]|ʉĈȴȒƚaȉi\ɧđĵj]|ĭƈ^lxkaʉɧđǗȊʉǃĄ_ĳǃĄ~ȴȒƚaȉi\ʉĵņ~ɧđɭxi`ɀİhw\mʊofxʉ6 y 7~ɭxǗȊk|ʉŴů×ʉ
ĵņ|{]{ŎƓaŹȴxkʊfřȯk~aɮƚ G:H=6E: xkʊG:H=6E: |ʉƨĒ~Űƚ|ŎƓiq\ɧđÚ^ʉʎǬǱ~Űƚ|ŎƓŵ~ŴǠȰkʍǃĄɧđÚ^kʊffxŴǠȰkʍǃĄɧđyʉŎƓŵ~ɧđaʉ@Q@Q
Q@C ~ C ǃĄɧđx[ʉ	  @ @@C 	 xÚ^ȴȒƚ C ~ʍǃĄƛƚņɧđ~fyxkʊõ^ʉ  ȋƨŵ~õƜʉ	
 G:6A	
 6 	 
>CI:<:G	
 > ?	
 6 	 	
 G:H=6E: H>C

>? 	
 >  	
 ?   	    	 yƧdfyaxbkʊG:H=6E: ~ȇʍŰƚ 9D ņŘƚ{~xʍǃĄɧđxkaʉfȇʎŰ
ƚ~   x Q ~ʎǃĄɧđ|ŎƓk]ƌŘiw\exkʊ	
 f~ɧđ~ŴǠȰkʍǃĄɧđʉɮƚ H=6E: ôtwĭŶkfyaxbkʊõ^ʉ
×Ⱦ~ 6 y\]Śȼiqɧđ|ŜiʉH=6E:6ʉʍǃĄƛƚņɧđʉ   |{kʊofxʉ×Ⱦ~ɧđȽȊůǃ~]|Ƨdfyaxbkʊ	
 6 	 	
 G:H=6E: H>C

>? >  ?   H=6E:6	
 i`iʉfxr 9D ņŎƚ|_e >  ? ~ȌŁƌŘaŘƚ~xkʊofxʉffĆzɈƢiqɮƚ H>O: xƧbǲkyȩ\xi]ʊ	
 6 	 	
 G:H=6E: H>C

>? > H>O:6  ? H>O:6   H=6E:6	
 f~ɧđȽȊů{ʉŚȼƜ~ȴȒƚŎƦkrexŎƦŗàxkʊ	 	
  |J#OiL&C	 ɧđŚȼkyb|ʉƛƚŘƚÚ^wȴȒƚƢǻi{e{mʊfʉo~ſŊ|ŉv\wʉÃÑ¥ÍÈ~ğóɬŒƥ|ȽȊxôǧkÉÊÎɩǺŘkqxkʊi`iʉƨɘ~¦ÒÀËÔ±xÃÑ¥ÍÈ~řȯÝ|Źȴ|{tqÉÊÎǺúiqʉÙȴ|{tqÉÊÎȻƘky\]ğóaʁȟ|ȯw\kʊf~]{ʉÃÑ¥ÍÈ~řȯÝ|Źȴ|ŻjwÉÊÎǺúkfySğǰĚéeTy\\kʊ DGIG6C  DGIG6C `ğǰĚéeaİȥ|{ʉÃÑ¥ÍÈ~ğó|Źȴ{ȴȒƚƋuɧđřȯÝ|Ǻúxb
]|{iqʊğǰĚéeô]yʉÉÊÎĞǢ~ȩ\ǌǧž~[ÃÑ¥ÍÈóƄkfyaxbkʊffxo~ƞǏȔæikʊ	 Fortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —— 49 —lʉ¨ÂÏÔ³Ò~ÝxŹȴ|ŻjqȴȒƚ~ɧđǺúkȍħ{ƞǏyiwʉ¨ÂÏÔ
³Ò~ŰƚôtqɧđŚȼa[kʊõ^ʉǃ~¨ÂÏÔ³Òx G:6A Śȼhw\ʎǃĄɧđ 7 af|ǳųikʊ	 HJ7GDJI>C:	 B:BDGN6 B C	 	 	 >BEA>8>I	
 CDC:	 	 	
 G:6A	
 6B C 7B C M	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Űƚ B y C ôtwŚȼk	 	 	 >CI:<:G	 B C > ?	
 
	
 	
 M	
 	
 
	
 
	
 	
 7 	 	
 MG:H=6E: >? > B ? C  H=6E:7	 	
 	
 6 	 	
 7 	
 :C9	
 HJ7GDJI>C:	 B:BDGN	 ɧđ 7 ʉf~¨ÂÏÔ³Òa¦ÔÏhqyb|ʉŰƚ B y C ~þôtwǺúhkʊf~ybʉ7B C~]{ħȑ{Śȼrex{dʉ7 B C ~]{ʉØɱƌŘȽȊůôtqŚȼİȥxkʊ{_ʉɧđ 6 ŰƚôtwŚȼhw\kaʉ6 Űƚ|ĸw\~xęŀɈƢiqƛĴɧđxkʊƛĴɧđʉŰƚɧđ~ĭƈ\ǍçȖ|kclʉɧđȦñ¨ÂÏÔ³ÒĀ|[mʊ	
 Űƚ|ĸw\{\ɧđ 7 ÑÔ¡Ïɧđx[ʉŚȼhq¨ÂÏÔ³Ò~ÕƥÉÊÎɿň|ƆŢikʊ  ȋxɈƢiq]|ʉÕƥÉÊÎɿň|ƆŢkÑÔ¡ÏŎƚʉ¨ÂÏÔ³ÒĻďiqƥǙxǦƄhkʊŰƚ~þ¨ÂÏÔ³ÒɬŒƥ|ǺŘiw\~xʉfôtwɧđ|Źȴ{ÉÊÎǺúkfyaİȥ{~xkʊqriʉf[dx¨ÂÏÔ³ÒxŚȼkɧđ|u\w~ô^ǁȥx[ʉÉÒÃÑ¥ÍÈ~ɧđÊ«ËÔÏÝ~¥ÑÔ½Ïɧđyiwô^mʊ	
 ofxʉÉÊÎ~ğǰĚéeƢǻǰ|ȯ]çȖaǧƀhw\kʊ DGIG6C xğǰĚéeȯ]|ʉâu~ƇțbaŹȴxkʊÕuʉĚéeqÉÊÎɧđyiwôǧkq~ɧđĶ~ŚȼxkʊfʉĚéeqÉÊÎ~Ćʀ¹Ð¬úƋkq~ÉÊÎǧƀkfyryȣ^kʊ]Õuʉo~ɧđĶ|ʉřɵ~ÉÊÎĚéeğóxkʊęȤŚȼƜ{~xɻřȯƜʉŵȤÃÑ¥ÍÈřȯÝ|Ěée~xřȯƜxkʊ	 ÉÊÎĚéeáŘ~ɧđĶʉ6AAD86I67A: ŢžéewņŚȼikʊf~ybʉɧđ~ǃĄſŊ¦ÑÒSTôtwǻkŹȴa[kʊɧđ~ǃĄ¦ÑÒ~ƚxǍʉřȯƥ|ŎƦkfyxbmʊõ^ʉ	
 G:6A 	
 6AAD86I67A:	 	 67 O 	
 >CI:<:G 	
 6AAD86I67A: 	
 9>B:CH>DC 	
 	
 @B	
 
~]|ŚȼikʊʍȯǱ~]|ʉĶę~ŵ|ǃĄſŊéĜiwȩ\iʉʎȯǱ~
]|ʉ9>B:CH>DC Ţžô]fyİȥxkʊf~õ~ŋĴʉ67 ʍǃĄřƚņɧđʉO ʎǃĄřƚņɧđʉ@B ʎǃĄƛƚņɧđyiwĚéefyaxbkʊ	 ɧđ~Ěée 6AAD86I: Ɯxȯ\kʊ6AAD86I: Ɯʉǃ~]|ɧđ~ȴȒƌŘ¨Â
ÏÔ³Ò~]|`tfxŁxȾɚikʊ	 	
 6AAD86I:	
 	
 67

 	
 O B

BB 	
 @B@  @	 	 `tfČʉɧđŚȼyĵjŴůxkʊ67  @B ~]|ʉȴȒƚ|ƛƚreÚ^yʉo~ǃĄ~Øɱ  |{iʉO ~]|SʑTôtwØɱƌŘkfyİȥxkʊĚéeybʉɧđ~ŎƚņaǔŅiw\w`\mʊ6AAD86I: ƜřȯƜ{~xʉO  @B~]|ƛƚņŎƚƛƚů~ȽȊȗƳôtwĚéefyİȥxkʊÕƠĚéeqɧđʉɞŨ~ŚȼƜxŚȼiqɧđyĵƽ|ôǧkfyaxbkʊ	 qriʉ|ĚéeȠəkyʉ¦ÒÀËÔ±xĔǧxbśɩɐ^SÉÊÎÔ½ÔT|{İȥža[kʊofxʉÙǧ|{tqɧđ~ÉÊÎɿň 9:6AAD86I: ƜxȻƘkfyaxbkʊ9:6AAD86I: Ɯʉǃ~]|ɧđĶre`tfxŁxƌŘikʊ	 — 50 —

SENAC Vol. 46, No. 1（2013. 1）

9:6AAD86I:	
 	
 67 	
 O 	
 AB	
 	
 
ÉÊÎ~ĚéeȻƘozƥɭa``ĎǤx{\~xʉŹȴ{yb|Ěéewʉ
Ùȴ|{tqȻƘk]|ii]ʊõ^ʉĆz~¨ÂÏÔ³Ò B:BDGN ʉëØ~]|ƧbƓ^fyaxbkʊ	 HJ7GDJI>C:	 B:BDGN6 B C	 	 	 >BEA>8>I	
 CDC:	 	 	
 G:6A	
 6B C M	
 
	
 	
 	
 	
 	
 	
 	
 	
 G:6A 	 6AAD86I67A:	
 	
 7 ! ĚéeǧʎǃĄřƚņɧđ	 	 	 >CI:<:G	 B C > ?	
 	 	 6AAD86I:	
 7B C	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 BQC ~ʎǃĄɧđĚée	
 
	
 	
 M	
 	
 
	
 
	
 	
 7 	 	
 MG:H=6E: >? > B ? C  H=6E:7	 	
 	
 6 	 	
 7 	 	 	
 9:6AAD86I:	
 7	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ÉÊÎ~ȻƘ	
 :C9	
 HJ7GDJI>C:	 B:BDGN	 {_ʉŰƚŎƚôtwŚȼiqÑÔ¡ÏɧđÕƥÉÊÎɿň|ƆŢikaʉ6AAD86I: ƜxĚéeqɧđŃŘÉÊÎɿň|ƆŢik ʊ¨ÂÏÔ³Ò|_eÕƥÉÊÎɿňŃŘÉÊÎɿňśɩaş{\fyaŐ\~xʉȴȒƚ~őb{ɧđĚéeyb
6AAD86I: Ɯô]ƞaȩ\xi]ʊ6AAD86I: ƜôtqğǰĚéeʉÉÒÃÑ¥ÍÈxĔǧxbiʉÊ«ËÔÏ~ÝxɧđŚȼiwʉ¥ÑÔ½Ïɧđyiwôǧkfyİȥxkʊ	
 qriʉ6AAD86I: ƜxĚéeqɧđʉȻƘi{\xčŮ 6AAD86I: ƜxĚée]ykyřȯƥÍÔ|{kʊqʉĚéeę|o~ɧđôǧi]yiwřȯƥÍÔ|{kʊofxʉɧđakx|Ěéew\`z]`ǺɅkɮƚ 6AAD86I:9aǧƀhw\kʊ6AAD86I:9 ɋǤņ~þəkɮƚxʉ6AAD86I67A: ŢžƋuɧđŰƚ|Ú^yʉo~ɧđakx|Ěéew\SǶTʉĚéew\{eSāT
əikʊɋǤņ~ɮƚʉo~ >; Ɯ~Ʈíyiwô]fyaxb~xʉõ^ǃ~]|Ĕǧkfyaxbkʊ	
 G:6A 	
 6AAD86I67A:	
 	
 6	
 >CI:<:G	
 > C	
 
	
 
>;	
 6AAD86I:96	
 I=:C	 	 	
 6	 	   > > C 	
 	
 	
 	
 	
 	
 êćʍ	
 
	
 :AH:	 	 	
 6AAD86I:	
 	
 6C	 	 	 	 6	 	   > > C 	
 	
 	
 	
 	
 	
 êćʎ	
 
:C9>;	
 f~ŋĴʉɧđ 6 akx|Ěéew\SêćʍTřȯiʉĚéew\{eʉ6AAD86I: ƜxĚéew`SêćʎTřȯikʊ	
 	
 

	
  _Gvk)sN'6<A#/7=A2?;+7;<	 ƭȁ|_e DGIG6C ÃÑ¥ÍÇÒ¥~ɈƢë×xkʊfxȔæiqƜǏôtwȪW
{ÃÑ¥ÍÈƧ\wwØh\ʊqrʉȳɷ{ȽȊÏ§Î­ÈôtqÃÑ¥ÍÈk w
Õ`Ƨd~`{~Ƈɭa``kʊÏ§Î­È|twÒ±Ô¼´¸×|¨ÂÏÔ³ÒÍÂÍÎyiwĉɬhw\~xʉfĔǧiwÃÑ¥ÍÈóyƇɭaǴe10

qriʉ¨ÂÏÔ³Òȳƚŀ¦ÔÏkq|ŃŘÉÊÎɿň|ƆŢhmfyĔǧkŋĴ|ʉɧđ
Ķ~Śȼ| save ŢžĜ^wʉɧđĶŃŘÉÊÎɿň|ƆŢhm{e{mʊFortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —— 51 —

kʊffxȈȤaôtqfy~[ÍÂÍÎ~Ý`_Ġ\du`Ȕæikʊ	 	  y6A<,R^	 ÿŸĐƞǿů~ȻǏ·Ô±ȻƲxȩdô]ʄɟÁÔÎŎƓʅ 6HI	  DJG>:G	 ,G6CH;DGB 	  ,ʆʉÏ§Î­ÈaȳɷxʉĞǢ~ȩ\ÃÑ¥ÍÈȦók~őŎxkʊȈȤtyȍħ{ÐÄÏ~ÃÑ¥ÍÈótqfy[kaʉƨɘ¼´¸xĉɬhw\~ôt
w\kʊ_Ġ{~ʉ ,/ʅ 6HI:HI	  DJG>:G	 ,G6CH;DGB	
 >C	
 I=:	
 /:HIʆxkʊ	 =IIE

LLL ;;IL DG< 	
 f~ÍÂÍÎ|ʉ DGIG6C `ôǧxb¨ÂÏÔ³Òaćtw\kʊ	 	  SF}vk	 DGIG6C x~ýȎŮřƚ 7NI: xʉƩĞƚŔ  ƶǿŮxkʊʐýȎŮřƚ 7NI: xƩĞƚŔa  ƶǿŮ|ōĜikaʉoë×ǚǤriʉ¦Ò¾Í|twʐýȎŮřƚa
ô^{\fy[kʊȈȤŐɽů~ƴȽȊkyb|ʄȎŮȽȊaŹȴ|{tqfya[kʊƚģǃ~ŐɽůȽȊkybʉƨőǃƚ~ɽyƨŞǃƚ~ɽy~ƚþ~ŧaɻŨ|őbdwʉƶȮsaǓĖ{ľʂ|{`xkʊ	
 f~yb|÷Ĕ{~aŐýɪȽȊÍÂÍÎxkʊfʉîƀ~ȎŮxřƚȽȊkfy
axb~xkʊɞŨ~ȽȊĎǤ|ƥɭa``kaʉȎŮăĆ~yb|Ŷmʊ¼´¸×|òȀʃ`ĉɬhw\kaʉȈȤaôtw÷Ĕrtq~ʉ &%# xkʊ	 =IIE

BNL:7 ABJ :9J 9BHB>I=&%# =IBA	 f DGIG6C ~Ê«ËÔÏ|{tw\wʉĿėǗȊSʈVʇʋT~ȾĲxƧeiʉH>C  8DH{z~ɮƚąřiw\kʊƭȁxɈƢiw\{\Ƽɠñ~ǷɍaşireŹȴxkaʉŎƚŚȼǿŮ{~xozɹid[mʊȈȤʉýȎŮȽȊǧ|ótqŐɽů~ƴȽȊkÃÑ¥ÍÈʉozőb{ŎƦkfy{dŐýɪxğóhmfyaxbiqʊ
	
 

	
  B_hf	 ȽȊǁªÇËÐÔªÌÒ|ʉƥɭǮš~ƞǿůȻdfyxƫƯáǕkǍŘɋǰƇǏyʉ¨¦ÑƍtwǺǢǰ|ŝƯ~İȥžƏǺǢɋǰƇǏa[kʊŵȤ~ǺǢɋǰƇǏxʉ¨¦Ñ|ǳųkĂbk~aßƚxkʊ DGIG6C |ʉßƚǮǦǧ~Ȗɗ¨ÂÏÔ³
Ò G6C9DB5CJB7:G aǧƀhw\~xʉ	
 86AA	
 G6C9DB5CJB7:GM	 ~]|Ƨeʉßƚ M Ŷfyaxbkʊi`iʉßƚĹƪɪaľʂxʉĹƪ~Ǹ\ßƚô]yȩ\ªÇËÐÔªÌÒȗƳaŶmʊG6C9DB5CJB7:G xĹƪɪaÙɒkyb|_Ġ{~ʉĹƪaɻŨ|ɪ\ßƚyiwƩĶ{ʉ&:GH:CC:	
 ,L>HI:G xkʊfȣƷiqƱƭǵhaëØ~¨¸xÃÑ¥ÍÈĉɬhw\kʊ	 =IIE

LLL B6I= H8> =>GDH=>B6 J 68 ?E PB B6I &, BI =IBA	 Ʊƭhaĉɬhw\~ʔȼɆxƧ`q~xkaʉÎÒ¤ɶ~Ý| DGIG6C ǧ~ĉɬĆaćtw\kʊ	
 	
 

	
  _Gvk;+7;<	 ɡȅƞǿů~ȻǏƚþȂĐ{zʉÕȨǰ{ƚþȽȊÍÂÍÎa[ʉƚþȽȊ~ÃÑ¥ÍÈó~aƺ|{kʊqrʉǆż{aȈȤÁÎÔ~ȩ\ÍÂÍÎǷmʊ
¼´¸xĉɬhw\wô^o]{~|ʉ!+%ʅ!'-	
 +8>:CI>;>8	
 %>7G6GNʆa[kʊ	
 
=IIE
11

LLL <CJ DG< HD;IL6G: <HA 	
 ¨½Ô¨Ò¬®Ò±Ô~ȽȊǁ|Ľǧ~¨ÂÏÔ³ÒÍÂÍÎaÒ¬¸ÔÏhw\kʊɄidʉShttp://www.ss.isc.tohoku.ac.jp/super/library.htmlTgȹØh\ʊ

— 52 —

SENAC Vol. 46, No. 1（2013. 1）

qriʉŉƭǰ|ʔȼɆǧ{~xʉ DGIG6C xô]|ȬŪ¶¤»´¤a\]xkʊqʉstyôtwiqaʉŹliɟd[mʊÄ´®Ïɮƚ{z~ǟǅɮƚʉo~ʄɟ½Ô«ÌÒĉɬiw\¨¸`²ÒÑÔ¹iqƞaȩ\yŽ\kʊȈȤʉƚþȽ
Ȋ~ƙǽƧɉxĩǤ`Ȧók`ʉīȣƜǡ2 3|Ɛɕhw\~¦ÀÔiwô]fyaŐ\xkʊ	 	
  .;6*3-;+7;<	 ȽȊǁªÇËÐÔªÌÒǞǤǰ|ɏftw\ǣɎƾƖk~xkaʉďěhƚþrexǣɎɉĭ~śƣx[mʊofxŹȴÙİǂ{~aİȷġ°Á¸xkʊÁÎÔ~İȷġ°Á¸yiwƩĶ{~| <CJEADI a[kʊ	 =IIE

LLL <CJEADI >C;D 	 ÃÑ¥ÍÈ~ȗƳÁÏ|úŕiw_eʉ<CJEADI `oɉɗxʉƽW{¥ÍÁ|ĜťiwȰǻkfyaxbkʊ	 ƨɘ~¾°¦ÒŉƭƕóaĈw¿«ËÏx[ʉ¥ÍÁ´¤ďěǁȥ (+ |Ȗɗw\kʊ DGIG6C |¥ÍÁ´¤ďě|ɮkƜǏ[maʉè~ȼɆxƧ`q¥ÍÁ´¤ÍÂÍÎyÎÒ¤kʉ DGIG6C ÃÑ¥ÍÈ`¨ÂÏÔ³Ò¦ÔÏkŴů
xłƑdfyaİȥxkʊo~Õu|ʉȈȤaótq G6B:H a[kʊ	 =IIE

LLL EE I::C H:IHJC6C 68 ?E ;G6B:H 	
 G6B:H ʉ DGIG6C xô]q~¥ÍÁ´¤µÔÏyiwɬǮiwbq~xʉƭȁxɈƢiqǷɍrexȍħ|ʎǃĄʏǃĄ~¥ÍÁƑdfyaxbkʊqʉƑǪiqłŴÉÔ«»ÉÔªÌÒŴůxďěiwʉÃÐ¯Ò¶ÔªÌÒ|ô]fyİȥxkʊȩ`tq
ɂiwwØh\ʊ	 zw)m'"[	 åŀʉęŀx|ɈƢiqƧů~ƊŲyʉƜŔđɧđȽȊů~ô\ƞɈƢiiqʊ
DGIG6C |ʉf~è|ȪW{ƜǏaǧƀhw\wʉƼɠñôtq Â«¤¸ƌķǰ{ÃÑ¥ÍÇÒ¥İȥxkiʉƨƝ~ DGIG6C  |ÜđĎǤ~Ⱦɚxćtw\kʊi`iʉȈȤaȽȊǁªÇËÐÔªÌÒkq|ôtw\ƜǏʉf~ʏŀ~ČśxĈw
xkʊƚþȽȊȽȊǁªÇËÐÔªÌÒʉȽȊǁĞǢȩdğ`ih^koxȩ\~x[ʉƝi\ƜǏŹliŹȴx[mʊ¦ÒÀËÔ±~ğóyÃÑ¥ÍÈy~ɮøaǤȻxbʉŵ\dxȳɷ{ȽȊhmfyaxbkʊ DGIG6C ôtw¦ÒÀËÔ±S¬ÆÔ¸|Tô\f{iʉƚþȽȊȽȊǁªÇËÐÔªÌÒtytyƺix^yŽ\kʊ	 ƭȁʉȈȤaƔĦőŖ~ĥǹǦķe|Ƨ\q DGIG6C ~¶¢¬¸aÄÔ¬|{tw\kʊfʉőɯőŖÐÔ©Ô¼Ï£ÔŖǹȃ®Ò±Ô~ǼǨăœǊa /:7 xĉɬxb DGIG6C¶¢¬¸Əiw\y\]~xƒöiqyfʉŀŀtwfsxɡɕhmw\qrdfy|{iqʊƨŵ|ʉf~]{ǁïÚ^wØhtqǼǨăœǊ|Ǔ\ƁɌ~ƀȰiwʉƭȁȕ^q\yŽ\kʊ	
 

Pq`e
23	
 ćɫ DGIG6C řɓÃÑ¥ÍÇÒ¥ʉưǨŬǀÓţƭȫäÓǝǎĬûʉ°Á¸½Ò¤ʉ ū	
 23	
 'JB:G>86A	
 *:8>E:H	
 >C	  DGIG6C	
  	
 +:8DC9	 9>I>DC 	
 / 	
 " 	
 )G:HH 	 + 	  	
 ,:J@DAH@N 	
 	
 
	
 
/ 	
 , 	
 .:II:GA>C< 	
  	
 ) 	
  A6CC:GN 	
 6B7G>9<:	
 -C>K:GH>IN	 )G:HH 	  	 
23	 'JB:G>86A	
 *:8>E:H	
 >C	  DGIG6C	
  	
 / 	
 " 	
 )G:HH 	 + 	  	
 ,:J@DAH@N 	
 / 	
 , 	
 .:II:GA>C< 	
 	
 
	
 
 	
 ) 	
  A6CC:GN 	
 6B7G>9<:	
 -C>K:GH>IN	 )G:HH 	 