回 帖 发 新 帖 刷新版面

主题:用CVF写一个很大的文件时出错

......
3383    3027.750
3384    3028.000
3385    3028.250
3386    3028.500
3387    3028.750
3388    3029.000
3389    3029.250
3390    3029.500
3391    3029.750
forrtl: 试图将文件指针移到文件开头之前。
forrtl: severe (38): error during write, unit 100, file H:\GOCM_COARE\Surface fo
rcing\ERA_interim\era.in
Image              PC        Routine            Line        Source
ERAinterim_synopt  004157E9  Unknown               Unknown  Unknown
ERAinterim_synopt  00415647  Unknown               Unknown  Unknown
ERAinterim_synopt  00414824  Unknown               Unknown  Unknown
ERAinterim_synopt  00414C59  Unknown               Unknown  Unknown
ERAinterim_synopt  0040D2A8  Unknown               Unknown  Unknown
ERAinterim_synopt  00457223  Unknown               Unknown  Unknown
ERAinterim_synopt  00449AC9  Unknown               Unknown  Unknown
ERAinterim_synopt  00432E99  Unknown               Unknown  Unknown
kernel32.dll       7C817077  Unknown               Unknown  Unknown

Incrementally linked image--PC correlation disabled.
Press any key to continue

用Compaq Visual Fortran写一个很大的文件时,运行到80%时出现如上错误。硬盘空间充足。不知道什么原因。请高手指点,谢谢!

回复列表 (共13个回复)

沙发

文件超过2GB了?
文件系统是Fat32还是NTFS?

板凳

3390    3029.500
3391    3029.750

从这个趋势来看,3300 行,每行 两个数字。应该没超过 2GB。

3 楼


是的,刚好超过2G时出错。我原来是在windows系统下用Compaq Visual Fortran编译,硬盘为NTFS格式的,切空间足够大。如果换成ubuntu下的Intel Fortran,则不会出现上面的错误。

4 楼

刚搜了一下,LINXU下写文件会有一个2GB大小的限制。解决方法你可以再去搜一下。

5 楼

在WIN系统下NTFS倒是支持超过2GB的文件,但如果编译器使用的API不支持大文件则有可能会导致程序崩溃,没办法,换个编译器试试吧。

6 楼

[quote]在WIN系统下NTFS倒是支持超过2GB的文件,但如果编译器使用的API不支持大文件则有可能会导致程序崩溃,没办法,换个编译器试试吧。[/quote]
不一定要换编译器,我看有人在GCC下加个编译参数就可以突破这个限制。
http://hi.baidu.com/corylus/blog/item/9293885267f3e4060df3e35b.html
gfortran怎么弄还没找到

7 楼

[quote][quote]在WIN系统下NTFS倒是支持超过2GB的文件,但如果编译器使用的API不支持大文件则有可能会导致程序崩溃,没办法,换个编译器试试吧。[/quote]
不一定要换编译器,我看有人在GCC下加个编译参数就可以突破这个限制。
http://hi.baidu.com/corylus/blog/item/9293885267f3e4060df3e35b.html
gfortran怎么弄还没找到[/quote]
一样的,因为这个都是传递给glibc的,编译器本身无用,所以得看你glibc支持与否
windows下无效,因为没有glibc

8 楼

[quote][quote]在WIN系统下NTFS倒是支持超过2GB的文件,但如果编译器使用的API不支持大文件则有可能会导致程序崩溃,没办法,换个编译器试试吧。[/quote]
不一定要换编译器,我看有人在GCC下加个编译参数就可以突破这个限制。
http://hi.baidu.com/corylus/blog/item/9293885267f3e4060df3e35b.html
gfortran怎么弄还没找到[/quote]
拜托,人家用的是CVF。。。你跟人家说gfortran。。。

9 楼

没注意,呵呵

10 楼

谢谢各位高手的指点,我用的是windows下的Compaq Visual Fortran。现在换到linux系统下,用Interl Fortran编译,则不会出现上述错误。应该是跟编译器有关系。继续请各位Fortran高手赐教。

我来回复

您尚未登录,请登录后再回复。点此登录或注册