連番のファイル名を作りたいことがある。そのとき数字を文字列に
変換しないといけないのだけどread文を使えなどと書いているものもある。
それでもいいけれども以下のプログラムxtのほうが便利かもしれない。
program testxt
character(8)::xt
do i=1,100
write(6,*)'file'//trim(xt(i))
enddo
end program
character(8) function xt(num)
integer :: num
if(num==0) then
xt=''
return
endif
xt = char(48+mod(num,10))
if(num>9) xt = char(48+mod(num/10,10))//xt
if(num>99) xt = char(48+mod(num/100,10))//xt
if(num>999) xt = char(48+mod(num/1000,10))//xt
if(num>9999) xt = char(48+mod(num/10000,10))//xt
if(num>99999) xt = char(48+mod(num/100000,10))//xt
if(num>999999) call exit(-1)
xt='.'//xt
END function xt
追記:fortranプログラムでもcall exitで終了しないとそれをドライブするシステム側でがエラーキャッチできない。