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:

  1. Com compilar i executar programes Fortran a OpenVMS.
  2. Les característiques específiques de Fortran a OpenVMS.
  3. Com utilitzar les biblioteques i serveis del sistema des de Fortran.
  4. Bones pràctiques per a la programació en Fortran a OpenVMS.

  1. 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.

PROGRAM HolaMon
  PRINT *, 'Hola, món!'
END PROGRAM HolaMon

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:

$ FORTRAN holamon.f90

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:

$ LINK holamon

Aquesta comanda crearà un fitxer executable holamon.exe.

1.4. Execució del Programa

Finalment, pots executar el programa amb la comanda:

$ RUN holamon

Si tot ha anat bé, veuràs la sortida següent a la pantalla:

Hola, món!

  1. 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

  1. 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:

$ FORTRAN/OPTIMIZE=LEVEL=4 holamon.f90

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

Mòdul 2: Comandes Bàsiques d'OpenVMS

Mòdul 3: Sistema de Fitxers d'OpenVMS

Mòdul 4: Scripting amb DCL

Mòdul 5: Gestió del Sistema OpenVMS

Mòdul 6: Xarxes a OpenVMS

Mòdul 7: Programació Avançada a OpenVMS

Mòdul 8: Clúster d'OpenVMS

Mòdul 9: Seguretat a OpenVMS

Mòdul 10: Resolució de Problemes i Optimització

© Copyright 2024. Tots els drets reservats