Fortran Coder

楼主: 我是处手
打印 上一主题 下一主题

[文件读写] forrtl: severe (29): file not found, unit 1, file 问题

[复制链接]

490

帖子

4

主题

0

精华

大宗师

F 币
3298 元
贡献
1948 点

水王勋章元老勋章热心勋章

11#
发表于 2014-4-30 10:00:30 | 只看该作者
本帖最后由 pasuka 于 2014-4-30 10:09 编辑
我是处手 发表于 2014-4-30 09:56
我使用的是compaq visual fortran6.5编辑器,程序好像是八几年的,我导师给我的,需要我做分离机械结构参数优 ...


我的建议:
为发论文毕业的话,就别折腾这种F77的古董了,直接上matlab,使用现成工具箱的话,代码量不会超过300行
btw,这样的导师一来不负责任,二来长期脱离科研第一线,三则高估了现在学生的学习能力和学习欲望了

40

帖子

8

主题

0

精华

熟手

F 币
91 元
贡献
105 点
12#
 楼主| 发表于 2014-4-30 10:07:36 | 只看该作者
除了这样,没有办法了吗?

490

帖子

4

主题

0

精华

大宗师

F 币
3298 元
贡献
1948 点

水王勋章元老勋章热心勋章

13#
发表于 2014-4-30 10:23:41 | 只看该作者
本帖最后由 pasuka 于 2014-4-30 10:25 编辑
我是处手 发表于 2014-4-30 10:07
除了这样,没有办法了吗?


1、从lz的发帖来看,我感觉不到lz有任何主动学习的欲望和想法,只是被动完成老板交代的任务;
2、如果1成立,那么多快好省地完成任务,按时发论文毕业且找到满意的工作才是最符合lz利益的
综上所述,我的建议就是彻底和fortran说88,投入matlab的怀抱,上手快,可以吃现成饭,网上参考资料也多,甚至可以说是信手拈来,最合适不过的敲门砖
若1不成立,那么请问lz花费多少精力在学习fortran和优化算法上面了呢?彭国伦的书看过了吗?本站的相关文章阅读了多少?优化算法的书又看了多少?文献又阅读了多少?
一分耕耘一分收获,读研做项目可以取巧,但是不能饭来张口,衣来伸手
以上是一家之言,仅供lz参考,人各有志,不能强求

评分

参与人数 1F 币 +30 贡献 +10 收起 理由
fcode + 30 + 10 很给力!

查看全部评分

1958

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1341 元
贡献
565 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

14#
发表于 2014-4-30 14:00:39 | 只看该作者
楼上说得对。

如果你打算静下来检查问题的错误,这里可能有一些线索。

[Fortran] 纯文本查看 复制代码
 WRITE(*,1060)I1,I2,I3,I4,I5,I6
1060  FORMAT(8X,'I1',8X,'I2',8X,'I3',8X,'I4',8X,'I5',8X,'I6',/,6I10)
  write(*,7001)
7001  format(3x,'data file name=****.***')
  read(*,*)chr2 !// 此处修改为 *,*
7003  format(17x,a)
  write(*,7005)
7005  format(3x,'a new file or an old one?(new/old)',\)
  read(*,'(a3)')chr3
  if(chr3.eq.'new'.or.chr3.eq.'NEW') then
  open(1,file=chr2,status='new',access='direct',form='binary',
     1  recl=80)


