注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

已走过,已留下,有记忆,还在继续……

树枝伸到我的窗前,像寡言的大地的思慕之声

 
 
 

日志

 
 

(菜鸟继续学)FORTRAN输入输出一点心得(ZZ)  

2012-01-04 15:13:03|  分类: fortran |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
program output
implicit none

real*4,allocatable :: M(:,:),V(:)
character(len=100) :: sfmt
integer :: dim1,dim2
integer :: i,j

dim1=4
dim2=5

allocate(M(dim1,dim2),V(dim1))

call random_seed()
call random_number(M)
call random_number(V)

open(100,file='example.txt',action='write',status='replace')

!输出向量 M:
write(100,'(F15.8)') V !不必确定向量长度 自动输出 输出到一列
write(100,'(<size(V)>F15.8)') V !输出到一行

close(100)

!输出矩阵 M:
open(100,file='example.txt',action='write',status='replace')
!按列输出
!方法1
write(100,'(<size(M,1)>F15.8)') M !用尖括号在格式中加入变量

!方法2
write(sfmt,*) '(',size(M,1),'F15.8)' !产生字符串格式
write(100,'(<size(M,1)>F15.8)') M 

!方法3
do i=1,dim2
    write(100,'(<dim1>F15.8)') M(:,i)
end do

!方法4
do i=1,dim2
    do j=1,dim1
        write(100,'(F15.8)',advance='no') M(j,i)
    end do
    write(100,*)
end do

close(100)

open(100,file='example.txt',action='write',status='replace')
!按行输出
!方法1
write(100,'(<size(M,2)>F15.8)') transpose(M) !用尖括号在格式中加入变量

!方法2
write(sfmt,*) '(',size(M,2),'F15.8)' !产生字符串格式
write(100,'(<size(M,2)>F15.8)') transpose(M) 

!方法3
do j=1,dim1
    write(100,'(<dim2>F15.8)') M(j,:)
end do

!方法4
do i=1,dim1
    do j=1,dim2
        write(100,'(F15.8)',advance='no') M(i,j)
    end do
    write(100,*)
end do

close(100)

deallocate(M)
end program output

!输入输出格式本质上就是字符串,所以只要做到熟练操作字符串就可以掌握输入输出了,还有什么好的方法,欢迎大家讨论,谢谢!


*************************************************************
尖括号的用法是 Visual Fortran 系列扩展的语法,不是 Fortran 标准的。建议用方法2
*************************************************************
CVF、IVF 帮助文档中,特别提到,对输入输出优化有比较高的要求时,应该用 方法 1,其效率比较高。当然,移植起来,可能是问题了。
  评论这张
 
阅读(441)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017