经测试, 如果是 1.1 这样的字面值, 就是单精度, 用 real*4 就可以。 real*8 就不行。 如果需要双精度 的字面值,要写成 1.1d0 ,这样用real*8 就可以。 参考http://www-classes.usc.edu/engr/ce/108/text/fbk01.htm 情况3 如果,就要需要一个单精度的数字,而输入偏偏是双精度 ,那怎么...
一般REAL等价于REAL*4或REAL(4),是单精度的Fortran跟C一样,也分整型(INTEGER),实型(REAL),双精度(REAL*8或REAL(8)或DOUBLE PRECISION),这些在科学计算中还是比较重要的。一般REAL等价于REAL*4或REAL(4),是单精度的;而双精度在F77中表示为DOUBLE PRECISION,在F90中可以表示为REAL*8或REAL(8...
fortran有默认的变量类型,也就是隐含声明。从字幕i到n开头的变量,默认为整数类型integer,长度为编译器默认的,一般为4,也就是 integer*4。其它字母开头的变量默认为实数类型 real,长度也是编译器默认的,一般为4,也就是 real*4。你可以在程序开头用 implicit none 语句声明来取消默认的变量类型,...
等于编译时加上编译选项: -r4 , 这一般是默认的,-r8 双精度用来检测精确度达16为的计算时试用较多,比如矩阵中的伴随检验!
解析 首先,32位的real,表达成 real(4) 还是 real(8) ,要看具体编译器. 某些编译器还表达成 real(1) 呢. 其次,我们假设 real(4) 表示 32 位实型.那么 2.4785239 应该是 32 位的单精度. 因为如果是双精度,那么应该写为 2.47... 分析总结。 首先32位的real表达成real4还是real8要看具体编译器...
一个complex就是2个real*4,而一个real*4是4个字节,所以一个complex是8个字节,当然你也可以设置双精度,那就是16个字节
4. 5. 6. 7. 8. 9. 10. 11. 12. (2)RecL = 2【记录长度为 8 字节】 Program www_fcode_cn Implicit None Integer*4 :: iVar1 , iVar2 Real*4 :: rVar1 , rVar2 Character(Len=16) :: cStr Open( 12 , File = 'TestBin.Bin' , Access = 'Direct' , Form = 'Unformatted' , Re...
f3,f4默认都是real*4实数变量,并没有赋值给f。对数组的赋值有两种方式,一种是f(i)=,也就是指定数组的下标。另一种是数组整体运算,比如f=100,它的所有单元都赋值100。修改了程序,第一段赋值是整体运算赋值,第二段循环内用的是逐个赋值。分别打印输出。希望能帮到你。以下是输出结果。
或者是编译器本身的默认参数进行编译。比如,integer默认为integer*4,real默认为real*4。如果涉及收敛计算情形的,可能real*4和real*8,以及integer*4和integer*8会产生完全不同的结果。但是,如果将编译好的执行程序放到不同的两台电脑上运行,其结果一定是相同的。供你参考。
首先,32位的real,表达成 real(4) 还是 real(8) ,要看具体编译器。某些编译器还表达成 real(1) 呢。其次,我们假设 real(4) 表示 32 位实型。那么 2.4785239 应该是 32 位的单精度。因为如果是双精度,那么应该写为 2.4785239D0 或 2.4785239_8 ...