24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1142  |  回复: 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的回帖

calos818

木虫 (著名写手)

新人菜鸟


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

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的回帖

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的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 299求调剂 +8 15188958825 2026-03-25 8/400 2026-03-29 01:36 by fmesaito
[考研] 070305高分子化学与物理 304分求调剂 +7 c297914 2026-03-28 7/350 2026-03-29 01:17 by 544594351
[考研] 071000生物学求调剂,初试成绩343 +7 小小甜面团 2026-03-25 7/350 2026-03-28 20:25 by 唐沐儿
[考研] 本科新能源科学与工程,一志愿华理能动285求调剂 +3 AZMK 2026-03-27 5/250 2026-03-28 16:19 by xxxsssccc
[考研] 化学0703 调剂 306分 一志愿211 +4 26要上岸 2026-03-28 4/200 2026-03-28 15:30 by 1018329917
[考研] 复试调剂 +3 raojunqi0129 2026-03-28 3/150 2026-03-28 15:27 by 落睿可思
[考研] 一志愿中南大学化学0703总分337求调剂 +5 niko- 2026-03-27 5/250 2026-03-28 14:25 by 唐沐儿
[考研] 一志愿厦门大学化学学硕307求调剂 +10 y7czhao 2026-03-26 10/500 2026-03-28 14:23 by 唐沐儿
[考研] 329求调剂 +6 星野? 2026-03-26 6/300 2026-03-28 14:14 by 唐沐儿
[考研] 0703本科郑州大学求调剂 +3 nhj_ 2026-03-25 3/150 2026-03-28 13:24 by Iveryant
[考研] 311求调剂 +4 冬十三 2026-03-24 4/200 2026-03-28 13:17 by 唐沐儿
[考研] 085701环境工程,267求调剂 +16 minht 2026-03-26 16/800 2026-03-28 12:16 by zllcz
[考研] 调剂 +3 好好读书。 2026-03-28 3/150 2026-03-28 12:04 by 王保杰33
[考研] 085701环境工程求调剂 +9 多久上课 2026-03-27 9/450 2026-03-28 03:58 by fmesaito
[考研] 086000调剂 +3 7901117076 2026-03-26 3/150 2026-03-27 21:34 by Jianing_Mi
[考研] 复试调剂,一志愿南农083200食品科学与工程 +5 XQTJZ 2026-03-26 5/250 2026-03-27 14:49 by 狂炫麦当当
[硕博家园] 北京林业大学硕导招生广告 +6 kongweilin 2026-03-26 8/400 2026-03-27 10:18 by FF_16
[考研] 求调剂 +6 林之夕 2026-03-24 6/300 2026-03-27 08:38 by hypershenger
[考研] 求调剂,一志愿 南京航空航天大学大学 ,080500材料科学与工程学硕 +4 @taotao 2026-03-26 5/250 2026-03-27 08:10 by hypershenger
[考研] 材料考研求调剂 +3 Dendel 2026-03-23 6/300 2026-03-26 17:51 by fmesaito
信息提示
请填处理意见