LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: xgtan

求教PGI FORTRAN 编译问题。

[复制链接]
发表于 2009-5-10 06:22:08 | 显示全部楼层
ifort 11.0  编译通过了……

不过感觉很不是很好……那个 Makefile 文件很诡异,似乎有一处地方写错了才是。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-10 09:32:09 | 显示全部楼层
PGI FORTRAN装的似乎没错。我编了一个简单的测试程序,Makefile也是在原来的文件基础上改改文件名和目录。编译、连接、运行都很正常。我试试修改编译选项看看。
谢谢pingz提供的网址。但原系统是针对美国的业务环境,必须把它改成针对中国业务环境的系统。我们已经做了很多修改,因此不能用它编译好的。该软件是一个数据融合系统,后面可以接模式,你可以用它生成集合预报的初始场试试。
下面是我安装PGI F的过程:
进入解压目录
运行./install
安装目录给/usr/local/pgi
其它问题都给n
最后在/etc/bashrc中增加必要的环境变量PGI、PATH、MANPATH、LICIENSE。
回复 支持 反对

使用道具 举报

发表于 2009-5-10 14:37:12 | 显示全部楼层
不应该是编译器的问题。会不会是 ar 的问题?

我这里,单独编译 wind 模块下的最后是可以通过并生成 wind.exe 的。
  1. ifort main.f -w90 -w95 -cm -I../../src/include -I/usr/include -I../../src/lib/modules -O3 libwind.a ../../src/lib/wind/libwind.a ../../src/lib/liblaps.a ../../src/lib/util/libutil.a ../../src/lib/modules/libmodules.a   -L/usr/lib -lnetcdf   -lgcc -o wind.exe
  2. rm -f *.o
复制代码

看了一下 src/wind/Makefile 出错的那个 libwind.a 是用应该是用 ar 生成的($(ARCHIEVE)),但是我真不明白,为什么还要一个 libwind.a 已经被绕糊涂了……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-10 18:38:08 | 显示全部楼层
一个PGF就够我玩儿的了。ifort据说更复杂。我就算了吧。
谢谢pingz的帮助。这个软件是科研部门做的,是把多个人的成果接起来生成的。因此结构很乱,出现什么怪现象都是正常的。美国已经把LAPS放入他的业务系统AWIPS中,肯定做了很大的优化,但是那个是保密的,他不给你。
我们计划今年是学习阶段,先在美国人的基础上改,深入了解他的程序。明年就把他的算法精华抽出来,搞自己的系统。那时候就简单多了。
现在就当是学习一下编程吧。我现在又要满活别的事了。先把这事放一下,等有功夫了在仔细琢磨。再次感谢大家。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-17 16:11:48 | 显示全部楼层
问题终于解决了。是我的低级错误。因为我以前修改编译过这个软件,所以在我打包的文件中留有以前的残余。在编译前应该运行make clean清除这些残余。我只在部分目录中运行了make clean ,例如wind和lib/wind下面。可是在其它目录中也有对它有影响的库,例如lib/modules。我最后在软件的顶层安装目录(含最高级Makefile)下运行了make clean,把所有残余都清除后,再运行make就成功了。真是低级错误。希望大家吸取我的教训。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表