************************************************************************
* File: allunga.for
* Scopo: soluzione compito esame Fondamenti di Informatica 20-06-2000

      SUBROUTINE ALLUNGA(MAT_IN,MAT_OUT,C)
* MAT_IN, C sono parametri di INPUT
* MAT_OUT e' parametro di OUTPUT
      IMPLICIT NONE
* dichiarazioni dei tipi dei parametri formali
      INTEGER C, MAT_IN(2,C), MAT_OUT(C,C)
* dichiarazioni di variabili locali
      INTEGER I, J
* istruzioni eseguibili

* copia righe ordine dispari
      DO 10 I = 1,C,2
        DO 20 J = 1,C
          MAT_OUT(I,J) = MAT_IN(1,J)
 20     CONTINUE
 10   CONTINUE
* copia righe ordine pari
      DO 30 I = 2,C,2
        DO 40 J = 1,C
          MAT_OUT(I,J) = MAT_IN(2,J)
 40     CONTINUE
 30   CONTINUE       
      RETURN
      END

************************************************************************
      PROGRAM MAIN
      IMPLICIT NONE
      INTEGER COLONNE
      PARAMETER (COLONNE = 5)
      INTEGER M_IN(2,COLONNE), M_OUT(COLONNE,COLONNE), I, J

* ESEMPIO DEL TESTO
      M_IN(1,1) = 2
      M_IN(1,2) = 3
      M_IN(1,3) = 4
      M_IN(1,4) = 5
      M_IN(1,5) = 6
      M_IN(2,1) = 9
      M_IN(2,2) = 8
      M_IN(2,3) = 7
      M_IN(2,4) = 6
      M_IN(2,5) = 5
      CALL ALLUNGA(M_IN,M_OUT,COLONNE)

* PARTE NON RICHIESTA DAL TESTO
      DO 10 I = 1,COLONNE
        DO 20 J = 1,COLONNE
          WRITE(*,*) I, J, M_OUT(I,J)
 20     CONTINUE
 10   CONTINUE
      STOP
      END
