Introducció
Fortran (FORmula TRANslation) és un dels llenguatges de programació més antics i àmpliament utilitzats en el camp de la computació científica i d'enginyeria. OpenVMS ofereix un entorn robust per a la programació en Fortran, permetent als desenvolupadors aprofitar les capacitats del sistema operatiu per a aplicacions d'alt rendiment.
Objectius del Mòdul
En aquest mòdul, aprendràs:
- Com compilar i executar programes Fortran a OpenVMS.
- Les característiques específiques de Fortran a OpenVMS.
- Com utilitzar les biblioteques i serveis del sistema des de Fortran.
- Bones pràctiques per a la programació en Fortran a OpenVMS.
- Compilació i Execució de Programes Fortran
1.1. Escriptura d'un Programa Fortran
Comencem amb un simple programa Fortran que imprimeix "Hola, món!" a la pantalla.
1.2. Compilació del Programa
Per compilar un programa Fortran a OpenVMS, utilitza el compilador Fortran proporcionat pel sistema. Suposant que el fitxer del programa es diu holamon.f90
, la comanda per compilar-lo és:
Aquesta comanda generarà un fitxer objecte holamon.obj
.
1.3. Enllaç del Programa
Després de compilar el programa, necessites enllaçar el fitxer objecte per crear un executable. Utilitza la comanda següent:
Aquesta comanda crearà un fitxer executable holamon.exe
.
1.4. Execució del Programa
Finalment, pots executar el programa amb la comanda:
Si tot ha anat bé, veuràs la sortida següent a la pantalla:
- Característiques Específiques de Fortran a OpenVMS
2.1. Gestió de Fitxers
Fortran a OpenVMS ofereix una gestió de fitxers robusta. Aquí tens un exemple de com llegir i escriure fitxers:
PROGRAM GestioFitxers IMPLICIT NONE INTEGER :: i CHARACTER(LEN=100) :: linia ! Obrir fitxer per escriure OPEN(UNIT=10, FILE='sortida.txt', STATUS='NEW') ! Escriure dades al fitxer DO i = 1, 10 WRITE(10, '(A,I2)') 'Línia número ', i END DO ! Tancar fitxer CLOSE(10) ! Obrir fitxer per llegir OPEN(UNIT=20, FILE='sortida.txt', STATUS='OLD') ! Llegir i imprimir dades del fitxer DO READ(20, '(A)', END=100) linia PRINT *, linia END DO 100 CONTINUE CLOSE(20) END PROGRAM GestioFitxers
2.2. Interfície amb Serveis del Sistema
Fortran a OpenVMS permet interfícies amb serveis del sistema, com ara la gestió de processos i la comunicació entre processos. Aquí tens un exemple de com cridar una subrutina del sistema:
PROGRAM CridaSistema IMPLICIT NONE INTEGER :: estat CALL LIB$SPAWN('DIR', estat) PRINT *, 'Estat de la comanda DIR: ', estat END PROGRAM CridaSistema
- Bones Pràctiques
3.1. Documentació del Codi
Documenta el teu codi amb comentaris clars i concisos. Això ajuda a altres desenvolupadors (i a tu mateix en el futur) a entendre el codi.
3.2. Gestió d'Errors
Implementa una gestió d'errors robusta per assegurar que el teu programa pugui manejar situacions inesperades de manera elegant.
3.3. Optimització del Rendiment
Utilitza les opcions d'optimització del compilador per millorar el rendiment del teu codi. Per exemple:
Exercicis Pràctics
Exercici 1: Programa de Càlcul de Factorial
Escriu un programa Fortran que calculi el factorial d'un nombre donat per l'usuari.
Solució
PROGRAM Factorial IMPLICIT NONE INTEGER :: n, i INTEGER :: resultat PRINT *, 'Introdueix un nombre:' READ *, n resultat = 1 DO i = 1, n resultat = resultat * i END DO PRINT *, 'El factorial de ', n, ' és ', resultat END PROGRAM Factorial
Exercici 2: Lectura i Escriptura de Fitxers
Escriu un programa que llegeixi un fitxer de text amb números, calculi la seva suma i escrigui el resultat en un altre fitxer.
Solució
PROGRAM SumaFitxers IMPLICIT NONE INTEGER :: num, suma INTEGER :: estat suma = 0 ! Obrir fitxer per llegir OPEN(UNIT=10, FILE='numeros.txt', STATUS='OLD') ! Llegir números i calcular la suma DO READ(10, *, IOSTAT=estat) num IF (estat /= 0) EXIT suma = suma + num END DO CLOSE(10) ! Escriure resultat en un altre fitxer OPEN(UNIT=20, FILE='resultat.txt', STATUS='NEW') WRITE(20, *) 'La suma és: ', suma CLOSE(20) PRINT *, 'La suma ha estat escrita en resultat.txt' END PROGRAM SumaFitxers
Conclusió
En aquest mòdul, has après com utilitzar Fortran a OpenVMS, des de la compilació i execució de programes fins a la interfície amb serveis del sistema. També has vist exemples pràctics i exercicis per reforçar els conceptes apresos. Amb aquestes habilitats, estaràs preparat per desenvolupar aplicacions científiques i d'enginyeria robustes a OpenVMS.
Curs de Programació OpenVMS
Mòdul 1: Introducció a OpenVMS
- Què és OpenVMS?
- Història i Evolució d'OpenVMS
- Conceptes Bàsics i Terminologia
- Visió General de l'Arquitectura del Sistema
- Instal·lació i Configuració
Mòdul 2: Comandes Bàsiques d'OpenVMS
- Introducció a DCL (Digital Command Language)
- Comandes de Gestió de Fitxers
- Comandes de Gestió de Processos
- Comandes de Gestió del Sistema
- Ús de l'Ajuda i la Documentació
Mòdul 3: Sistema de Fitxers d'OpenVMS
- Estructura del Sistema de Fitxers
- Tipus i Atributs de Fitxers
- Operacions amb Fitxers
- Gestió de Directoris
- Control d'Accés i Seguretat
Mòdul 4: Scripting amb DCL
- Introducció al Scripting amb DCL
- Variables i Tipus de Dades
- Estructures de Control
- Subrutines i Funcions
- Gestió d'Errors
Mòdul 5: Gestió del Sistema OpenVMS
- Gestió de Comptes d'Usuari
- Gestió de Discs i Volums
- Procediments de Còpia de Seguretat i Restauració
- Monitorització del Sistema i Optimització del Rendiment
- Gestió de Parches i Actualitzacions
Mòdul 6: Xarxes a OpenVMS
- Conceptes Bàsics de Xarxes
- Configuració de TCP/IP
- Configuració de DECnet
- Serveis i Protocols de Xarxa
- Resolució de Problemes de Xarxa
Mòdul 7: Programació Avançada a OpenVMS
- Introducció als Llenguatges de Programació d'OpenVMS
- Ús de C a OpenVMS
- Ús de Fortran a OpenVMS
- Ús de COBOL a OpenVMS
- Interfície amb Serveis del Sistema
Mòdul 8: Clúster d'OpenVMS
- Introducció als Clústers
- Configuració i Gestió de Clústers
- Comunicació en Clúster
- Failover i Equilibri de Càrrega
- Seguretat en Clúster
Mòdul 9: Seguretat a OpenVMS
- Conceptes de Seguretat i Millors Pràctiques
- Autenticació i Autorització d'Usuaris
- Auditoria i Monitorització
- Xifrat de Dades
- Resposta i Recuperació d'Incidents