y**i 发帖数: 357 | 1 调程序时偶然发现的,只要将以下五行加到Fortran90的程序中,再让f90来编译就可以让f90当掉. 在UltraSparc10上可以吃掉300M内存,生成的.o有160M.
(这Code是标准的f90,没有任何语法错误, 用Compaq(DEC)的VisualFortran编译就没问题。)
下面就是,考下来,取名blow.f90, 然后运行 f90 -c blow.f90
Program Blow
INTEGER, PARAMETER :: s = 5000000 !! s must be a large number
DOUBLE PRECISION a(s)
DOUBLE PRECISION b(s)
DOUBLE PRECISION c(s)
REAL :: r=1.1 !! can assign 'r' any type, integer, double precision ...
End Program Blow
让f90编译器傻掉的是最后一句:'REAL :: r = ...', 我搞不懂为什么会这样,写成
'REAL | y**i 发帖数: 357 | 2 想出点门到了,应该是Sun f90 compiler的一个bug。f90好像会把夹
在两个Constant定义中的其他定义也都当成Constant一样把数据生成
在代码中,但实际上并不是const,在run time是可以改变的。
哎,还是Windows下的VisualFortran好,bug少,而且数组在刚运行
并不占内存,只有真正用到时才动态增加要用的内存。
【在 y**i 的大作中提到】 : 调程序时偶然发现的,只要将以下五行加到Fortran90的程序中,再让f90来编译就可以让f90当掉. 在UltraSparc10上可以吃掉300M内存,生成的.o有160M. : (这Code是标准的f90,没有任何语法错误, 用Compaq(DEC)的VisualFortran编译就没问题。) : 下面就是,考下来,取名blow.f90, 然后运行 f90 -c blow.f90 : Program Blow : INTEGER, PARAMETER :: s = 5000000 !! s must be a large number : DOUBLE PRECISION a(s) : DOUBLE PRECISION b(s) : DOUBLE PRECISION c(s) : REAL :: r=1.1 !! can assign 'r' any type, integer, double precision ... : End Program Blow
| l********l 发帖数: 148 | 3 kick kick kick
sun 就是好就是好
windows 就是破就是破
打倒微软!!!
在 yfei (frozen food) 的大作中提到: 】 |
|