GFortran没有';我不知道系统

GFortran没有';我不知道系统,fortran,gfortran,Fortran,Gfortran,我试图用Fortran执行一个命令,因为我们的集群使用旧的编译器,所以我不能使用execute_命令行。因此,我尝试切换到系统: succ = system("zip -0q " // zipfile & // " " // npy_name) if(succ /= 0) then write (*,*) "Can't execute zip command" endif 对于IFort

我试图用Fortran执行一个命令,因为我们的集群使用旧的编译器,所以我不能使用execute_命令行。因此,我尝试切换到系统:

    succ = system("zip -0q " // zipfile &
                             // " " // npy_name)
    if(succ /=  0) then
        write (*,*) "Can't execute zip command"
    endif
对于IFort,我可以使用:

    USE IFPORT
而且效果很好。GFortran不知道这个库(因为它是intels),所以我对它进行了注释,然后得到:

~/NPY-for-Fortran/src/npy.f90:52:15:

         succ = system("rm " // npy_name)
               1
Error: Function ‘system’ at (1) has no IMPLICIT type
如何在命令行中执行命令,使其在新旧编译器以及Intel&GNU上工作?如果您需要完整的工作环境,这是整个sourcefile:


系统是GFortran中GNU扩展标准的一部分,因此您必须使用该标准(例如,不是std=f95)


这是默认值。您确定std=f95会删除它吗?扩展内部函数不违反标准,它们是允许的。是的,因为他没有显示他的编译器调用,我假设他的调用(或他的环境)更改了默认值。不,我不确定它是否能解决问题。这只是最明显的策略,它确实解决了问题。我有-std=f2008,现在它可以工作了。ThanksI一直将其用作子程序,
调用系统(…)
。FWIW.@agentp--您可以“调用”它,也可以将其用作返回系统命令返回值的函数。在系统不可用之前,必须返回gfortran 4.1。支持一个旧的/有限的版本不会是我优先考虑的问题。根据当前的文档,它可以用任何一种方式,但我不知道旧的编译器是否总是这样<代码>ifort不需要
使用IFPORT
如果您顺便使用子例程表单。如果不使用IFPORT,我的ifort版本17.0.4不会编译它。
gfortran -std=gnu file.f90