82401


**状況**  
fortranで書かれている物理関係のシミュレーションプログラムのデバッグを行っていますが、type定義の中に長さ0の配列が存在します。私が書いたコードでもなく、普段は別の言語を使っているので、その意味がわかりませんでした。

下記の例の`zero_body(1:0)`のようなものです。変数名な適当につけました。Fortran77時代のコードなので、拡張子も*.fですが、コンパイル時も特に引っかからなく、バグが起こる箇所でもなかったので、当時はこういう書き方があったかな？ぐらいでスルーしてましたが、やはり気になって経験者の方々にお聞きしたいです。

**コード例**

[code]

    type (something)
        character*20 name
        integer*4 zero_body(1:0)
        integer*4 nonzero_body(0:255)
    end type
    
[/code]


CC BY-SA 4.0
2021-09-10T00:20:29.470
82394
2021-09-10T04:51:29.493
48131
question
fortran
fortranの長さ0の配列について


[fortran](/questions/tagged/fortran "'fortran' のタグが付いた質問を表示") f77
は学生時代にちょっとやっただけですが [c++](/questions/tagged/c%2b%2b "'c++' のタグが付いた質問を表示")
でたとえるなら  
`std::vector<int> v;`  
は 0 要素の配列を作りますし、オイラはこのソースコード断片を一切疑問に思いません。「ああ、あとで `v.resize(n);`
とかするんだろう＝動的に要素数を変更するんだろう」と勝手に予測します。提示の例も後から `reshape`
するんだろうと思うだけです。ファイルを読んでみないと要素数が決定できないとか普通の話。

もちろんはずれかもしれませんが。


CC BY-SA 4.0
2021-09-10T04:51:29.493
82401
2021-09-10T04:51:29.493
8589
82394
answer