1 名前:デフォルトの名無しさん [2006/01/24(火) 09:48:23 ] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 FORTRAN使いが優しくコメントを返しますが、 お礼はFORTRANの布教と初心者の救済をお願いします。
808 名前:デフォルトの名無しさん mailto:sage [2006/08/02(水) 00:28:46 ] >>807 inquireを使えば何とかならないかな。 program nurupo logical :: opened character(len=6) :: string open(10,file="test10") i=10 do inquire(unit=i,opened=opened) if(.not.opened) then write(string,'("test",i2)') i open(io,file=string) write(*,'(i2," opened")') i exit endif i=i+1 enddo end program nurupo
809 名前:デフォルトの名無しさん [2006/08/02(水) 00:51:00 ] >>807 Fortran規格内では無いと思う。 番号を指定しない入出力は、PRINTとREADだが これは標準出力ということだから意味ないし〜 同時にアクセスするのでなければ、いちいちOPEN/CLOSEするしかないかも。 F90ではAPPEND MODEでOPEN出来たりするので77時代よりは使いよい。 3桁の装置番号が使える系もあったりするが、大抵は2桁までなので使用ファイルが増えると困ることがある。 FORTRANの装置番号は確かに改良の余地がある。 ISOにコネのある人は、次の規格で何とかするように提案してくださいw この他にも、01〜09あたりや90番台が予約されている処理系もあったりするので、 知らずに移植したりすると、奇怪な挙動を示して泣く。 まぁEBCDIC/ASCII 問題、浮動小数のFORMAT問題、IO STATの返り値問題と 数十年来の問題が規格において徐々に解決してきているので、装置番号問題も 日ごろから不平不満を漏らしていれば、いつかは解決すると思うw
810 名前:デフォルトの名無しさん mailto:sage [2006/08/02(水) 04:00:00 ] 改良と言うか、装置番号をこちら側から指定するっつー仕様自体がアレだよなあ。 そんなもんは内部で決めてもらわないと。