Fortran Coder

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

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

[复制链接]

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
608 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

地板
发表于 2014-4-29 22:20:32 | 只看该作者
我听不懂你的意思。什么叫 从 7001 开始不能操作?

40

帖子

8

主题

0

精华

熟手

F 币
91 元
贡献
105 点
板凳
 楼主| 发表于 2014-4-29 20:43:54 | 只看该作者
生成exe执行件,从7001开始不能操作,求帮忙找找原因,谢谢各位

40

帖子

8

主题

0

精华

熟手

F 币
91 元
贡献
105 点
沙发
 楼主| 发表于 2014-4-29 20:40:19 | 只看该作者
[Fortran] 纯文本查看 复制代码
	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
	call search
	if (f1.ge.y(n1)) go to 366
	do 362 i=1,n
362	iv(i,nv)=ixb(i)
	y(nv)=f1
	KT=5
	go to 450
366	continue
	if (i3.ne.1) go to 380
480	n1=n1-1
	if (n1.le.1) go to 380
	iw=0
	ii=n1+1
	do 370 i=1,n
	if (iv(i,n1).eq.iv(i,ii)) go to 370
	iw=1
	go to 490
370	continue
490	continue
	if (iw.eq.1) go to 460
	go to 480
380	continue
	do 382 i=2,nv
	do 384 j=1,n
	w=iv(j,1)+0.667*(iv(j,i)-iv(j,1))
	if (j.gt.p) go to 384
	w=w+0.5
	w=int(w)
384	iv(j,i)=w
382	continue
	go to 440
470	continue
	if (i1.ne.1) go to 500
	do 386 i=2,nv
	w=1.0
	do 388 j=1,n
	ii=i-1
	if (iv(j,ii).ne.iv(j,i)) w=0.
388	continue
	if (w.eq.1.) go to 386
	do 390 j=1,n
	ixt(j)=2*iv(j,1)-iv(j,i)
	if (ixt(j).gt.ixu(j)) ixt(j)=ixu(j)
	if (ixt(j).lt.ixl(j)) ixt(j)=ixl(j)
390	continue
	call round(xt,ixt)
	w=ef(xt)
	if (w.ge.y(1)) go to 386
	y(i)=w
	do 392 j=1,n
392	iv(j,i)=ixt(j)
	go to 450
386	continue
500	cycle=cycle+1
	do 394 i=1,n
394	ixt(i)=iv(i,1)
	call round(xt,ixt)
	pf1=y(1)
	write(*,1030) cycle,sch,fun,cst,pf1
1030	format(5x,'cycle=',i5,5x,'sch=',i5,5x,'fun=',i5,5x,'cst=',i5,/,
     1  10x,'pf1=',f15.7,/)
	write(*,1301) (xt(i),i=1,n)
1301	format(1x,2hx=,5f15.7)
	if (i4.ne.1) go to 400
	do 408 i=1,n
	if (abs(iv(i,1)-ix0(i)).le.1e-6) go to 408
	do 402 j=1,n
402	ix0(j)=iv(j,1)
	go to 430
408	continue
400	call const(xt,g,cst)
	return
	end
	subroutine search
	real xt(20),ixt(20),xb(20),ixb(20),dx(20),idx(20),y(41),
     1  iv(20,41),xu(20),ixu(20),xl(20),ixl(20),s(20),g(500),xv(500,20)
	integer en,p,eq,cycle,cst,fun,qun,sch
	common /c1/n,m,en,p,eq,nv/c2/mi,cycle,cst,fun,sch,qun
     1  /c5/xb,ixb/c6/xt,ixt/c7/xl,ixl,xu,ixu/c8/dx,idx/c9/iv,y
     2  /c11/n1/c0/i1,i2,i3,i4,i5,i6/c12/f1,f2,pf0,pf1/c3/g/c10/xv
	common /csub/sub
	do 40 i=1,n
40	ixb(i)=iv(i,n1)
	f1=y(n1)
	do 41 i=1,n
	w=0.
	if(sub.ne.1.) goto 777
	w=iv(i,1)
	goto 779
777	continue
	do 42 j=1,nv
42	if(j.ne.n1) w=w+iv(i,j)
	w=w/(nv-1)
779	continue
41	s(i)=w-ixb(i)
	w=10.e10
	him=10.e10
	do 43 i=1,n
	if(abs(s(i)).gt.10.e-8) w=abs(idx(i)/s(i)/2)
	if(w.lt.him) him=w
43	continue
	t=1.3
	t0=1.3
	r=1.
