有关fortran的若干问题

怎样能够让变量被全局使用,比如我已经在main里面定义了INTEGERNX,NY,NZ,我的某个子程序里面也要用,我还有在子程序里面重新定义吗?重新定义之后数据会进行传输... 怎样能够让变量被全局使用,比如我已经在main里面定义了INTEGER NX,NY,NZ,我的某个子程序里面也要用,我还有在子程序里面重新定义吗?重新定义之后数据会进行传输吗,还是根本就是两个?
我定义了一个动态数组,我仍然想像上面的问题一样全局使用,请问我是不是在main里面定义完了再加上common就好?动态数组能够common吗?其他子程序要使用的话怎么用?也要在里面重新定义加上common?
common用法怎么样?是只写一次以后子程序直接用还是每个要用的子程序都写上common?
PS:跪求天河流纹石大侠留下联系方式啊,QQ电话邮箱都行,感激不尽啊!我都向您提问无数次了,实在是问题过多啊,希望您可以留下一个联系方式,我的QQ,794587401,谢谢!
展开
 我来答
天河流纹石
2013-12-04 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7623
采纳率:76%
帮助的人:6611万
展开全部

主程序里的变量,默认情况下,在其他函数或子程序里是不能使用的。

这一点,等你书写比较大的代码就会懂了。这样保证了代码的可移植性,独立性!


试想一下,如果可以直接使用,将会多么麻烦,使用任何一个子程序时,都要避免使用与他内部全部变量相同名称的变量。如果我使用了1000个子程序,每个子程序里10个变量,我至少要避免使用10000个变量名字。天哪。


按照生活中的例子来说,一个建筑公司为别人提供建筑服务,他自己有2000个员工。它不但要保证2000个员工不能有重名。而且要求他的甲方,也就是想要建筑服务的公司,也不能有员工叫这些名字。这是多么难缠??


如果你要把变量传递到子程序中。有三个方法:

  1. 使用虚参和实参对应。这是常规方法。

  2. 使用 COMMON,但是目前这个语法已经建议不要使用了。

  3. 使用 Module,对于大量的数据,我建议你选择这种方式。


回答你的几个问题:

  1. 子程序和主程序里,相同名称的变量,如果没有上述三种方式的传递,那么根本就是两个变量。

  2. 动态数组无法通过 COMMON 传递。但可以通过 Module

  3. COMMON 建议不要使用了,改用 Module

来自:求助得到的回答
TOPMAD
2013-12-03 · TA获得超过201个赞
知道小有建树答主
回答量:79
采纳率:0%
帮助的人:83.1万
展开全部
不要用common了 好久之前的语法了

定义全局变量可以用parameter定好
如果参数是可变的
在子程序里面定义一下
比如 integer nx
......
call hellofriend(xx,yy,nx)
integer xx,yy,nx
就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式