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
Fortran 变量名中不再允许使用空格吗_Fortran_Fortran90_Fortran77 - Fatal编程技术网

Fortran 变量名中不再允许使用空格吗

Fortran 变量名中不再允许使用空格吗,fortran,fortran90,fortran77,Fortran,Fortran90,Fortran77,当我在大学的时候,在Fortran IV中,我们曾经能够编写这样的程序 program main integer his days, her days, total of days his days = 15 her days = 25 total of days = his days + herdays write(5,100) total of days 100 format(1X, I10)

当我在大学的时候,在Fortran IV中,我们曾经能够编写这样的程序

      program main
      integer his days, her days, total of days

      his days = 15
      her      days = 25
      total of days = his     days + herdays

      write(5,100) total of days
100   format(1X, I10)
      stop
      end program
我尝试将其构建为一个F77程序,它编译并运行。我不知道在F77中是否明确允许使用空格,但我记得在Fortran IV(66)中用变量中的空格编写程序。它在gfortran、Powerstation 4、Silverfrost和一个旧的g77编译器中构建和运行。大概它也会在IVF编译器上工作(因为IVF在前世是Powerstation4)。我现在没有一个。如果我告诉编译器它是F90/95。。。程序,它甚至不编译

f90test.f90:2:17:

   integer his days, her days, total of days
             1
Error: Syntax error in data declaration at (1)
f90test.f90:4:6:

   his days = 15
  1
Error: Unclassifiable statement at (1)
f90test.f90:5:6:

   her      days = 25
  1
Error: Unclassifiable statement at (1)
f90test.f90:6:6:

   total of days = his     days + herdays
  1
Error: Unclassifiable statement at (1)
f90test.f90:8:21:

   print *, total of days
                 1
Error: Syntax error in PRINT statement at (1)
这两个问题是

  • F77中的变量名是否允许使用空格?我能找到的所有参考文献实际上都没有说空格是允许的,或者可能作者不知道空格是允许的
  • 变量名中的空格在F90中是否已明确删除

  • 使用
    .f90
    文件扩展名时,它被视为自由格式的源文件。在自由格式中,空格确实很重要。此源代码形式是在Fortran 90中引入的。为了向后兼容,关键字可以以拆分方式和非拆分方式使用(
    GOTO
    GOTO
    END IF
    ENDIF
    )。但是,标识符(名称)不允许在此源表单中包含空格

    如果要使用固定格式源文件,请使用
    .f
    .for
    。最好查阅编译器手册,了解它允许哪些扩展。固定源格式在今天仍然是有效的源格式,尽管在Fortran 2018中标记为过时。空间在固定源代码形式中没有任何意义,即使它是Fortran 90甚至Fortran 2018代码


    请注意,今天的编译器将大多数代码编译为某种新标准(2003、2008或2018),无论扩展是什么。值得注意的是,扩展名.f90并不被视为Fortran 90,它只是在大多数(或所有?)编译器中标记源文件格式。另请参见此命名约定不是由标准定义的,而是非常通用的。

    当您使用
    .f90
    文件扩展名时,它被视为自由格式的源文件。在自由格式中,空格确实很重要。此源代码形式是在Fortran 90中引入的。为了向后兼容,关键字可以以拆分方式和非拆分方式使用(
    GOTO
    GOTO
    END IF
    ENDIF
    )。但是,标识符(名称)不允许在此源表单中包含空格

    如果要使用固定格式源文件,请使用
    .f
    .for
    。最好查阅编译器手册,了解它允许哪些扩展。固定源格式在今天仍然是有效的源格式,尽管在Fortran 2018中标记为过时。空间在固定源代码形式中没有任何意义,即使它是Fortran 90甚至Fortran 2018代码


    请注意,今天的编译器将大多数代码编译为某种新标准(2003、2008或2018),无论扩展是什么。值得注意的是,扩展名.f90并不被视为Fortran 90,它只是在大多数(或所有?)编译器中标记源文件格式。另请参见本标准未定义此命名约定,但它非常通用。

    Fortran IV和Fortran 77都允许在名称和关键字中使用空格,但它们的名称限制为6个字母。因此,在这两种方言的编译器的严格实现中,不允许所有变量名示例

    Fortran IV和Fortran 77都允许在名称和关键字中使用空格,但它们的名称限制为6个字母。因此,在这两种方言的编译器的严格实现中,不允许所有变量名示例

    它们可能是供应商的扩展。没有一个编译器对此表示不满。有可能像一些旧的实现一样,它们允许可变长度的名称,但只识别前6个字符,因此氧气与氧化剂相同。当我再次使用机器时,我会测试一下。它们可能是供应商的扩展。没有一个编译器对此表示不满。有可能像一些旧的实现一样,它们允许可变长度的名称,但只识别前6个字符,因此氧气与氧化剂相同。等我再上机器时,我会测试一下。