首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Fortran 77如何分配公共块变量?

Fortran 77是一种早期的编程语言,主要用于科学计算和数据处理。在Fortran 77中,公共块变量是一种特殊的变量,可以在程序中的多个地方使用,而无需声明和分配。这些变量通常用于传递或共享数据。

在Fortran 77中,分配公共块变量的方法因编译器而异,但通常需要使用特殊的语句来声明和分配这些变量。这些语句通常包括对共享变量的引用和赋值,以及对其使用方式的限制。例如,在使用共享变量之前,可能需要声明其类型和名称,并指定其在程序中的使用方式。

以下是一个简单的Fortran 77程序,演示如何分配公共块变量:

代码语言:txt
复制
program shared_variables
  implicit none
  ! 声明一个整型公共块变量
  integer, public :: shared_int = 10
  ! 声明一个字符型公共块变量
  character(len=10), public :: shared_char = 'Hello, world!'
  ! 输出共享变量
  print *, shared_int, shared_char
end program shared_variables

在上面的程序中,我们声明了两个公共块变量:shared_intshared_char。这两个变量都在程序的多个地方共享,并且不需要单独声明和分配。在程序的最后,我们使用print语句输出了这两个变量的值。

需要注意的是,在Fortran 77中,公共块变量的使用方式比较有限,因为它们通常只适用于简单的数据共享和传递。在现代编程语言中,更常见的是使用全局变量或局部变量来实现数据共享和传递。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 通过写“猜数字”游戏学习 Fortran | Linux 中国

    Fortran 77 是我学习的第一门编译型编程语言。一开始时,我自学了如何在 Apple II 上用 BASIC 编写程序,后来又学会在 DOS 上用 QBasic 编写程序。...“猜数字”程序练习了编程语言中的几个概念:如何变量赋值、如何编写语句以及如何执行条件判断和循环。这是学习新编程语言时一个很好的的实践案例。...Fortran 编程基础 虽然 Fortran 这些年来一直在更新,但我最熟悉的还是 Fortran 77,这是我多年前学习的实现版本。...前三行是注释,表示程序的功能。第四行 PROGRAM GUESSNUM 将其标识为一个 程序(program),并由最后一行的 END 语句关闭。 定义变量后,程序会提示用户输入随机数种子。...INT 函数将结果截断为整数;因此,变量 NUMBER 就是一个介于 1 到 100 之间的随机数。 程序会给出提示,然后进入一个循环。

    1.9K30

    f2py:连接 FORTRAN 和 Python 的桥梁

    f2py 是 numpy 的一部分,当你安装了 numpy 时就已经包含 f2py 了,其可以被用来构建 Python C/API 扩展模块,从而更容易调用 FORTRAN77/90/95 子程序,FORTRAN77...common 数据FORTRAN90/95 module 模块。...关于其优点不再多说,安装部分不再赘述,主要说一下如何使用 Windows 如果直接使用 f2py 进行程序的转换,很可能会出现问题。当然,如果你已经配置好环境了的话是没问题的。...Linux Linux 系统下只要安装了 python 和 numpy,并设置好了环境变量,可以直接使用,比在 windows 下使用要简单很多,不再赘述。...当然在编写可转换的 fortran 程序时很容易出错,下一次讲一下常见错误,以及如何看错误并解决之。

    5.1K10

    因为对Perl和Python不满?圣诞节无聊?编程语言的出现都这么随意吗?

    Fortran I 支持:变量变量名最多 6 个字符)、If 和 do 语句、格式化 IO。...1978 年的 Fortran 77 是非重要的标准化版本,这时的 Fortran 语言已经大量的引进了其他计算机语言的特点,例如字符串处理、逻辑判断、带 else 子句的 if 语句等。...麦卡锡在 IBM 研究代数表达式的微分运算时,产生了一系列对语言需求,包括:用数学函数控制流程的方法(即,递归和条件表达式);列表的自动分配;废弃列表的隐士回收。...Algol 60,发表于 1960 年,在 Algol 58 的基础上做了重大改进:移入结构、 支持两种子程序参数传递(按值传递和按名传递)、允许递归、支持本地数组(在栈上分配数组)。...由于 CLR 和 IL 公共类库作为 Window 操作系统的一部分捆绑发布,所以 IL 语言程序可以再 Window 操作系统上直接执行,就行机器指令一样。

    1.6K60

    c和fortran混编

    f的文件它自然会用g77或者f77之类的来编译。与 g77 -c main.f完全一样。...就好像gcc默认会链接c库一样,g77默认会链接 fortran的一些基本的,标准的库;另一个办法就是查明g77会链接哪些基本的,标准的fortran库,这也很简单在编译链接fortran程序时 加上-...objdum的功能比nm更强大) 有很多东西很基础我还罗嗦了很久,让大家见笑了:) 还有一件事,那就是我这里链接采用了gcc -l的方式,更基本的是ld的方式,只要你知道链接哪些库,链接的顺序如何即可...但是为了简单安全方便,还是建议直接用相应的编译器完成链接工作(比如 fortran就用g77),因为它们的链接顺序已经理好了(并且它们除了链接自己的库还链接c库,而gcc只链接c库,所以用它们不用担心链不到...这是编译器(f77)的一个命名规则,没有为什么,它就是把你在fortran中的函数名字全转换成小写,然后在最后加一个下划线。我昨天搜了很多版本,头昏脑胀,怎么调都说找不到,也没有想到要自己看看。

    1.6K41

    NumPy 1.26 中文文档(四十四)

    numpy 分配中的 setup.py 文件是如何使用Configuration实例的很好的例子。 todict() 返回一个与 distutils setup 函数的关键字参数兼容的字典。...have_f77c() 检查 Fortran 77 编译器的可用性。 在源代码生成函数中使用它,以确保设置的发行实例已被初始化。...注 如果存在 Fortran 77 编译器(因为简单的 Fortran 77 代码能够成功编译),则为真。 have_f90c() 检查 Fortran 90 编译器的可用性。...have_f77c() 检查是否可用 Fortran 77 编译器。 在源生成函数内部使用,以确保设置分发实例已被初始化。...注意 如果可用(因为能够成功编译简单的 Fortran 77 代码),则返回 True。 have_f90c() 检查是否可用 Fortran 90 编译器。

    24310

    基于netcdf库的nc文件读写

    因为近期涉及到预报系统部署和后处理开发的任务,为了和预报模式更好的兼容,一些数据处理工作就交给Fortran来做了。把Fortran和C的NetCDF库API部分内容做了一个整理。...NetCDF库提供了两种语言的函数API,一种是C,另一种是Fortran,其中又分为F77和F90两种方式的接口。...通过函数开头的字符可以区分函数接口,C语言的函数接口以nc_开头,F77函数接口以nf_开头,F90函数接口以nf90_开头。...函数概览 NetCDF库的函数操作分为几个类别,以下以C语言API为例,Fortran的API类似,可能函数的参数有些区别。...nc_get_var / 获取变量值 / 其它操作 nc_close / 关闭打开的文件 如果使用Fortran的API接口,则改为如下命令: nf90_open

    4.4K22

    Fortran 与 C 数组传递的三种方式

    02 Fortran 数组 在高级编程语言初期,Fortran 数组设计与 C 是一致的,只要拿到数组第一个元素的地址即可,相匹配上;但随着 Fortran 在科学计算领域的发展,其没有实现链表、哈希等内置数据结构...,却在数组这种适用于科学计算(矩阵线性代数)上花了不少设计,导致 F77 array(*) 与 F90 array(:) 这两种风格不同,前者与 C 兼容,实际上是地址引用(指针),后者则是 Fortran...当然了,Fortran 与 C 函数可以通过指针(地址)传递数组,FortranFortran 函数传递的方式,肯定也包括以上三种,以及新范式(:)的传递方式。...05 番外:在 Fortran 中访问 C 的本地数组变量 本贴原来主要关注在函数接口中传递数组(即访问函数堆栈中的数组变量),但有些人对在 Fortran 中访问 C 的本地数组变量感兴趣。...从 Fortran 中访问 C 的本地数组变量 (gitee.com) (https://gitee.com/zoziha/c2f-demo) 这时候一般分为两种情况,数组和数组指针。

    1.3K10

    大学课程 | 编译原理知识点

    综合属性,基本属性 了解几种运行环境的特点:Fortran77 完全静态,不允许递归调用。基于栈的C,C++,Pascal。...静态动态 在如 C 或 Pascal 这样的静态类型的语言中,变量或表达式的数据类型是一个重要的编译时属性。 FORTRAN7 7 中所有的变量都是静态分配。 程序的目标代码无疑是一个静态属性。...变量分配可以是静态的也可以是动态的,这依赖于语言和变量自身的特性 LIS P 中所有的变量是动态分配的。 C 和 Pasca l 语言混合了静态和动态的两种变量分配。...符号表的功能: (1) 建立存储信息 (2) 类型检查 (3) 数据地址 第七章 运行时的环境 运行环境 完全静态环境:FORTRAN77,所有数据都是静态的,执行期间保持固定。...这样的环境可用来实现没有指针或动态分配,且过程不可递归调用的语言。 基于栈的环境:C,C++,Pascal,Ada。在允许递归调用以及每一个调用中都重新分配局部变量的语言中,不能静态地分配活动记录。

    1.3K30

    我的第一门编程语言,你听说过吗?

    今天看到一则消息,FORTRAN 进入 Top 10,这到底是怎么回事? 点进去一看,不得了,原来是 67 岁的老牌语言 FORTRAN 连续两个月进入 TIOBE 排行榜 Top 10。...不过这门语言所涉及的编程概念,诸如变量、循环、函数等等,倒是一直有用,后面再学习其它编程语言,就非常容易上手。...FORTRAN 的初衷是为了让科学家和工程师能够更容易地编写数学和科学计算程序,而不需要深入了解底层的机器代码。这也难怪那个时候的工科院校,都选择 FORTRAN 作为学习的语言。...在其发展初期,FORTRAN 成为了科学计算的标准,广泛应用于航天、气象学、物理学、工程学等领域。FORTRAN 语言本身也在不断发展,记得我们当年使用的是 FORTRAN 77。...进入两千年之后,FORTRAN 似乎已经被抛弃。不仅在工业界,即使是工科院校,也不再首选 FORTRAN 语言,所以现在已经没有多少学生听说过这门语言。

    11410

    图灵奖12 —— 约翰·巴克斯,Fortran和BNF的发明人,却有着不幸的童年

    5 FORTRAN (1953 - 1958) 5.1 1953 年的状况 1953年,人们普遍知道如何制造我们今天所知道的计算机(即冯·诺伊曼架构)。...它有变量、表达式、赋值、用于操作整数和浮点数(数组)的控制结构,以及用户定义的函数。它缺少的是结构:所有变量都是全局的,没有动态存储(比如堆栈),所以递归是不可能的。...巴克斯后来谈到了语言设计过程: 在我们对语言设计问题的无知中------当然,我们对许多后来被认为很重要的问题一无所知,例如结构、条件表达式、类型声明------在我们看来,一旦我们掌握了赋值语句、下标变量和...它还使普通的FORTRAN语句与象征性的IBM 704指令混合成为可能,在这些指令中,操作数被FORTRAN变量替换。该系统于1958-1959年冬发布。...另外,新的是类型声明,而不是FORTRAN中隐式声明变量类型的变量命名方案。标识符可以是任意长的,包含大写或小写字母和数字的任意组合,唯一的限制是第一个符号必须是字母。

    1.5K20

    干货 | 国外大神总结的10个Java编程技巧!

    7 所有的变量和参数都用final声明 就像我说的。我不相信自己不会无意间重写了某个值。这么说来,我的确一点都不相信自己。因为: 这也是为什么所有的变量和参数都用final声明的原因。 ?...我希望Java能像Scala语言一样,人们在所有地方都直接用 val 来表示变量,甚至都不考虑易变性,除非明确需要的时候他们才用 var 来声明变量,但是这样的机会特别少。...10 用大括号隔开switch的每一个case 事实上,switch是最坑爹的语句,任何喝醉了或是赌输了的人都可以在某种语言中使用它。看看下面这个例子: ?...事实上,你甚至可以把case语句和 惊人的FORTRAN77项声明 类比,对于FORTRAN,它的神秘已经超越了它的功能。...我们可以通过添加简单的花括号为每一个case创建一个新的嵌套的作用域,当然不要忘了在每个 case 的语句最后加 break。 文章来源:Java技术栈 文章编辑:小柳

    62210

    对于CUDA Fortran开发者来说,函数传参真这么麻烦么?

    如果可行的话,请问该如何操作呢?我只知道present导语能够告知编译器该变量已经存在于数据区域中,那么如何让GPU计算得出的变量滞留在设备内存中,直接供给下一个subroutine使用呢?...直到数据区域结束再指明需要将哪些变量传输回主机内存。 代码有点长,大神终于抽开时间看了一下。 1. 首先,强烈反对使用common的形式进行数据传递。...这一点跟GPU无关,只要你用fortran,就会有人这么跟你说。因此,至于openACC支不支持用common传数据、怎么传、结果不正确一概不予回答。...其次,至于你的问题,可以用module数据的形式共享数据。我写了个简单的实例代码: 主程序如下: ? 数据文件如下: ? 子函数文件如下: ? 编译后用nvprof分析的结果: ?...此模型应该满足你的需求,也应该满足大部分openacc fortran程序的需求。 大神总结 ?

    89060
    领券