sugorge的个人博客分享 http://blog.sciencenet.cn/u/sugorge

博文

翠堤春晓::FORTRAN变量如何与格式控制符相依

已有 3264 次阅读 2015-4-15 03:49 |个人分类:学计算机|系统分类:科研笔记

      一在台式机运行成熟的FORTRAN程序包,准备用笔记本运行,却怎么也运行不成功。一段一段的用print老土办法检测,费昨日从清晨到浓夜之工,忍手边诸事待处之棘。在解决了一个个无关紧要的小问题之后,最后总出现的一个问题是弹出如文后所附的信息窗“*.exe已停止工作"。我关掉信息窗,DOS运行窗也就随即消失。真是欲罢不能,欲行无路。最爱的FORTRAN,难道你忘了you told me you loved me?

      到今天终于发现,问题出在程序3千语句的最后输出部分。我安装的是旧版Fortran Power station 4.0,它不认如下面举例程序所示的scheme 1的语句,其用的尖括号唯Intel Fortran独享,Fortran Power station 4.0不认。令人痛苦的是,不认不认好了,可一个信儿也不递。compile,builder,竟然全都一路绿灯通过,execute也不显任何错误信息。

       不忍心把这个语句随便改成如scheme 2那样的普通语句,仍然想跟Intel Fortran一样优雅(用于不同流域,只需改parameter语句,不用改模型内部)。于是开始查书查文献。可清华谭浩强老师、台湾彭国伦老师都笑而不答,遂一路网奔,到:http://stackoverflow.com/questions/9881186/fortran-output-format-dependent-on-a-variable  终于如醐灌顶:学到如scheme 3最简单的方法和如scheme 4最深奥的方法。至于该网提到如scheme 5的最简单的方法在程序要求将若干个数据在一行输出时不适用。

       顺便提一句:写完这篇小文,又发现科学网丁晓彬博友也曾讨论过这个问题http://blog.sciencenet.cn/home.php?mod=space&uid=71139&do=blog&id=495889,可惜之前没有读到,握手。


Program try !try.f90  ! how to make the Fortran output format dependent on a variable
IMPLICIT NONE

integer ncol,i

parameter (ncol=10)

integer Izhengshu (ncol)
character(len=32):: string ! for scheme 4 below
string='(10i3)' ! 10 is following parameter (ncol=10) ! for scheme 4 below

do i=1,ncol
Izhengshu(i)=i
end do

OPEN(25,FILE='tryout.txt',STATUS='unknown')

! Scheme 1   ! only for Intel Fortran
! write(25,'(<ncol>i3)') (izhengshu(i),i=1,ncol)

! Scheme 2 ! correct but not elegant
! write(25,'(10i3)') (izhengshu(i),i=1,ncol)

!Scheme 3  ! simple, elegant but at the risk of error if '999' is defined too small
! write(25,'(999i3)') (izhengshu(i),i=1,ncol)

! scheme 4  ! the most complicate
write (string, '("(", I4, "(i3))")')  ncol
write (25, string )  (izhengshu(i),i=1,ncol)

! Scheme 5 ! correct but not meet the requirements of all-in-one-row
!  write(25,'(i3)') (izhengshu(i),i=1,ncol)

close(25)

stop

end






https://blog.sciencenet.cn/blog-2055-882436.html

上一篇:从科学网走进小文院士
下一篇:为尼泊尔朋友祈福!
收藏 IP: 209.141.181.*| 热度|

1 陈小润

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-26 12:59

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部