如何声明全局变量

时间:2017-05-04 10:12:38

标签: fortran

我有一个程序在同一个程序中调用函数但是我想在顶部声明和初始化变量并在程序结束时访问它们。

!Declaration 
INTEGER TOPCHORD,BOTCHORD, SUPPS, PURLINS;

!Initialization
! Define Layers for connecting lines
TOPCHORD = 32
BOTCHORD = 32
SUPPS    = 36
PURLINS  = 30

INTEGER FUNCTION IFLANGE1(IEND1,IEND2,ISUP)

    IFLANGE1=TOPCHORD

    SELECT CASE(IEND1)
        CASE(2,4,6,8,9,10)
            IFLANGE1=BOTCHORD
            IF(ISUP.EQ.1)IFLANGE1=SUPPS
    END SELECT

    SELECT CASE(IEND2)
        CASE(2,4,6,8,9,10)
            IFLANGE1=BOTCHORD
            IF(ISUP.EQ.1)IFLANGE1=SUPPS
    END SELECT

    RETURN
END 

我得到的错误是变量'SUPPS'被引用但未设置

1 个答案:

答案 0 :(得分:1)

您可能希望查看文档 - 您遗漏了几个重要的陈述。 (同时尝试始终包含default: &default adapter: postgresql pool: 5 encoding: UTF-8 database: TestApp username: sample password: pwd123 development: <<: *default host: localhost - 这对于捕获某些问题非常有帮助。)

应该编译的略微修改的代码是

implicit none

这不是最好的风格等,但编译的最小更改次数。

对于任何稍微复杂的程序,我强烈建议使用模块来存储您想要从代码的不同部分访问的变量(以及程序)。