#author("2023-11-13T17:06:06+09:00","default:Miyashita","Miyashita")
#author("2023-11-13T17:06:36+09:00","default:Miyashita","Miyashita")
*format 文の個数指定部分に変数を使用する [#v2ee97ea]

**ifort [#n44f97c9]
#codeprettify(lang-fortran){{
format(200f10.3)
}}
上記の200の部分を可変にしたいとき,例えばnx個のf10.3としたければ,
#codeprettify(lang-fortran){{
format(<nx>f10.3)
}}
のように"<>"で変数を囲む.nxは整数でなければならない.~
上記は残念ながら gfortran ではコンパイルできないらしい.
~
~
**gfortran [#m6ad858c]
write文のフォーマット指定にformat文を使用せず,文字列characterに書き込む.上のやり方よりちょっと面倒.~

#codeprettify(lang-fortran){{
character(len=64) :: fmt1
integer :: n_foobar
}}
と宣言した上で,
#codeprettify(lang-fortran){{
write(fmt1,'(I0)') n_foobar
fmt1 = '(1pe14.5,'//trim(fmt1)//'(",",1pe14.5))'
write(51,fmt1) hogehoge, (foobar(i), i=1,n_foobar)
}}
とすると,fmt1は
とすると,文字列 fmt1 は
#codeprettify(lang-fortran){{
'(1pe14.5,<n_foobar>(",",1pe14.5))'
}}
となり,上のformat文を使ったのと同じようなことができる.もちろん ifort でもこれは可能だけど,上を使った方が楽.

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes