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 如何编写format语句从文件中读取实数并将其存储在数组中?_Fortran_Format_Precision - Fatal编程技术网

Fortran 如何编写format语句从文件中读取实数并将其存储在数组中?

Fortran 如何编写format语句从文件中读取实数并将其存储在数组中?,fortran,format,precision,Fortran,Format,Precision,我正在编写一个程序,从文本文件中读取实数(小数点后最多16位),并将其存储在数组中。 下面是一个简单的程序,显示了我想做的事情: program readexcel dimension array(10,10) Open(unit=10,file='aa.txt',status='old') read (10,*) ((array(i,j),j=1,10),i=1,10) pause end program aa.txt文件(10x10): 这段代码可以工

我正在编写一个程序,从文本文件中读取实数(小数点后最多16位),并将其存储在数组中。 下面是一个简单的程序,显示了我想做的事情:

program readexcel
    dimension array(10,10)   
    Open(unit=10,file='aa.txt',status='old')
    read (10,*) ((array(i,j),j=1,10),i=1,10)
    pause
end program
aa.txt文件(10x10):

这段代码可以工作,但是使用星号*(默认值)将只读取小数点后的四位数字,因为数组的类型是real。 我尝试使用双精度数组,但这个解决方案不实用,因为在实际的程序中,我有太多的数组,以及太多使用这些数组的子程序。
我需要的帮助是编写一个格式语句,在这里我可以定义变量的宽度以及位数。

如果需要16位有效数字,则必须使用“双精度”或更高的精度-在几乎所有机器上,默认实数最多只能代表7位有效数字,如果你正在使用它们,你就无法得到更多,在内部,它们就是这样表示的。哦,始终使用隐式无,不要使用暂停,了解Fortran类型而不是“双精度”-如果您仔细使用语言的后一个功能,您所做的更改“不实用”实际上应该是微不足道的如果您想要16个有效数字,您将不得不使用“双精度”或者更可能——在几乎所有的机器上,默认实数最多只能代表7位有效数字,如果你使用它们,你就不能得到更多,在内部,这就是它们的全部表示形式。哦,始终使用隐式无,不要使用暂停,学习Fortran类型而不是“双精度”-如果您仔细使用语言的后一个功能,您所做的更改“不实用”实际上应该是微不足道的
1.12312374123123,2.12312312345,3,4,5,6,7,8,9,10
2,2.1,3.1,4.1,5.1,6.1,7.1,8.1,9.1,10.1
3,2.2,3.2,2,5.2,6.2,7.2,8.2,9.2,10.2
4,2.3,3.3,4.3,5.3,6.3,7.3,8.3,9.3,10.3
5,2.4,3.4,4.4,5.4,6.4,7.4,8.4,9.4,10.4
6,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5
7,2.6,3.6,4.6123456789101112,5.6,6.6,7.6,8.6,9.6,10.6
8,2.7,3.7,4.7,5.7,6.7,7.7,8.7,9.7,10.7
9,2.8,3.8,4.8,5.8,6.8,2,8.8,9.8,10.8
10,2.9,3.9,4.9,5.9,6.9,7.9,8.9,9.9,10.9