24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1145  |  回复: 9
当前主题已经存档。

sunnyrain108

木虫 (著名写手)

[交流] 【求助】请教一个关于write的问题,谢谢~

请教各位:下面代码中 write(tdate(3:3),'(i1)') nday是啥意思?write命令的格式不是write(UNIT=number,FMT=fomat,...)的吗?tdate是个字符型的时间变量,nday是个整数。谢谢~

    integer nday              
    character*10 tdate      
   

    if (nday .lt. 10) then
        write(tdate(3:3),'(i1)') nday
    else if (nday .lt. 100) then
         write(tdate(2:3),'(i2)') nday
    else
        write(tdate(1:3),'(i3)') nday
    end if
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

rjjy

木虫 (著名写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
2楼2009-07-25 10:30:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjpm

金虫 (正式写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
wangen994(金币+3,VIP+0):感谢你参与讨论 7-25 14:03
这个是 fortran 的内部文件。彭国伦的《Fortran95程序设计》讲了的。
可以参考SUN的文档:
2.5 内部文件

内部文件是 CHARACTER 类型的对象,如变量、子串、数组、数组元素或结构化记录的字段。内部文件 READ 可以来自常量字符串。内部文件 I/O 通过由一个字符对象向另一数据对象传送和转换数据,模拟格式化 READ 和 WRITE 语句。不执行任何文件 I/O。

使用内部文件时:

    *

      出现在 WRITE 语句中的是接收数据的字符对象的名称而非单元号。在 READ 语句中,出现的是字符对象源的名称而非单元号。
    *

      常量、变量或子串对象构成文件中的单条记录。
    *

      使用数组对象,每个数组元素对应于一条记录。
    *

      内部文件上的直接 I/O。(Fortran 95 标准只包括内部文件上的顺序格式化 I/O。)除了不能更改文件中的记录数之外,这一点与外部文件上的直接 I/O 相似。此时,记录是字符串数组的单个元素。这项非标准扩展仅在用 -f77 标志编译的 FORTRAN 77 兼容模式下可用。
    *

      每一顺序 READ 或 WRITE 语句均始于内部文件的开头。

示例:从内部文件(仅有一条记录)中以顺序、格式化方式进行读取:

demo% cat intern1.f
      CHARACTER X*80
      READ( *, ’(A)’ ) X
      READ( X, ’(I3,I4)’ ) N1, N2 ! This codeline reads the internal file X
      WRITE( *, * )  N1, N2
      END
demo% f95 -o tstintern intern1.f
demo% tstintern
12 99
12 99
demo%

示例:从内部文件(三条记录)中以顺序、格式化方式进行读取:

demo% cat intern2.f
      CHARACTER  LINE(4)*16
      DATA  LINE(1) / ’ 81  81 ’ /
      DATA  LINE(2) / ’ 82  82 ’ /
      DATA  LINE(3) / ’ 83  83 ’ /
      DATA  LINE(4) / ’ 84  84 ’ /
      READ( LINE,’(2I4)’) I,J,K,L,M,N
      PRINT *, I, J, K, L, M, N
      END
demo% f95 intern2.f
demo% a.out
   81  81  82  82  83  83
demo%

示例:在 -f77 兼容模式下,从内部文件(一条记录)中以直接访问方式进行读取:

demo% cat intern3.f
      CHARACTER LINE(4)*16
      DATA  LINE(1) / ’ 81  81 ’ /
      DATA  LINE(2) / ’ 82  82 ’ /
      DATA  LINE(3) / ’ 83  83 ’ /
      DATA  LINE(4) / ’ 84  84 ’ /
      READ ( LINE, FMT=20, REC=3 ) M, N
20       FORMAT( I4, I4 )
      PRINT *, M, N
      END
demo% f95 -f77 intern3.f
demo% a.out
   83  83
demo%
http://docs.sun.com/app/docs/doc ... 9df?l=zh&a=view


http://bbs.pfan.cn/post-102851.html上也有介绍

3. 如何用Fortran动态生成输出格式?
设有一个数组data(100),输出时,希望每行输出num个数,而num由用户输入,如何实现?

用内部文件:
character(len=80) :: form
real :: data(100)
integer :: i,num

data = (/ (i,i=1,100) /)/10.0
read(*,*) num
write(form,*) "(",num,"f10.3)"
write(*,form) data

stop
end
3楼2009-07-25 12:16:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sunnyrain108

木虫 (著名写手)

非常感谢!

非常感谢
4楼2009-07-25 14:42:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

calos818

木虫 (著名写手)

新人菜鸟


小木虫(金币+0.5):给个红包,谢谢回帖交流
只会write(*,*)用法,学习了
5楼2009-08-12 10:46:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

argo

铁杆木虫 (著名写手)

上善若水

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
0112358(金币+3,VIP+0):鼓励交流 8-12 19:41
之前程序应该有打开了三个文件,三个文件所对应的部件号分别为tdate中第1-3个字符,即假定tdate为"1234567890",则
CODE:
    if (nday .lt. 10) then
        write(tdate(3:3),'(i1)') nday
    else if (nday .lt. 100) then
         write(tdate(2:3),'(i2)') nday
    else
        write(tdate(1:3),'(i3)') nday
    end if

相当于
CODE:
    if (nday .lt. 10) then
        write(3,'(i1)') nday
    else if (nday .lt. 100) then
         write(23,'(i2)') nday
    else
        write(123,'(i3)') nday
    end if

之前程序中应该有类似于以下的语句:
CODE:
open(3,file="file1.dat")
open(23,file="file2.dat")
open(123,file="file3.dat")

个人想当然地认为,没有经过测试哦,仅供参考。
居善地,心善渊,与善仁,言善信,正善治,事善能,动善时。
6楼2009-08-12 12:27:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjyl

金虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
其实大部分时候就是为了动态格式输出/输入用吧。
引用回帖:
Originally posted by argo at 2009-8-12 12:27:
之前程序应该有打开了三个文件,三个文件所对应的部件号分别为tdate中第1-3个字符,即假定tdate为"1234567890",则
[code]
    if (nday .lt. 10) then
        write(tdate(3:3),'(i1)') nday
    ...

[ Last edited by tjyl on 2009-8-12 at 19:08 ]
7楼2009-08-12 19:05:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

argo

铁杆木虫 (著名写手)

上善若水

引用回帖:
Originally posted by tjyl at 2009-8-12 19:05:
其实大部分时候就是为了动态格式输出/输入用吧。



[ Last edited by tjyl on 2009-8-12 at 19:08 ]

谢谢,我没有用那么多那么深,所以很多东西只停留在一知半解而已。哪天有用到再翻书了。
居善地,心善渊,与善仁,言善信,正善治,事善能,动善时。
8楼2009-08-12 19:09:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjyl

金虫 (正式写手)

大陆的人写的书上基本没有讲过这个吧,所以很多人不知道。编译器文档应该都有的。
引用回帖:
Originally posted by argo at 2009-8-12 19:09:

谢谢,我没有用那么多那么深,所以很多东西只停留在一知半解而已。哪天有用到再翻书了。

9楼2009-08-12 19:14:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sunnyrain108

木虫 (著名写手)

余泽成(金币+0,VIP+0):中秋快乐!欢迎常来程序软件版! 10-3 20:40
以解决,谢谢啦
10楼2009-10-03 20:31:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sunnyrain108 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿211 初试270分 求调剂 +8 谷雨上岸 2026-03-23 9/450 2026-03-29 01:00 by 我是小康
[考研] 一志愿武汉理工,总分321,英一数二,求老师收留。 +7 nnnnnnn5 2026-03-25 7/350 2026-03-29 00:32 by 我是小康
[考研] 316求调剂 +7 江辞666 2026-03-26 7/350 2026-03-28 21:28 by sanrepian
[考研] 083000学硕274求调剂 +8 Li李鱼 2026-03-26 8/400 2026-03-28 20:33 by 加油向未来啊
[考研] 283求调剂 +3 A child 2026-03-28 3/150 2026-03-28 15:41 by ms629
[考研] 材料与化工(0856)304求B区调剂 +8 邱gl 2026-03-27 8/400 2026-03-28 12:42 by 唐沐儿
[考研] 291求调剂 +7 孅華 2026-03-22 7/350 2026-03-28 04:02 by fmesaito
[考研] 315调剂 +4 0860求调剂 2026-03-26 5/250 2026-03-27 11:23 by wangjy2002
[考研] 调剂 +3 李嘉图·S·路 2026-03-27 3/150 2026-03-27 11:19 by wangjy2002
[考研] 求调剂323材料与化工 +7 1124361 2026-03-24 7/350 2026-03-27 10:22 by wangjy2002
[考研] 349求调剂 +4 李木子啊哈哈 2026-03-25 4/200 2026-03-26 22:49 by fmesaito
[考研] 340求调剂 +3 Amber00 2026-03-26 3/150 2026-03-26 18:57 by 不吃魚的貓
[考研] 271求调剂 +6 生如夏花… 2026-03-22 6/300 2026-03-26 16:48 by 张凯十八号
[考研] 281求调剂 +6 Koxui 2026-03-24 7/350 2026-03-26 15:37 by 无际的草原
[考研] 一志愿 南京邮电大学 288分 材料考研 求调剂 +3 jl0720 2026-03-26 3/150 2026-03-26 13:39 by zzll406
[考研] 347求调剂 +4 L when 2026-03-25 4/200 2026-03-25 13:37 by cocolv
[考研] 300分,材料,求调剂,英一数二 +5 超赞的 2026-03-24 5/250 2026-03-24 21:07 by 星空星月
[考研] 材料专硕找调剂 +5 哈哈哈吼吼吼哈 2026-03-23 5/250 2026-03-24 19:07 by 了了了了。。
[考研] 361求调剂 +3 Glack 2026-03-22 3/150 2026-03-23 22:03 by fuyu_
[考研] 接收2026硕士调剂(学硕+专硕) +4 allen-yin 2026-03-23 6/300 2026-03-23 15:04 by 汪!?!
信息提示
请填处理意见