-fbounds-checkをつけるとcharacterの長さにも厳格になっちゃう問題 †環境 †$ gfortran --version GNU Fortran (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 Copyright (C) 2021 Free Software Foundation, Inc. エラー状況 †デバッグ時によくコンパイラオプションで -fbounds-check をつけると思うのだが,これをつけることで(なくても正常に動作するのに)エラーになってしまうケースがあった. At line 269 of file mod_mygmt_gridio.f90 Fortran runtime error: Actual string length is shorter than the declared one for dummy argument 'infilename' (111/256) どうやら subrountine 内で character 型の引数を宣言してそのときに長さも確保しているので,bounds-check が入って長さが実際の引数の文字列長と違うじゃないか,ということらしい. character(len=256), intent(in) :: infilename 対処 †可変長 (len=*) にする.やることはサブルーチンでの文字列変数の引き渡しに書いたことと同じ. character(len=*), intent(in) :: infilename |