Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scons:“FORTRAN*”变量在构建FORTRAN时的用途是什么?_Fortran_Scons - Fatal编程技术网

Scons:“FORTRAN*”变量在构建FORTRAN时的用途是什么?

Scons:“FORTRAN*”变量在构建FORTRAN时的用途是什么?,fortran,scons,Fortran,Scons,SCON中FORTRAN*变量的用途是什么?手册页将其描述为所有Fortran版本的默认设置。但据我所知,在实践中,它们从未被使用,因为不同Fortran方言的特定变量总是优先(F77*,F90*,F95*) 是否有办法将文件扩展名映射更改为Fortran方言,以便将某些文件映射为默认文件?查看SCons源代码(尤其是工具/fortrancomon.py),似乎Fortran与F77,F90一起被视为方言,F95和F03而不是它们的父对象。看起来变量的FORTRAN变量将用于名为.f,.for,

SCON中
FORTRAN*
变量的用途是什么?手册页将其描述为所有Fortran版本的默认设置。但据我所知,在实践中,它们从未被使用,因为不同Fortran方言的特定变量总是优先(
F77*
F90*
F95*


是否有办法将文件扩展名映射更改为Fortran方言,以便将某些文件映射为默认文件?

查看SCons源代码(尤其是工具/fortrancomon.py),似乎
Fortran
F77
F90
一起被视为方言,
F95
F03
而不是它们的父对象。看起来变量的
FORTRAN
变量将用于名为
.f
.for
.ftn
.fpp
.fpp
的源文件,尽管它们可以从变量
fortranfilesuffix
fortranpfilesuffix
中重写

设置此设置的代码是:

def add_fortran_to_env(env):
    """Add Builders and construction variables for Fortran to an Environment."""
    try:
        FortranSuffixes = env['FORTRANFILESUFFIXES']
    except KeyError:
        FortranSuffixes = ['.f', '.for', '.ftn']

    #print "Adding %s to fortran suffixes" % FortranSuffixes
    try:
        FortranPPSuffixes = env['FORTRANPPFILESUFFIXES']
    except KeyError:
        FortranPPSuffixes = ['.fpp', '.FPP']

    DialectAddToEnv(env, "FORTRAN", FortranSuffixes,
                    FortranPPSuffixes, support_module = 1)
其中
方言addtoenv
为Fortran构建变量提供值,例如(
方言
是传递给函数的第二个变量):

设置
F77
F90
F95
等的代码非常相似,例如:

def add_f90_to_env(env):
    """Add Builders and construction variables for f90 to an Environment."""
    try:
        F90Suffixes = env['F90FILESUFFIXES']
    except KeyError:
        F90Suffixes = ['.f90']

    #print "Adding %s to f90 suffixes" % F90Suffixes
    try:
        F90PPSuffixes = env['F90PPFILESUFFIXES']
    except KeyError:
        F90PPSuffixes = []

    DialectAddToEnv(env, "F90", F90Suffixes, F90PPSuffixes,
                    support_module = 1)

没有任何机制可以从一种方言退回到
FORTRAN
。每个方言(包括
FORTRAN
)都是独立的,并与文件名结尾进行映射,文件名结尾是可配置的。

我必须确认您的观察,它们也不适用于我。我必须使用F90*即使手册上有不同的说明。我不知道如何改变这种行为。如何配置后缀到方言的映射?在scons 2.3.4中,只有一个Fortransuffix变量包含所有方言的后缀。
def add_f90_to_env(env):
    """Add Builders and construction variables for f90 to an Environment."""
    try:
        F90Suffixes = env['F90FILESUFFIXES']
    except KeyError:
        F90Suffixes = ['.f90']

    #print "Adding %s to f90 suffixes" % F90Suffixes
    try:
        F90PPSuffixes = env['F90PPFILESUFFIXES']
    except KeyError:
        F90PPSuffixes = []

    DialectAddToEnv(env, "F90", F90Suffixes, F90PPSuffixes,
                    support_module = 1)