Lo que Vd. siempre quiso saber sobre VMS y no se atrevı́a a preguntar Para empezar, un comentario muy simple: los comandos y sentencias de VMS y de FORTRAN se pueden escribir indistintamente en minúscula o en mayúsculas. A continuación se denominan en letras mayúsculas los comandos de VMS, FORTRAN y las extensiones de los archivos (por ejemplo, HELP o nombre.TXT) y en minúsculas el resto del texto. Generalidades Entrar en la Cuenta de Usuario (o “Login”) Username: A_C2xxx Password: *********** Salir de la Cuenta (o “Logout”) ZEUS_$ LOGOUT ZEUS_$ LO (forma abreviada) Cambiar el “Password” de la Cuenta ZEUS_$ SET PASSWORD Ayuda sobre comandos de VMS ZEUS_$ HELP Para ver la Cuota en Disco Disponible en la cuenta (1 bloque=512 bytes) ZEUS_$ SHOW QUOTA ZEUS_$ SH QUO (forma abreviada) Estructura General de un Archivo en VMS: nombre.EXT;V EXT es la Extensión del archivo. Por ejemplo: .FOR : archivo fuente en FORTRAN .OBJ : archivo compilado .EXE : archivo ejecutable .TXT : archivo de texto .DAT : archivo de datos .RES : archivo de resultados .COM : programa de comandos .DIR : directorio V es el número de versión del archivo Sobre Directorios Directorio principal de cada usuario: DISK$ALU:[A C2xx] Para ver en qué directorio se está: ZEUS_$ SHOW DEFAULT ZEUS_$ SH DEF (forma abreviada) Para ver lo que hay en un directorio: ZEUS_$ DIR (da la lista de ficheros del directorio) ZEUS_$ DIR/SIZE/DAT (da la lista con el tama~ no y fecha de creación) Para Crear un Directorio ZEUS_$ CREATE/DIR [.nombre] Para Moverse a un Directorio Ya Creado (usando el nombre completo del directorio) ZEUS_$ SET DEF DISK$ALU:[A_C2xx.nombre] Para Moverse a un Directorio Ya Creado (si se encuentra en un nivel siguiente al actual) ZEUS_$ SET DEF [.nombre] Para Moverse a un Directorio del Nivel Anterior en el Árbol de Directorios ZEUS_$ SET DEF [-] En caso de perderse en los directorios de la cuenta: volver al directorio principal ZEUS_$ SET DEF DISK$ALU:[A_C2xx] Para borrar un directorio Mejor no hacerlo, pero si Vd. quiere eliminar un directorio se lo contaremos a continuación. Sobre Archivos Para ver las Protecciones de los Archivos de un Directorio ZEUS_$ DIR/PROT Y la respuesta será por ejemplo: Directory DISK$ALU:[A_C2xx] EJEMPLO.FOR;1 (RWE,RWED,RWE,) PRUEBAS.DIR;1 (RWED,RWED,,) Total of 2 files. (RWE,RWED,RWE,) hace referencia a las autorizaciones permitidas a 4 tipos genéricos de usuarios y que se encuentran separadas por comas: (Sistema,Usuario,Grupo,Red). Las letras RWED indica lo que se permite hacer a cada tipo de usuario, a saber: R (Read) Leer, W (Write) Escribir (es decir modificar el archivo),E (Execute) Ejecutar y D (Delete) Borrar. Para cambiar las Protecciones de un Archivo ZEUS_$ SET PROT=(S:RWED,O:RWED,G,W) nombre.TXT En este caso se asignan al archivo “nombre.TXT” las autorizaciones siguientes: el Responsable del Sistema (S de “system”) puede RWED (es decir, leer, escribir, ejecutar y borrar el archivo), el Propio Usuario (O de “owner”) puede RWED, los miembros del mismo Grupo de usuarios (G de “group”) no pueden hacer nada con ese archivo, y el Resto de Usuarios de la Red (W de “world”) tampoco. Borrado de un Fichero ZEUS_$ DELETE nombre.TXT;5 (borra la versión número 5 del archivo nombre.TXT) ZEUS_$ DELETE nombre.TXT.* (borra todas las versiones del archivo nombre.TXT) ZEUS_$ DELETE *.TXT.* (borra todos los archivos con extensión TXT) OJO!!--> ZEUS_$ DELETE *.*.* (borra TODOS los archivos del directorio) En VMS NO es posible recuperar ficheros que ya han sido borrados por lo que se recomienda precaución en el empleo de este comando en especial con los *. Borrado de un Directorio El borrado de un directorio requiere: 0) Estar seguro de que se quiere borrar el directorio 1) Borrar todos los archivos que contiene el directorio que se desea eliminar 2) Situarse en el nivel de directorios anterior 3) Cambiar el sistema de protecciones del directorio que se quiere eliminar de modo que el usuario tenga privilegio de borrado (D) 4) Borrar el directorio Borrar todas las versiones de un archivo excepto la última ZEUS_$ PURGE nombre.TXT Volcar en pantalla el contenido de un archivo de texto sin editarlo ZEUS_$ TYPE nombre.TXT Duplicar el contenido de un archivo en otro archivo nuevo ZEUS_$ COPY que.TXT donde.TXT ZEUS_$ COPY que.TXT DISK$ALU:[A_C2xx.PRUEBAS]donde.TXT Mover un Archivo de un directorio a otro/Cambio de Nombre de un Archivo ZEUS_$ RENAME que.TXT DISK$ALU:[A_C2xx.PRUEBAS]donde.TXT Imprimir un Archivo de Texto (NUNCA Ficheros Ejecutables ni Ficheros Objetos) ZEUS_$ PRINT nombre.TXT Creación de un Archivo de Texto y/o Edición de uno ya existente ZEUS_$ EDIT nombre.TXT Cuando se invoca el editor de texto se puede escribir y desplazarse libremente en las distintas lineas del documento. Para preparar “programas fuente” de FORTRAN se recomienda emplear solamente códigos ASCII, y por ello no acentuar palabras ni emplear la letra “ñ”. Para abandonar el modo de edición teclear las teclas ‘‘Control+Z’’ y aparecerá un * en la parte inferior izquierda de la pantalla. Seguidamente teclear una de las dos opciones siguientes: * exit (guarda las modificaciones realizadas y sale del editor) <--- RECOMENDADA * quit (no guarda los cambios y sale del editor) Sobre Compilación, Linkado y Ejecución de Programas FORTRAN Edición del “programa fuente” en Lenguaje FORTRAN ZEUS_$ EDIT trabajo.FOR .................(se escribe el programita) Para salir del editor: Control+Z *exit Compilación del programa “trabajo.FOR” ZEUS_$ FOR trabajo Se crea un archivo “objeto” que el sistema automáticamente asigna la extensión “.OBJ”. No editar este fichero ni imprimirlo porque está encriptado. Si no hay errores, entonces se puede pasar a la fase de “linkado” y creación del archivo ejecutable. Linkado de ficheros objeto. ZEUS_$ LIN trabajo Se crea un archivo “ejecutable” que el sistema automáticamente asigna la extensión “.EXE”. No editar este fichero ni imprimirlo porque está encriptado. Ejecución de un archivo “.EXE” ZEUS_$ RUN trabajo Para interrumpir la ejecución de un programa: teclear ‘‘Control+C’’ Para compilar y “linkar” un programa con subrutinas editadas en ficheros independientes ZEUS_$ FOR trabajo ZEUS_$ FOR subrutina1 ZEUS_$ FOR subrutina2 ZEUS_$ LIN trabajo+subrutina1+subrutina2 El resultado es un ejecutable llamado “trabajo.EXE”. Para invocar la aplicación de Ayuda de FORTRAN ZEUS_$ HELP FORTRAN ZEUS_$ HELP FORTRAN INTRINSIC (Proporciona informacion sobre las funciones intrinsecas de FORTRAN, por ejemplo funciones trigonométricas, de generación de números aleatorios, y muchas otras) EJEMPLO Crearemos en primer lugar un directorio llamado PRUEBAS y nos moveremos a él ZEUS_$ CREATE/DIR [.PRUEBAS] ZEUS_$ SHOW DEF ZEUS_$ SET DEF [.PRUEBAS] ZEUS_$ EDIT FACTORIAL.FOR Y en el editor escribimos teniendo en cuenta los criterios de escritura de sentencias FORTRAN en cada lı́nea, es decir empezando a escribir por el caracter numero 7 de la primera lı́nea: 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 99 program calculo_factorial implicit real*8(a-h,o-z),integer*4(i-n) write(6,*)’ Dime el numero ’ read(5,*)numero nfactorial=1 do i=1,numero nfactorial=nfactorial*i enddo write(6,99)numero,nfactorial format(’ El factorial de ’,i5,’ es ’,i5) end Y a continuación jugaremos un poco........