Fortran アプリケーションでネットワーク機能を呼び出せるようにしたいと考えています。私の上司は、C と Fortran を使用する代わりに、Fortran ですべてを行うように私に求めています。Windows で PGI の Fortran コンパイラを使用するバージョンのアプリケーションを既に作成しています。Linux に移行しており、おそらく Linux のコンパイラを使用する予定です。現在、gfortran を使用しています。
これらのネットワーク呼び出し用のインターフェイスを作成し、すべてをコンパイルしてリンクします。以下のコードは、インターフェイスと定数がモジュール内にあることを除いて、私がやっていることと似ています。
PROGRAM MAIN
    INTEGER,PARAMETER  ::AF_INET = 2
    INTEGER,PARAMETER  ::SOCK_STREAM = 1
    INTEGER,PARAMETER  ::IPPROTO_TCP = 6
    INTERFACE
      FUNCTION socket(domain,type,protocol)
        INTEGER  ::socket,domain,type,protocol
      END FUNCTION
    END INTERFACE
    sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)
    WRTIE(*,*)"Socket returned: ",sock
END PROGRAM
プログラムを実行すると、ソケット関数が失敗して -1 が返されます。何が起こっているのかよくわかりません。コマンドラインにライブラリを追加していないので、デフォルトのライブラリと正しくリンクしていると思います。を使用してコンパイルします
gfortran -o MAIN_PROGRAM MAIN_PROGRAM.f90 -fno-underscoring