1

オペレーティング システムの種類を問い合わせる Fortran の関数はありますか? この型を文字列などとして指定しますか? 基本的に、関数 SYSTEM を使用して、Linux と Windows マシンの両方でプログラムを実行したいと考えています。関数 SYSTEM を使用する私のプログラムは Linux でうまく動作しますが、今はそれを一般的に行い、Windows でも実行したいと考えています。私が探しているこの関数がINQUIRE_SYSTEMと呼ばれているとしましょう。私のプログラムは次のようになります。

    USE IFPORT

    stringSYSTEM = INQUIRE_SYSTEM()

    if (TRIM(ADJUSTL(stringSYSTEM).eq.linux)) THEN ! linux systems
      I = SYSTEM("mv final.out restart.dat")
      If (I == -1) then
         errnum = ierrno( )
         print *, 'Error ', errnum
      end if
    else  !dos systems
      I = SYSTEM("rename final.out restart.dat")
      If (I == -1) then
      errnum = ierrno( )
      print *, 'Error ', errnum
    end if

助けてくれてありがとう。A.

4

1 に答える 1

1

1 つの方法は、プリプロセッサ マクロをチェックすることです。サポートする OS に応じてリストを作成します。プリプロセッサ ディレクティブで OS をチェックするにはどうすればよいですか? を参照してください。.

多くの Fortran コンパイラは、ファイル タイプが大文字の F90 の場合にプリプロセッサを実行します。または、コンパイラ オプションがあります。コード例:

#ifdef __GFORTRAN__ 
    write (*, '( "gfortran" )' )
#endif

Fortran プログラムの OS を知る必要があるのはなぜですか?

于 2013-07-03T21:18:24.993 に答える