fortran 程序文件名为变量 求指导
我有个二维数组,forh=1,m,1forj=1,n,1p(j)=.....enddo下面我想输出文件名以变量h为类型txt文件名程序该怎么写???enddo各位大神求指...
我有个二维数组,
for h=1,m,1
for j= 1,n,1
p(j)=.....
enddo
下面我想输出文件名以变量h 为 类型txt 文件名
程序该怎么写???
end do
各位大神求指导!!!! 展开
for h=1,m,1
for j= 1,n,1
p(j)=.....
enddo
下面我想输出文件名以变量h 为 类型txt 文件名
程序该怎么写???
end do
各位大神求指导!!!! 展开
2个回答
展开全部
用内部读写方式陵缓:write(h,*) n
开一个文件(通道号为1):先用数据写入再以字符读出,也可以。只不过需要判断氏败位数和rewind(1)
直接给你一歼汪颤个子程序:
SUBROUTINE CH(A,B,I)
CHARACTER*10 A
REAL B
OPEN(2,FILE='K.DAT',STATUS='unknown')
B1=FLOAT(INT(B))
B2=B-B1
IF(B.EQ.0.0) GO TO 20
IF(B2.NE.0.0) GO TO 20
IF(B.GE.10.0) I=2
IF(B.GE.100.0) I=3
IF(B.GE.1000.0) I=4
IF(B.GE.10000.0) I=5
IF(B.LT.10.0) I=1
IB=INT(B+0.01)
IF(I.EQ.1) THEN
WRITE(2,11) IB
11 FORMAT(1X,I1)
REWIND (2)
READ(2,21) A
21 FORMAT(A2)
GO TO 30
ENDIF
IF(I.EQ.2) THEN
WRITE(2,12) IB
12 FORMAT(1X,I2)
REWIND (2)
READ(2,22) A
22 FORMAT(A3)
GO TO 30
ENDIF
IF(I.EQ.3) THEN
WRITE(2,13) IB
13 FORMAT(1X,I3)
REWIND (2)
READ(2,23) A
23 FORMAT(A4)
GO TO 30
ENDIF
IF(I.EQ.4) THEN
WRITE(2,14) IB
14 FORMAT(1X,I4)
REWIND (2)
READ(2,24) A
24 FORMAT(A5)
GO TO 30
ENDIF
IF(I.EQ.5) THEN
WRITE(2,15) IB
15 FORMAT(1X,I5)
REWIND (2)
READ(2,25) A
25 FORMAT(A6)
GO TO 30
ENDIF
20 CONTINUE
IF(B.EQ.0.0) THEN
A='0.000'
I=5
GO TO 30
ENDIF
IF(B1.LT.10.0) J=1
IF(B1.GE.10.0) J=2
IF(B1.GE.100.0) J=3
IF(B1.GE.1000.0) J=4
IF(B1.GE.10000.0) J=5
I=J+4
IF(J.EQ.1) THEN
WRITE(2,31) B
31 FORMAT(1X,F5.3)
REWIND (2)
READ(2,51) A
51 FORMAT(A6)
GO TO 30
ENDIF
IF(J.EQ.2) THEN
WRITE(2,32) B
32 FORMAT(1X,F6.3)
REWIND (2)
READ(2,52) A
52 FORMAT(A7)
GO TO 30
ENDIF
IF(J.EQ.3) THEN
WRITE(2,33) B
33 FORMAT(1X,F7.3)
REWIND (2)
READ(2,53) A
53 FORMAT(A8)
GO TO 30
ENDIF
IF(J.EQ.4) THEN
WRITE(2,34) B
34 FORMAT(1X,F8.3)
REWIND (2)
READ(2,54) A
54 FORMAT(A9)
GO TO 30
ENDIF
IF(J.EQ.5) THEN
WRITE(2,35) B
35 FORMAT(1X,F9.3)
REWIND (2)
READ(2,55) A
55 FORMAT(A10)
ENDIF
30 CONTINUE
I=I+1
RETURN
END
开一个文件(通道号为1):先用数据写入再以字符读出,也可以。只不过需要判断氏败位数和rewind(1)
直接给你一歼汪颤个子程序:
SUBROUTINE CH(A,B,I)
CHARACTER*10 A
REAL B
OPEN(2,FILE='K.DAT',STATUS='unknown')
B1=FLOAT(INT(B))
B2=B-B1
IF(B.EQ.0.0) GO TO 20
IF(B2.NE.0.0) GO TO 20
IF(B.GE.10.0) I=2
IF(B.GE.100.0) I=3
IF(B.GE.1000.0) I=4
IF(B.GE.10000.0) I=5
IF(B.LT.10.0) I=1
IB=INT(B+0.01)
IF(I.EQ.1) THEN
WRITE(2,11) IB
11 FORMAT(1X,I1)
REWIND (2)
READ(2,21) A
21 FORMAT(A2)
GO TO 30
ENDIF
IF(I.EQ.2) THEN
WRITE(2,12) IB
12 FORMAT(1X,I2)
REWIND (2)
READ(2,22) A
22 FORMAT(A3)
GO TO 30
ENDIF
IF(I.EQ.3) THEN
WRITE(2,13) IB
13 FORMAT(1X,I3)
REWIND (2)
READ(2,23) A
23 FORMAT(A4)
GO TO 30
ENDIF
IF(I.EQ.4) THEN
WRITE(2,14) IB
14 FORMAT(1X,I4)
REWIND (2)
READ(2,24) A
24 FORMAT(A5)
GO TO 30
ENDIF
IF(I.EQ.5) THEN
WRITE(2,15) IB
15 FORMAT(1X,I5)
REWIND (2)
READ(2,25) A
25 FORMAT(A6)
GO TO 30
ENDIF
20 CONTINUE
IF(B.EQ.0.0) THEN
A='0.000'
I=5
GO TO 30
ENDIF
IF(B1.LT.10.0) J=1
IF(B1.GE.10.0) J=2
IF(B1.GE.100.0) J=3
IF(B1.GE.1000.0) J=4
IF(B1.GE.10000.0) J=5
I=J+4
IF(J.EQ.1) THEN
WRITE(2,31) B
31 FORMAT(1X,F5.3)
REWIND (2)
READ(2,51) A
51 FORMAT(A6)
GO TO 30
ENDIF
IF(J.EQ.2) THEN
WRITE(2,32) B
32 FORMAT(1X,F6.3)
REWIND (2)
READ(2,52) A
52 FORMAT(A7)
GO TO 30
ENDIF
IF(J.EQ.3) THEN
WRITE(2,33) B
33 FORMAT(1X,F7.3)
REWIND (2)
READ(2,53) A
53 FORMAT(A8)
GO TO 30
ENDIF
IF(J.EQ.4) THEN
WRITE(2,34) B
34 FORMAT(1X,F8.3)
REWIND (2)
READ(2,54) A
54 FORMAT(A9)
GO TO 30
ENDIF
IF(J.EQ.5) THEN
WRITE(2,35) B
35 FORMAT(1X,F9.3)
REWIND (2)
READ(2,55) A
55 FORMAT(A10)
ENDIF
30 CONTINUE
I=I+1
RETURN
END
展开全部
你这旁卖逻辑非常昏乱啊。
第一:Fortran 的循环,是用 Do,而不是用 for。你运瞎逗确定你用的是 Fortran 书写代码?
第二:h 是变量,变量类型,有整型,浮点型,逻神滑辑型等。它与txt的文件名没有任何联系。
第一:Fortran 的循环,是用 Do,而不是用 for。你运瞎逗确定你用的是 Fortran 书写代码?
第二:h 是变量,变量类型,有整型,浮点型,逻神滑辑型等。它与txt的文件名没有任何联系。
追问
上面写错了,是Do, 第二个 h 是整数型
追答
Character( Len = 9 ) :: cFile
Do h=1,m
Do j= 1,n
p(j)=.....
End Do
Write( cFile , * ) h
cFile = AdjustL(cFile)
Open( 12 , File = Trim(cFile))
!// 对 12 文件的读写
Close(12)
End Do
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询