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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/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_Numerical_Pde - Fatal编程技术网

Fortran 计算机模拟中的高阶数

Fortran 计算机模拟中的高阶数,fortran,numerical,pde,Fortran,Numerical,Pde,我写了一个Fortran代码来解PDE(类似于连续性方程),但是初始 未知值的顺序是1.0e20这意味着我的代码给了NANE(不是数字)无穷大,因为它是乘或除大的数字 我能做些什么来运行如此大数量的模拟? 方程为:泊松方程和连续性方程您可以使用扩展精度、real*8或双精度(64位浮点表示法)作为类型,而不是real(32位)。这将使指数范围至少为308,而不是较小的38。双精度确定吗?尽管这并不能提供你提到的保证。@francescalus:双精度是另一个Synnyn扩展精度来自我在20世纪7

我写了一个Fortran代码来解PDE(类似于连续性方程),但是初始 未知值的顺序是1.0e20这意味着我的代码给了NANE(不是数字)无穷大,因为它是乘或除大的数字 我能做些什么来运行如此大数量的模拟?

方程为:泊松方程和连续性方程

您可以使用扩展精度、
real*8
双精度
(64位浮点表示法)作为类型,而不是
real
(32位)。这将使指数范围至少为308,而不是较小的38。

双精度
确定吗?尽管这并不能提供你提到的保证。@francescalus:
双精度
是另一个Synnyn<代码>扩展精度来自我在20世纪70年代使用的非品牌Fortran。除非计算机没有使用IEEE-754表示法,否则308范围是一个相当安全的假设。感谢您的回复,我搜索的是不使用实数*8(双精度)的数学技术。我搜索的是一些数学技术,也许可以规范化方程,我想知道是否可以使用这种技术!您使用的是什么物理单位?si(体积、米、冒号、体积/米)通常建议使用各种数量为1的物理(或简化)单位。但是我想如果你使用双精度(64位),事情会好起来的,尽管在你的程序中有巨大的值:)非本机的扩展精度数值会严重影响性能。你应该努力使你的系统正常化,以避免大量的数据,然后再转向这种暴力手段。由于缺乏细节,投票结束。