文字列の扱いについて †characterでの宣言 †宣言部では character :: str*10 !または character*10 :: str で10カラム分の文字列となる. 文字列の配列 †nパターンの文字列を一つの変数の中に格納したいときは character*50 :: filename(n) 文字列の結合 †スラッシュ2つ分.文字列aとbを結合するなら a//b サブルーチンでの文字列変数の引き渡し †サブルーチンで文字列を引き渡すときは,可変長でもいける.
character(*)とすることで, 文字列foobarがどんな長さでも大丈夫. !-- 例1 subroutine HOGESUB(foobar) implicit none character*10, intent(in) :: foobar !-- 例2 subroutine HOGESUB(foobar) implicit none character(*), intent(in) :: foobar 例1のようにcharacter*10とサブルーチン内で宣言した場合に, call HOGESUB('12345678 ') ... (メイン文) end program subroutine HOGESUB(foobar) ... open(11,file=trim(foobar)//'.dat') ... end subroutine のように10文字分空白で埋めると,開かれたファイルは 12345678 .dat と,trim(foobar)をしても空白が含まれてしまう. |