主题:用CVF写一个很大的文件时出错
lvfortran
[专家分:0] 发布于 2011-07-06 11:00:00
......
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个回复)
沙发
cgl_lgs [专家分:21040] 发布于 2011-07-06 23:10:00
文件超过2GB了?
文件系统是Fat32还是NTFS?
板凳
臭石头雪球 [专家分:23030] 发布于 2011-07-07 08:49:00
3390 3029.500
3391 3029.750
从这个趋势来看,3300 行,每行 两个数字。应该没超过 2GB。
3 楼
lvfortran [专家分:0] 发布于 2011-07-07 09:14:00
是的,刚好超过2G时出错。我原来是在windows系统下用Compaq Visual Fortran编译,硬盘为NTFS格式的,切空间足够大。如果换成ubuntu下的Intel Fortran,则不会出现上面的错误。
4 楼
bshine1225 [专家分:720] 发布于 2011-07-07 10:30:00
刚搜了一下,LINXU下写文件会有一个2GB大小的限制。解决方法你可以再去搜一下。
5 楼
cgl_lgs [专家分:21040] 发布于 2011-07-07 10:56:00
在WIN系统下NTFS倒是支持超过2GB的文件,但如果编译器使用的API不支持大文件则有可能会导致程序崩溃,没办法,换个编译器试试吧。
6 楼
bshine1225 [专家分:720] 发布于 2011-07-07 11:52:00
[quote]在WIN系统下NTFS倒是支持超过2GB的文件,但如果编译器使用的API不支持大文件则有可能会导致程序崩溃,没办法,换个编译器试试吧。[/quote]
不一定要换编译器,我看有人在GCC下加个编译参数就可以突破这个限制。
http://hi.baidu.com/corylus/blog/item/9293885267f3e4060df3e35b.html
gfortran怎么弄还没找到
7 楼
dongyuanxun [专家分:7180] 发布于 2011-07-07 17:42:00
[quote][quote]在WIN系统下NTFS倒是支持超过2GB的文件,但如果编译器使用的API不支持大文件则有可能会导致程序崩溃,没办法,换个编译器试试吧。[/quote]
不一定要换编译器,我看有人在GCC下加个编译参数就可以突破这个限制。
http://hi.baidu.com/corylus/blog/item/9293885267f3e4060df3e35b.html
gfortran怎么弄还没找到[/quote]
一样的,因为这个都是传递给glibc的,编译器本身无用,所以得看你glibc支持与否
windows下无效,因为没有glibc
8 楼
cgl_lgs [专家分:21040] 发布于 2011-07-07 20:37:00
[quote][quote]在WIN系统下NTFS倒是支持超过2GB的文件,但如果编译器使用的API不支持大文件则有可能会导致程序崩溃,没办法,换个编译器试试吧。[/quote]
不一定要换编译器,我看有人在GCC下加个编译参数就可以突破这个限制。
http://hi.baidu.com/corylus/blog/item/9293885267f3e4060df3e35b.html
gfortran怎么弄还没找到[/quote]
拜托,人家用的是CVF。。。你跟人家说gfortran。。。
9 楼
bshine1225 [专家分:720] 发布于 2011-07-08 15:12:00
没注意,呵呵
10 楼
lvfortran [专家分:0] 发布于 2011-07-10 11:48:00
谢谢各位高手的指点,我用的是windows下的Compaq Visual Fortran。现在换到linux系统下,用Interl Fortran编译,则不会出现上述错误。应该是跟编译器有关系。继续请各位Fortran高手赐教。
我来回复