Fortran Coder

标题: PGI及GFortran上使用SGL绘图库等问题 [打印本页]

作者: wogai1234    时间: 2015-1-23 22:35
标题: PGI及GFortran上使用SGL绘图库等问题
小弟是新手,之前有学过Fortran的语法和程序设计之类的,但是最近才真正地开始上手。那么问题来了:我原先用的事VS2008+IVF, 可是现在学校的机子只有VS2012+PGI。这样就导致原来很多代码运行起来老是出错。
在实验室师姐师兄推荐下,自己又下了个Code block+GFortran, 因为编译器的问题,运行依旧出错。
1. IVF中的SGL绘图在PGI和GFortran中都没法用了,请问有何替代品么?如何集成到PGI或者GF中去?
2. SGL的dflib.mod 没法用了,说是没声明,能否给我dflib全局变量中的内容 我单独声明下试试看。
3. IVF中原先的open命令在PGI中无法打开某一个文件,该文件在我笔记本上的VS2008+IVF可以打开,并执行代码中的命令。请问是什么原因?
4. yield_stress=stress(pre_yield_time)+(stress(post_yield_time)-stress(pre_yield_time))*(0.001-strain(pre_yield_time))/(strain(post_yield_time)-strain(pre_yield_time))  这个式子Code block+GF提示:invalid form of array reference 怎么改啊?谢谢
原命令很简单:open(10, file = 'xyzInitial.dat', form = 'formatted', status = 'old', iostat = ioErr) 到这里就没法运行下去了。
十分感谢各位大侠!!
小弟真是新手。

作者: 楚香饭    时间: 2015-1-23 23:00
1. SGL 是什么?彭国伦的库?貌似有源代码吧?在 PGI 和 GFortran 上重新编译一下就好了。( PGI 我没用过,也没用 gfortran 编译过 SGL )

   我对 SGL 没有什么了解,但是开源的库应该都没问题的。

2. 这个 dflib.mod 貌似是 CVF 的东西,在新的编译器环境下,你不需要它。如果你编译的时候提示需要,尝试重新编译 SGL

3. 你的 Open 语句非常标准,PGI 没有道理不支持的。请给出错误提示以便判断。
作者: wogai1234    时间: 2015-1-23 23:16
楚香饭 发表于 2015-1-23 23:00
1. SGL 是什么?彭国伦的库?貌似有源代码吧?在 PGI 和 GFortran 上重新编译一下就好了。( PGI 我没用过 ...

对的, SGL是彭国伦那个书里面说的。用PGI 说是代码里面的dflib module 没有声明。 我百度了一下, 有人说dfilb mod 是SGL里包含的。
open的那个,build之后run, 立马就死机了。。。。我用Ctrl+F5去run, 因为我之前的代码有 ioErr/=0 就显示 xyzinitial file open fails,这才知道是这里出的问题
能否再看看我补充的第四点,十分感谢!

作者: 楚香饭    时间: 2015-1-23 23:49
本帖最后由 楚香饭 于 2015-1-23 23:54 编辑

1. DFLib.mod 不是 SGL 的,可以肯定是 CVF 的。Digital Fortran Library 的缩写。
  我在彭国伦光盘上没有找到 DFLib.mod,反而在 CVF 安装光盘里找到了。
2. 如果你的 SGL 没有重新编译,请不要在 GFortran / PGI 上使用。编译后的函数库,面向不同平台的是不通用的。(所以很多商业的函数库也是分别销售的,甚至价格都不同)
3. 我对 PGI 不了解。如果遇到运行后死掉的问题,建议你单步调试。(PGI应该有调试器)这个问题可以肯定不是出在open语句的代码上。
4. yield_stress=stress(pre_yield_time)+(stress(post_yield_time)-stress(pre_yield_time))*(0.001-strain(pre_yield_time))/(strain(post_yield_time)-strain(pre_yield_time))   这个句子我这里可以正常编译。(GFortran)
作者: wogai1234    时间: 2015-1-24 13:21
楚香饭 发表于 2015-1-23 23:49
1. DFLib.mod 不是 SGL 的,可以肯定是 CVF 的。Digital Fortran Library 的缩写。
  我在彭国伦光盘上没有 ...

十分感谢




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