fortran77代码write(nprep,82)irepnwrite(npnlm,83)nlm82format(i4.4)83format(i4.4)write后括号里面,第一个位置不是数字,不是星号,是字母,这是什么鬼?书上没找到哪里有这种写法...
fortran 77 代码
write (nprep,82) irepn
write (npnlm,83) nlm
82 format (i4.4)
83 format (i4.4)
write后括号里面,第一个位置不是数字,不是星号,是字母,这是什么鬼?书上没找到哪里有这种写法的解释。
如果这样的话就涉及到fortran的黑科技了。
一般情况下fortran中的数字变量无法变成字符串的,而fortran又没有函数支持变量类型的转换。这时候就用read跟write这两个函数来转换了。详情请搜索:“fortran字符转数字”,网上这种转换方法的介绍一大堆的。
还是补一个栗子吧:
假设我要打开从1.TXT,2.txt.....999.TXT这样命名的文件夹。最初想到的就是:
do I=1,999
open(11,file=i//".txt")
enddo
这样的语句。但是这样写肯定会报错,因为i是整型,不是字符串,而//前后两端一定要是字符串。但是fortran中没有直接能把整型转成字符串的函数,这时候设一个字符型变量nf,然后用write(nf,'(i3)')i, 把i的值以字i3的格式写入nf,就达到了字符串跟数字的相互转换了。同理还有read。有兴趣的话可以自己看一看