fortran goto

Fortran alcance de vista



goto (2)

Las etiquetas de las declaraciones (p. Ej., "50") deben definirse dentro de la "unidad de alcance" actual, que básicamente se traduce en este contexto a la subrutina / función en la que se encuentra la llamada goto (o el programa principal, si la llamada está el programa principal).

Entonces, por ejemplo, en el siguiente programa, el programa principal y las dos subrutinas contenidas tienen su propia etiqueta 50, y los gotos van a "su" línea 50.

program testgotos implicit none goto 50 call second 50 call first call second contains subroutine first integer :: a = 10 goto 50 a = 20 50 print *,''First: a = '', a end subroutine first subroutine second integer :: a = 20 goto 50 a = 40 50 print *,''Second: a = '', a end subroutine second end program testgotos

Tengo un código Fortran heredado con muchas afirmaciones como ''goto 50''. Me preguntaba si el objetivo de goto es global o local. Quiero decir, si múltiples funciones tienen un objetivo ''50'', ¿a dónde conduce el goto?

Gracias por responder.