|
我要做的是一个涡模拟的过程,每隔一个时间步长出现一个新的涡,此涡的涡量取决于前面出现的所有的涡,我要算1000个涡,所以前面任何一个涡量运算有偏差,积累一千步以后都会使最后的结论有很大误差。
所以我想要用十六位的有效运算精度,从网上查可以这样定义
Integer , parameter :: NP = SELECTED_REAL_KIND(16)
real(Kind = NP) :: U,a,dt
问题是,这样定义以后,我程序中的方程中的常数项,比如说是2,是要写成‘2d0’这样吗?还是像网上说的要写成‘2q’
我试过‘2d0’, 结果好像也不太对,‘2q'的话编译器根本不认
还有,平方项也需要写成’2d0‘这种形式吗?比如说’**2‘还是’**2d0‘
此外,我的变量U,a,dt是需要用户自己输入的,输入时直接敲进’1, 1, 0.1‘这样的数字,会不会影响精度
我用的是intel fortran 2013, windows7 系统 64位,谢谢各位大大能够指点
|
|