2

Fortran では、文字列を次のように宣言できます。

character*80 mystring

そしてそれを次のように送信します:

call MPI_Send(mystring,len(mystring),MPI_CHARACTER,...,ierr)

または、文字列を文字の配列として宣言することもできます (C で伝統的に行われている方法に沿ったものです)。

character mystring(80)

そしてそれを次のように送信します:

call MPI_Send(mystring,80,MPI_CHARACTER,...,ierr)

私の理解では、これら 2 つの呼び出しは、C 関数を呼び出すときに異なるインターフェイスを持つことになります。(前者は、多くの場合、文字列の長さを保持する追加のパラメーターを値で渡すことによってコンパイラーによって実装されますが、後者はそのパラメーターを渡しません)。では、MPI 実装 (通常は C で記述) はどのように違いを認識しているのでしょうか?

4

1 に答える 1

1

http://www.mcs.anl.gov/research/projects/mpi/mpi-standard/mpi-report-1.1/node37.htm#Node38

基本的に後者は行わないでください。

于 2012-04-09T02:46:22.570 に答える