几点建议:
1.除非万不得已,read 语句一律用 * ,而不要格式符控制。
2.你的错误在于找不到 1 号文件。
open(1,file=chr2 这里的 chr2 可能根本就没有值。因为 read 的格式是 7003  format(17x,a)

为什么要用 17x,a 来读取字符串呢??不是很奇怪么?用 read(*,*) 就可以了

136

帖子

3

主题

0

精华

版主

F 币
1964 元
贡献
1677 点

帅哥勋章管理勋章爱心勋章新人勋章热心勋章元老勋章

15#
发表于 2014-5-2 21:45:24 | 只看该作者
我是处手 发表于 2014-4-30 09:53
这是约束非线性离散变量组合型优化设计方法,我下面代有优化数学模型,执行生成exe文件后,操作到[mw_shl_code ...

确定文件名是"chr2" ?

40

帖子

8

主题

0

精华

熟手

F 币
91 元
贡献
105 点
16#
 楼主| 发表于 2014-5-3 21:59:22 | 只看该作者
对于楼上各位评论,我接受,我也很无语,这程序是八几年导师买来的,里面没有任何注释,我只知道是约束非线性混合离散变量组合型优化程序,里面是一维搜索方法,我就开始看这个优化方法的内容和程序,关于里面的字符含义百分之八十没有具体说明.非计算机专业,fortran我本人看书学习了一个月,语法懂些,没有自己设计过程序.关于这个帖子的问题,已经解决.
在执行件中,输入数据,有严格格式要求,当时没有注意.谢谢各位了.
目前又出现新问题了 Vertices Storage File Name=****.*** NSCH=***
                            0012.dat      001
Input Vertices?(y/n)y
forrtl: severe (36): attempt to access non-existent record, unit 2, file F:\M\00
12.dat
Image              PC        Routine            Line        Source
M.exe              00419409  Unknown               Unknown  Unknown
M.exe              0041923B  Unknown               Unknown  Unknown
M.exe              00418444  Unknown               Unknown  Unknown
M.exe              00418879  Unknown               Unknown  Unknown
M.exe              00414F1A  Unknown               Unknown  Unknown
M.exe              00414710  Unknown               Unknown  Unknown
M.exe              00405AE6  Unknown               Unknown  Unknown
M.exe              00404C87  Unknown               Unknown  Unknown
M.exe              00444A39  Unknown               Unknown  Unknown
M.exe              00436E54  Unknown               Unknown  Unknown
kernel32.dll       7C816037  Unknown               Unknown  Unknown

Incrementally linked image--PC correlation disabled.
Press any key to continue
真心不懂,如果有懂的,或者可以帮助调试整个程序的,可以私密我QQ736223939.有偿

40

帖子

8

主题

0

精华

熟手

F 币
91 元
贡献
105 点
17#
 楼主| 发表于 2014-5-3 22:20:38 | 只看该作者
fcode 发表于 2014-4-30 14:00
楼上说得对。

如果你打算静下来检查问题的错误,这里可能有一些线索。

data file name=****.***
读入时格式控制,输入正好对齐****.***
程序执行时是这样来的,你说的也行,这个程序是F77,这个程序是六五国家科技攻关项目

40

帖子

8

主题

0

精华

熟手

F 币
91 元
贡献
105 点
18#
 楼主| 发表于 2014-5-3 22:23:37 | 只看该作者
突然好失落啊,被鄙视了,确实,若是直接用matlab工具箱,带入个数学优化模型就搞定,那学位论文的题目又有何意义?

1958

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1341 元
贡献
565 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

19#
发表于 2014-5-4 05:28:50 | 只看该作者
1.这里没有计算机专业的。据我所知,没有,大家都是非计算机专业。
2.你别介意,大家给你意见,是为让你提高。尽管有时候不太中听。
3.关于 attempt to access non-existent record, 的问题,请看本章常见错误:http://error.w.fcode.cn

40

帖子

8

主题

0

精华

熟手

F 币
91 元
贡献
105 点
20#
 楼主| 发表于 2014-5-4 23:37:55 | 只看该作者
[Fortran] 纯文本查看 复制代码
	WRITE(*,'(1x,A)')'Vertices Storage File Name=****.*** NSCH=***'
	READ(*,'(28X,A8,6X,I3)')NAME,NSCH
919	write(*,'(1x,a,\)')'Input Vertices?(y/n)'
	READ(*,'(A)')IYN
	IF(IYN.EQ.'y'.or.IYN.EQ.'Y') then
	goto 913
	elseif(iyn.ne.'n'.and.iyn.ne.'N') then
	goto 919
	endif
	do 300 i=1,n
300	iv(i,1)=ix0(i)
	y(1)=pf0
430	continue
	do 302 k=1,n
	do 304 i=1,n
	if (i.eq.k) go to 306
	ii=k+1
	iv(i,ii)=ix0(i)
	ii=ii+n
	iv(i,ii)=ix0(i)
	go to 308
306	ii=k+1
	iv(i,ii)=ixl(i)
	ii=ii+n
	iv(i,ii)=ixu(i)
308	continue
304	continue
302	continue
	goto 440
913	OPEN(2,FILE=NAME,ACCESS='DIRECT',FORM='binary',
     1  RECL=160)
	DO 921 I=1,NV
	READ(2,REC=I)(IV(J,I),J=1,N)
921	CONTINUE
	nv1=nv+1
	read(2,rec=nv1)sch,fun,cst,cycle
	CLOSE(2)
	DO 923 I=1,N
923	IX0(I)=IV(I,1)
	CALL ROUND(X0,IX0)
	PF0=EF(X0)
	Y(1)=PF0
	write(*,'(1x,2hx0,6f13.6)')(x0(i),i=1,n)
	write(*,'(1x,5hf(x0),3x,f13.6)')pf0
	write(*,'(1x,4hsch=,i4,3x,4hfun=,i5,3x,4hcst=,i5,3x,6hcycle=,i2)
     1  ')sch,fun,cst,cycle
440	continue
	do 310 i=2,nv
	do 312 j=1,n
312	ixt(j)=iv(j,i)
	call round(xt,ixt)
310	y(i)=ef(xt)
450	call compar
	if (i6.ne.1) go to 350
	write(*,1000) (y(i),i=1,nV)
1000	format(1x,2hf=,/,5f15.7)
	do 320 i=1,nv
	do 315 j=1,n
315	ixt(j)=iv(j,i)
	call round(xt,ixt)
	write(*,1010) i,(xt(ii),ii=1,n)
1010	format(1x,2hx=,i5,/,(5f15.7))
320	continue
350	ir=0
	do 352 i=1,n
	dl=1.e10
	du=-1.e10
	do 354 j=1,nv
	w=iv(i,j)
	if (w.ge.du) du=w
	if (w.le.dl) dl=w
354	continue
	w=du-dl
	if (w.le.idx(i)) ir=ir+1
352	continue
	if (ir.ge.en) go to 470
	if (i2.ne.1) go to 360
	w=sch/15
	iw=int(w)
	if (iw.le.qun) go to 360
	call quadr
	if (f1.ge.y(1)) go to 360
	call round(xb,ixb)
	write(*,1020) qun,f1,(xb(i),i=1,n)
1020	format(10x,7hsuccess,/,10x,4hqun=,i5,/,10x,2hf=,f15.7,/,
     1  10x,2hx=,/,(5f15.7))
	y(nv)=f1
	do 356 i=1,n
356	iv(i,nv)=ixb(i)
	go to 450
360	continue
	IF(I7.EQ.1) THEN
	isch=sch/50
	if (isch*50.ne.sch) go to 351
	ngl=0
	do 337 i=1,n
	ngt=0
	nlt=0
	do 331 j=2,nv
	if (iv(i,j).gt.iv(i,1)) ngt=ngt+1
	if (iv(i,j).lt.iv(i,1)) nlt=nlt+1
331	continue
	if (ngt.gt.1.and.nlt.gt.1) ngl=ngl+1
337	continue
	if (ngl.gt.1) go to 351
	sub=1.
	n1=nv
	call search
	if (f1.gE.y(n1)) go to 351
	do 346 i=1,n
346	iv(i,nv)=ixb(i)
	y(nv)=f1
	KT=4
	go to 450
351	continue
	ENDIF
	n1=nv
***************************
460	MSCH=SCH/NSCH
	IF(MSCH*NSCH.EQ.SCH) THEN
	OPEN(2,FILE=NAME,STATUS='NEW',ACCESS='DIRECT',FORM='binary',
     1  RECL=160)
	DO 927 I=1,NV
	WRITE(2,REC=I)(IV(J,I),J=1,N)
927	CONTINUE
	nv1=nv+1
	write(2,rec=nv1)sch,fun,cst,cycle
	CLOSE(2)
	ENDIF

管理员,我在窗口里按提示输入数据,中间到goto913那句就出现forrtl: severe (36): attempt to access non-existent record, unit 2,导师说以前就打不开,我应该怎么改写,纠结快一星期了,可以指导下吗?
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-4-25 08:36

Powered by Tencent X3.4

© 2013-2024 Tencent

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