Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
fortran双精度的精度_Fortran_Double - Fatal编程技术网

fortran双精度的精度

fortran双精度的精度,fortran,double,Fortran,Double,当我创建epsilons,然后将它们与其他值一起写入文件时,我就有了这段代码。问题是我在文件中得到的ε值与原始值不是很接近。 这是密码 open(unit=3,file='Avner_Yakov_4_q3.txt') v0 = 38 ! 85 mph t_max = x_max/v0; h = 0.1 phi = pi/4 write(3,*) 'calc order eps delta-y delta-z mone-f'

当我创建epsilons,然后将它们与其他值一起写入文件时,我就有了这段代码。问题是我在文件中得到的ε值与原始值不是很接近。 这是密码

open(unit=3,file='Avner_Yakov_4_q3.txt')
    v0 = 38 ! 85 mph
    t_max = x_max/v0;
    h = 0.1
    phi = pi/4
    write(3,*) 'calc  order    eps       delta-y      delta-z   mone-f'
    write(3,*) '------------------------------------------------------'
    eps1 = (/ 1d-1, 1d-3, 1d-5, 1d-7 /)
    do i=1,4
        r = solve_ball(h, t_max, eps1(i), v0, phi,'rk2')
        z_max(2) = r(3,ubound(r,2))
        y_max(2) = r(2,ubound(r,2))
        write(3,"(1i3,1i7,3E12.2,1i6)") i, 2, eps1(i), abs(y_max(2)-y_max(1)), abs(z_max(2)-z_max(1)), ubound(r,2)
     !deallocate (r)
    end do
    do i=1,4
        r = solve_ball(h, t_max, eps1(i), v0, phi,'rk3')
        z_max(2) = r(3,ubound(r,2))
        y_max(2) = r(2,ubound(r,2))
        write(3,"(1i3,1i7,3E12.2,1i6)") i+4, 3, eps1(i), abs(y_max(2)-y_max(1)), abs(z_max(2)-z_max(1)), ubound(r,2)
    !  deallocate (r)
    end do
    close(unit=3)
以及输出

calc  order    eps       delta-y      delta-z   mone-f
 ------------------------------------------------------
  1      2    0.99E-01    0.14E-01    0.74E-01     5
  2      2    0.59E-03    0.19E-01    0.10E+00     7
  3      2    0.42E-05    0.91E-02    0.48E-01    50
  4      2    0.24E-07    0.61E-03    0.32E-02   476
  5      3    0.99E-01    0.34E-01    0.18E+00    28
  6      3    0.59E-03    0.24E-01    0.13E+00     8
  7      3    0.22E-05    0.77E-02    0.41E-01    10
  8      3    0.84E-08    0.45E-02    0.24E-01    50

我希望在“eps”列中得到1E-01,1E-03,1E-05,1E-07,如果您在函数
solve_ball
中更改
eps1
,则调用程序中的
eps1
值也将更改。我们需要查看函数
solve\u ball