24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1146  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 085600 材料与化工 329分求调剂 +10 Mr. Z 2026-03-25 10/500 2026-03-29 00:34 by 我是小康
[考研] 085600,专业课化工原理,321分求调剂 +4 大馋小子 2026-03-28 4/200 2026-03-29 00:32 by 544594351
[考研] 298求调剂 +3 种圣赐 2026-03-28 3/150 2026-03-28 23:58 by wxiongid
[考研] 085701求调剂初试286分 +4 secret0328 2026-03-28 4/200 2026-03-28 21:09 by 15366876211
[考研] 277跪求调剂 +5 1915668 2026-03-27 9/450 2026-03-28 09:58 by zhshch
[考研] 材料求调剂一志愿哈工大324 +7 闫旭东 2026-03-28 9/450 2026-03-28 08:51 by Xu de nuo
[考研] 086502化学工程342求调剂 +6 阿姨复古不过 2026-03-27 6/300 2026-03-28 07:06 by wangy0907
[考研] 材料求调剂 一志愿哈工大总分298分,前三科223分 +5 dongfang59 2026-03-27 5/250 2026-03-28 04:53 by wxiongid
[考研] 一志愿 西北大学 总分282 英语一62 求调剂 +7 18419759900 2026-03-25 8/400 2026-03-27 16:38 by 18419759900
[考研] 复试调剂,一志愿南农083200食品科学与工程 +5 XQTJZ 2026-03-26 5/250 2026-03-27 14:49 by 狂炫麦当当
[考研] 材料调剂 +8 匹克i 2026-03-23 8/400 2026-03-27 08:11 by hypershenger
[考研] 生物学 296 求调剂 +4 朵朵- 2026-03-26 6/300 2026-03-26 19:01 by 不吃魚的貓
[考研] 352求调剂 +4 大米饭! 2026-03-22 4/200 2026-03-26 16:40 by 不吃魚的貓
[考研] 334分 一志愿武理 材料求调剂 +4 李李不服输 2026-03-26 4/200 2026-03-26 16:00 by 不吃魚的貓
[考研] 一志愿河工大 081700 276求调剂 +4 地球绕着太阳转 2026-03-23 4/200 2026-03-26 14:27 by zzll406
[考研] 一志愿上海交大生物与医药专硕324分,求调剂 +6 jiajunX 2026-03-22 6/300 2026-03-25 23:05 by licg0208
[考研] 上海电力大学材料防护与新材料重点实验室招收调剂研究生(材料、化学、电化学,环境) +4 我爱学电池 2026-03-23 4/200 2026-03-25 00:59 by 1027_324
[考研] 277分求调剂,跨调材料 +3 考研调剂lxh 2026-03-24 3/150 2026-03-24 13:52 by JourneyLucky
[考研] 一志愿吉大化学322求调剂 +4 17501029541 2026-03-23 6/300 2026-03-24 10:21 by 戴围脖的小蚊子
[考研] 333求调剂 +3 ALULU4408 2026-03-23 3/150 2026-03-23 19:04 by macy2011
信息提示
请填处理意见