real(WP), parameter :: Density = 100.0_WP ! kg/m^3
想问一下这里的100.0_WP 中的_WP是什么含义,为什么要在一个常数后面加_WP呢
wp表示数据精度,变量和常量、常数都有精度。你可以看看视频 https://www.bilibili.com/video/BV1XD4y1S7jz?p=2
BACKSPACE( UNIT=number, ERR=errlabel, IOSTAT=iostat )
把文件的读写位置回退一步(?步长是多少?顺序读取和直接读取均可?)
ENDFILE( UNIT=number, ERR=errlabel, IOSTAT=iostat )
把文件的读写位置变成文件的结尾(?舍弃后续内容)
REWIND( UNIT=number, ERR=errlabel, IOSTAT=iostat )
把文件的读写位置倒回文件开头
CLOSE( UNIT=number, STATUS=string, ERR=errlabel, IOSTAT=iostat )
把文件关闭,对应OPEN的操作。
STATUS
关闭后文件的状态。
'KEEP':文件关闭后,保留住这个文件,默认值
'DELETE':文件关闭后,删除这个文件(?Fortran删除文件的操作,须先OPEN,再CLOSE?)
根据参考资料中的内容,无法得出_WP指的具体含义。在Fortran中,常数后面加上_WP(或_DP)表示使用默认的精度,即单精度浮点数使用_WP(without precision), 双精度浮点数使用_DP(double precision)。这样做可以使程序的可读性更好,并且在更改精度时,只需更改一处代码即可。下面给出一个简单的例子:
program example
implicit none
real(4) :: a = 100.0_WP
real(8) :: b = 100.0_DP
write(*,*) "Single precision:", a
write(*,*) "Double precision:", b
end program example
输出结果为:
Single precision: 100.
Double precision: 100.00000000000000
可以看到,加上_WP或_DP并不会改变常数的值,只是指定了使用的精度。