110	continue
	if(t.lt.him) goto 120
	do 44 i=1,n
	w=iv(i,n1)+t0*s(i)
	if(i.le.p) w=aint(w+.5)
	ixt(i)=w
	if(i5.ne.1) goto 46
	if(ixt(i).gt.ixu(i)) ixt(i)=ixu(i)
	if(ixt(i).lt.ixl(i)) ixt(i)=ixl(i)
	goto 44
46	continue
	if(ixt(i).le.ixu(i).and.ixt(i).ge.ixl(i)) goto 44
	t=t/2
	r=-1.
	t0=t0-t
	goto 110
44	continue
	call round(xt,ixt)
	f2=ef(xt)
	if(f2.lt.f1) goto 50
	t=t/2
	r=-1.
	t0=t0-t
	goto 110
50	continue
	do 51 i=1,n
	xb(i)=xt(i)
51	ixb(i)=ixt(i)
	f1=f2
	if(r.eq.1.) t=t*2
	if(r.ne.1.) t=t/2
	t0=t0+t
	goto 110
120	sch=sch+1
	return
	end
	subroutine quadr
	integer en,p,eq,cycle,cst,fun,sch,qun
	real a(20),b(20),c(20),e(20),f(20),h(20),xb(20),ixb(20),
     1  iv(20,41),xt(20),ixt(20),xu(20),ixu(20),xl(20),ixl(20),dx(20),
     2  idx(20),y(41),g(500),xv(500,20)
	common /c1/n,m,en,p,eq,nv/c2/mi,cycle,cst,fun,sch,qun/c5/xb,ixb
     1  /c6/xt,ixt/c7/xl,ixl,xu,ixu/c8/dx,idx/c9/iv,y/c12/f1,f2,pf0,pf1
     2  /c3/g/c10/xv
	do 60 i=1,n
	ixb(i)=iv(i,1)
60	c(i)=ixb(i)
	f1=y(1)
	do 62 i=2,nv
	k=i
	do 64 j=1,n
	if(abs(iv(j,i)-c(j)).gt.10.e-4) goto 210
64	continue
62	continue
	goto 250
210	continue
	do 66 i=1,n
66	b(i)=iv(i,k)
	kk=k+1
	do 68 i=kk,nv
	k=i
	do 70 j=1,n
	if(abs(iv(j,i)-b(j)).gt.10.e-4) goto 220
70	continue
68	continue
	goto 250
220	continue
	do 72 i=1,n
72	a(i)=iv(i,k)
	ii=1
	do 74 i=1,n
	k=i
	if(a(i).lt.b(i).and.b(i).lt.c(i)) goto 230
74	continue
	ii=-1
	do 76 i=1,n
	k=i
	if(a(i).gt.b(i).and.b(i).gt.c(i)) goto 230
76	continue
	ii=0
230	continue
	if(ii.eq.0) goto 250
	do 78 i=1,n
	e(i)=c(i)
	f(i)=(b(i)-c(i))/(b(k)-c(k))
78	h(i)=((a(i)-c(i))/(a(k)-c(k))-f(i))/(a(k)-b(k))
	d1=ii*2*idx(k)
	d=d1
	w=1.
240	continue
	if(abs(d).lt.idx(k)/2) goto 250
	do 80 i=1,n
	ixt(i)=e(i)+f(i)*d1+h(i)*d1*(d1+c(k)-b(k))
	wi=ixt(i)+.5
	if(i.le.p) ixt(i)=aint(wi)
	if(ixt(i).le.ixu(i).and.ixt(i).ge.ixl(i)) goto 82
	w=-1
	d=d/2
	d1=d1-d
	goto 240
82	continue
80	continue
	call round(xt,ixt)
	f2=ef(xt)
	if(f2.lt.f1) goto 83
	w=-1
	d=d/2
	d1=d1-d
	goto 240
83	f1=f2
	do 84 i=1,n
	ixb(i)=ixt(i)
84	xb(i)=xt(i)
	if(w.eq.1) d=d*2
	if(w.ne.1) d=d/2
	d1=d1+d
	goto 240
250	qun=qun+1
	return
	end
	subroutine input(chr1,x)
	character*1 iyn
	character*3 chr1
	character*13 chr2
	dimension x(20)
	common /c1/n,m,en,p,eq,nv
	chr2=')=*****.*****'
	do 10 i=1,n
	write(*,100)chr1,i,chr2
100	format(3x,a3,i2,a13)
	read(*,200)x(i)
200	format(9x,f11.5)
	write(*,200)x(i)
10	continue
14	write(*,300)
300	format(3x,'all right?(y/n)',\)
	read(*,'(a)')iyn
	if(iyn.eq.'n'.or.iyn.eq.'N') then
	write(*,400)chr1,chr2
400	format(3x,'i=** ',3x,a3,'i',a13)
	read(*,500)i,x(i)
