は、以下の短いプログラム(Fortran95)考えてみましょう:fortranプログラムでshape(2)を使用しても何も印刷されないのはなぜですか?
write(*,*) shape(2)
end
私はFortranコンパイラ(のgfortran 4.8.2)とのAbsoftのPro Fortranの13.0.0(MAC)でこれを実行しようとしたが、私は以下の結果が得られます。
local $./a.out
local $
更新:ここで同じ結果にも試みのgfortran 4.4.7(Linuxの
はwhat documentation of shape in gfortran saysある:
個のRESULT = SHAPE(SOURCE [, KIND])
引数:
SOURCEは、任意のタイプのアレイまたはスカラーなければなりません。 SOURCEがポインタである場合、SOURCEは関連付けられていなければならず、割り当て可能な配列を割り当てる必要があります。戻り値:
SOURCEと同じ数の要素を持つ序数1のINTEGER配列には、次元があります。結果として得られる配列の要素は、それぞれの次元に沿ったSOURCEの長さに対応します。 SOURCEがスカラーの場合、結果はサイズ0のランク1の配列になります。 KINDが指定されていない場合、戻り値にはデフォルトの整数型、それ以外の場合は指定された種類があります。
つまり、改行のみが表示され、結果は表示されません。形が1であると私に教えてはいけませんか?
また、 'shape([2])'と対比できます。 – francescalus
何も印刷されないのは不思議ではありません。出力のサイズはゼロです!興味深いニュアンスのスタンダード! – wander95