2010-02-23 5 views

Répondre

3

The D means "× 10???", ou communément appelé e en 1.e+300 en C#, mais c'est pour la double précision.

Le DOUBLE PRECISION statement définit simplement 3 variables pour être de type double.

Le DATA statement

DATA X/Y/ 

se traduit

X = Y; 

en C#. Par conséquent, vous obtenez

double INF = 1.e+300, DMIN, D12; 

Depuis INF est si grand, je crois que cela signifie « Infinity », dans ce cas, il est préférable d'utiliser le real IEEE infinity (double INF = double.PositiveInfinity, ...).

2

Le code déclare une constante appelée INF (c'est-à-dire infini) avec la valeur 10^300. Vous voudriez remplacer double.PositiveInfinity ou double.MaxValue.

1

La valeur serait 1.0e300, mais je suis sûr que ce qui est prévu est qu'il soit fixé à la plus grande valeur double qui peut être exprimée sur le CPU actuel. donc en C# ce serait double.PositiveInfinity plutôt qu'une valeur codée en dur.

2

Le code est dans le style FORTRAN IV ou FORTRAN 77 plutôt que Fortran 90/95/2003. Double Précision déclare que les variables sont deux fois plus précises qu'un réel normal. Je ne suis pas sûr que les normes FORTRAN de cette époque étaient extrêmement précises quant à ce que cela signifiait, car il y avait alors une plus grande variété de matériel numérique. Aujourd'hui, il obtiendra pratiquement toujours un réel de 8 octets. L'instruction Data initialise la variable INF. L'utilisation de "D" dans la constante "1.D + 300", au lieu de E, est ancienne FORTRAN pour spécifier que la constante est double précision.

La façon Fortran (> = 90) d'obtention de la plus grande à double positif:

INF = énorme (1.0D + 0)