postfix 'd + 0' en expresiones literales reales Fortran
-
06-09-2019 - |
Pregunta
¿Alguien knwow lo que el postfix " d + 0 " significa en las asignaciones a M1, M2 y M4 a continuación o hay cualquier recurso en la web o un libro donde uno es muy probable que encuentre esta información?
subroutine plot( t, x, p, q, nga, nt, wron,
& ngq, gq, ngaq1, ngaq2, gaq, rwh, iwh )
implicit none
integer*4 nga, nt, ngq, ngaq1, ngaq2, iwh(*)
real*8 t, x(*), p(*), q(*), wron(nga,*),
& gq(ngq,*), gaq(ngaq1,ngaq2,*), rwh(*)
real*8 M1, M2, M3, M4, mr, mst, h3, Tc
integer*8 iflag
c DISCRETIZE1( Tc, rwh, iwh )
M1 = 0.1362d+0
M2 = 0.09806d+0
M3 = M1 + M2
M4 = 0.236d+0
mr = M1*x(1) + M2*x(2) + M3*x(3) + M4*x(4)
mst = M1*q(1) + M2*q(2) + M4*q(3)
call mess3( t, x, h3, p, q, rwh, iwh, iflag )
write (10,100) t, x(1), x(2), x(3), x(4), Tc, h3, mr-mst
100 format( e20.10, 7(1x,e20.10) )
end
Solución
Significa "doble precisión" y el 0 significa 10 a la potencia cero (cero es el exponente).
Aquí hay una cita de primera referencia que pude encontrar:
un número almacenado en un ordenador es limitado en magnitud y precisión. Los límites dependen de la particular, computadora. Por lo tanto, un número real sólo tiene un cierto número de significativa dígitos. Si más dígitos significativos son requerido para un cálculo, a continuación, los números de doble precisión deben ser utilizados. Una constante de doble precisión está escrito en la misma forma exponencial como una constante real de precisión única excepción con una D en lugar de una E que separa la mantisa del exponente.
Y aquí es una cita de una mejor referencia, www.fortran.com , específicamente el estándar F77.
4.5.2 de doble precisión constante.
Las formas de una doble precisión constante son:
- constante real básico seguido de un doble precisión exponente
- Entero constante seguido por un doble exponente de precisión
El valor de un doble precisión constante es la producto de la constante que precede la D y la potencia de diez indicado por el número entero siguiente el D. El parte constante entera de la forma (2) puede escribirse con más dígitos que una procesador utilizará para aproximar la valor de la constante.