%表題   らくらくDCL
%
%履歴
%\Drireki{
%         95/04/13 余田 成男
%        }
%

\begin{center}
\fbox{\parbox{14.75cm}{
\fbox{\parbox{14.5 cm}{
\vspace{1em}
\begin{center}
\parbox{13cm}{

{\bf FORTRANのひけつ 3}

\begin{center}
{\large \bf サブルーチンにおける引数の結合 }
\end{center}

関数引用やサブルーチンの引用で引数によってデータの結合をおこなうとき, 
配列の記憶順序を意識したテクニックがよく使われます. たとえば, 第
\ref{c:kihon1}章のプログラム {\tt KIHON2} では, 何の説明も無しにつぎの
ように使っています.
\begin{quote}
   {\tt CALL SGPLV( NMAX+1, X, Y(0,1) )} \\
   ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ \\
   {\tt CALL SGPLV( NMAX+1, X, Y(0,I) )} 
\end{quote}
FORTRAN では, 配列の結合は次のように定められています：

\begin{quote}
   仮引数が配列名である場合の実引数は, 実引数配列の記憶列のうちで仮引
   数と結合される部分の先頭の記憶単位を指定する. 
\end{quote}

この例のように, 実引数が配列要素名であれば, その配列要素の記憶単位から
配列の最後の記憶単位までの記憶列が仮引数と結合されます.
\vspace{1em}

つまり, 配列がサブルーチンに渡されるとき, メインプログラムの配列の中身
がサブルーチンの配列の中身にコピーされるのではなくて, メインプログラム
の中の配列の番地だけが渡されて, サブルーチンの方はその番地を基準にして
データ列の処理を行なうのです.
\vspace{1em}

このようなことを意識してプログラムを書くと, 少ない引数で柔軟な処理が可
能になります. 詳細は, 「岩波FORTRAN辞典」などをお読み下さい. 


}
\end{center}
\vspace{1em}
}}
}}
\end{center}
