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

各位大神求指导!!!!
展开
 我来答
zhanghuaa2010
2013-10-20 · 超过42用户采纳过TA的回答
知道答主
回答量:165
采纳率:0%
帮助的人:95.7万
展开全部
用内部读写方式陵缓: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
天河流纹石
2013-10-15 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7624
采纳率:76%
帮助的人:4045万
展开全部
你这旁卖逻辑非常昏乱啊。

第一: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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式