500	format(4x,i2,6x,f11.5)
	write(*,500)i,x(i)
	goto 14
	elseif(iyn.ne.'y'.and.iyn.ne.'Y') then
	goto 14
	endif
	return
	end
	subroutine inpnp(np)
	integer eq
	character*1 iyn
	character*3 chr1
	character*6 chr2
	dimension np(20)
	common /c1/n,m,en,p,eq,nv
	chr1='Np('
	chr2=')=****'
	do 10 i=1,eq
	write(*,100)chr1,i,chr2
100	format(3x,a3,i2,a6)
	read(*,200)np(i)
200	format(9x,i4)
	write(*,200)np(i)
10	continue
14	write(*,300)
300	format(3x,'all right?(y/n)',\)
	read(*,'(a)')iyn
	if(iyn.eq.'n'.or.iyn.eq.'N') then
	write(*,400)chr1,chr2
400	format(3x,'i=** ',3x,a3,'i',a13)
	read(*,500)i,np(i)
500	format(4x,i2,6x,i4)
	write(*,500)i,np(i)
	goto 14
	elseif(iyn.ne.'y'.and.iyn.ne.'Y') then
	goto 14
	endif
	return
	end
	subroutine inpxv(np)
	integer eq
	character*1 iyn
	character*3 chr1
	character*13 chr2
	dimension np(20),xv(500,20)
	common /c1/n,m,en,p,eq,nv/c10/xv
	chr1='XV('
	chr2=')=*****.*****'
	do 10 i=1,eq
	do 10 j=1,np(i)
	write(*,100)chr1,j,i,chr2
100	format(3x,a3,i3,',',i2,a13)
	read(*,200)xv(j,i)
200	format(13x,f11.5)
	write(*,200)xv(j,i)
10	continue
299	write(*,300)
300	format(3x,'all right?(y/n)',\)
	read(*,'(a)')iyn
	if(iyn.eq.'n'.or.iyn.eq.'N') then
	write(*,400)chr1,chr2
400	format(3x,'j=***  i=**',2x,a3,'j,i',a13)
	read(*,500)j,i,xv(j,i)
500	format(4x,i3,4x,i2,9x,f11.5)
	write(*,500)j,i,xv(j,i)
	goto 299
	elseif(iyn.ne.'y'.and.iyn.ne.'Y') then
	goto 299
	endif
	return
	end
	subroutine compar
	real y(41),iv(20,41)
	common /c1/n,m,en,p,eq,nv/c9/iv,y
	jj=nv-1
	do 30 i=1,jj
	j=i
	ii=i+1
	do 31 k=ii,nv
	if(y(k).lt.y(j)) j=k
31	continue
	w=y(i)
	y(i)=y(j)
	y(j)=w
	do 32 k=1,n
	w=iv(k,i)
	iv(k,i)=iv(k,j)
32	iv(k,j)=w
30	continue
	return
	end
	subroutine round(x,ix)
	real x(20),ix(20),dx(20),xv(500,20),idx(20)
	integer en,p,eq
	common /c1/n,m,en,p,eq,nv/c8/dx,idx/c10/xv
	do 20 i=1,n
	w=ix(i)+0.5
	ii=int(w)
	if (i.le.eq) x(i)=xv(ii,i)
	if (i.gt.eq.and.i.le.p) x(i)=dx(i)*ix(i)
	if (i.gt.p) x(i)=ix(i)
20	continue
	return
	end

	FUNCTION EF(X)
	DIMENSION X(20),G(500)
	INTEGER CST,FUN,SCH,QUN
	COMMON /C1/N,M,EN,P,EQ,NV/C3/G/C2/MI,CYCLE,CST,FUN,SCH,QUN
	CALL CONST(X,G,CST)
	SUM=0.
	DO 10 I=1,M
	IF(G(I).GT.0) SUM=SUM+G(I)
10	CONTINUE
	IF(SUM.EQ.0) GOTO 11
	W=MI+SUM
	GOTO 12
11	W=FUNC(X,FUN)
12	EF=W
	RETURN
	END

   	FUNCTION FUNC(X,FUN)
	DIMENSION X(20)
	INTEGER FUN
	FUN=FUN+1
	FUNC=X(1)+120*X(2)
	RETURN
	END
	
	SUBROUTINE CONST(X,G,CST)
	DIMENSION X(20),G(500)
	INTEGER CST
	G(1)=4-X(1)
	G(2)=6.429+X(1)*X(2)
      G(3)=6.429-X(1)*X(2)**3
	G(4)=321.14-X(1)**2*X(2)
	CST=CST+1
	RETURN
	END 
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-20 09:10

Powered by Tencent X3.4

© 2013-2024 Tencent

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