1 0 -100 32767 +15Ejemplos de constantes de tipo real:
1.0 -0.25 2.0E6 3.333E-1La notación E se usa para números que se encuentran escritos en notación científica. Por lo que 2.0E6 es dos millones, mientras que 3.333E-1 es aproximadamente la tercera parte de uno
Para constantes que rebasen la capacidad de almacenamiento de un real se puede usar doble precisión. En este caso, la notación usada es el símbolon "D" en vez de "E". Por ejemplo:
2.0D-1 1D99Por lo que 2.0D-1 es la quinta parte de uno almacenada en un tipo doble precisión y 1D99 es un uno seguido por 99 ceros.
El siguiente tipo son constantes complejas. Los cuales son indicados por un par de constantes (enteras o reales), separadas por una coma y encerrados entre paréntesis. Por ejemplo:
(2, -3) (1., 9.9E-1)El primer número denota la parte real y el segundo la parte imaginaria.
El quinto tipo, son las constantes lógicas. Estas sólo pueden tener uno de dos posibles valores, que son:
.TRUE. .FALSE.Observar que se requiere que se encierren con punto las palabras.
El último tipo son las constantes de caracteres. Estas son por lo general usadas como un arreglo de caracteres, llamado cadena. Estas consisten de una secuencia arbitraria de caracteres encerradas con apóstrofes (comillas sencillas), por ejemplo:
'ABC' '¡Cualquier cosa!' 'Es un magnífico día'Las constantes de cadenas son sensibles a mayúsculas y minúsculas. Se presenta un problema cuando se quiere poner un apóstrofe dentro de la cadena. En este caso la cadena debe ser encerrada entre comillas dobles, por ejemplo:
"Hay muchos CD's piratas"
operando operador operandoy un ejemplo es
x + yEl resultado de una expresión es por si misma otro operando, por lo que se puede hacer anidamiento como lo siguiente:
x + 2 * yCon lo anterior se presenta la pregunta de la precedencia, ¿la última expresión significa x + (2*y) o (x+2)*y? La precedencia de los operadores aritméticos en Fortran 77 es (de la más alta a la más baja):
** {exponenciación} * / {multiplicación, división} + - {suma, resta}Todos los operadores son evaluados de izquierda a derecha, excepto el operador de exponenciación, el cual tiene precedencia de derecha a izquierda. Si se desea cambiar el orden de evaluación, se pueden usar paréntesis.
Todos los operadores anteriores son binarios. Se tienen también operadores unarios, uno de ellos es el de negación - y que tiene una precedencia mayor que los anteriores. Por lo que la expresión -x+y significa lo que se esperaría.
Se debe tener cuidado al usar el operador de división, el cual devolverá distintos valores dependiendo del tipo de datos que se estén usando. Si ambos operandos son enteros, se hace una división entera, de otra forma se hace una división que devuelve un tipo real. Por ejemplo, 3/2 es igual a 1 y 3./2. es igual a 1.5.
nombre_de_variable = expresiónLa interpretación es como sigue: se evalúa el lado derecho y se asigna el valor del resultado a la variable de la izquierda. La expresión de la derecha puede contener otras variables, pero estas nunca cambiaran de valor. Por ejemplo:
area = pi * r**2no cambia el valor de pi, ni de r, solamente de area.
real x x = x + 1el uno será convertido al tipo real, y se incrementa la variable x en uno. Sin embargo, en expresiones más complicadas, es una buena práctica de programación forzar explícitamente la conversión de tipos. Para números se tienen las siguientes funciones disponibles:
int real dble ichar charLas primeras tres no requieren explicación. Con ichar se toma un caracter y se convierte a un entero y con char se hace lo contrario.
Ejemplo: ¿Cómo multiplicar dos variables tipo real x e y usando doble precisión y guardando el resultado en una variable de doble precisión w?
w = dble(x)*dble(y)Observar que es diferente de:
w = dble(x*y)
2+1-10/3/4 2**3/3*2-5 -(3*4-2)**(3-2**1+1)/-2