Fortran Coder

标题: 求助大佬,关于common的用法疑问 [打印本页]

作者: zs12033209    时间: 2023-2-16 17:31
标题: 求助大佬,关于common的用法疑问
本帖最后由 zs12033209 于 2023-2-16 20:25 编辑

我用common定义了一些变量,包括数组等,单独放在一个文件里,如common /dddd/ a,b, tot1(nmax,nmax),tot2(nmax,nmax)......, 问题1:这些变量放置的顺序是否与主程序/子程序中对应变量出现的顺序必须一样才能保证变量的值准确或者不报错;问题2:当第一次调用子程序时common里的变量值没问题,运行无误,而第二次从主程序进入子程序时common里的部分变量值变为了0(通过单步调试发现进入子程序前不为0,而进入子程序后变为了0),导致程序无法运行,请问一下有没有解决办法,感谢各位了!!!

ps:不考虑mod.的语法代替common(原始代码太多,庞大了)


作者: fcode    时间: 2023-2-16 21:09
1. 是的,顺序,变量类型,精度,必须完全一致。
2. 情况太多了,需要代码调试才能判断问题。
作者: zs12033209    时间: 2023-2-17 09:20
fcode 发表于 2023-2-16 21:09
1. 是的,顺序,变量类型,精度,必须完全一致。
2. 情况太多了,需要代码调试才能判断问题。 ...

感谢大佬回复,也就是说主程序中变量出现的顺序必须是a,b, tot1(nmax,nmax),tot2(nmax,nmax)......,而以tot1(nmax,nmax),tot2(nmax,nmax),a,b......出现都会使得变量值不对是吗?
作者: fcode    时间: 2023-2-17 16:54
是的,不对。




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2