Questo sito contribuisce alla audience di

Passaggio di sottosezioni di array nel Fortran 2

La seconda parte dell' esempio su come passare una parte di un array ad un sottoprogramma

fortran 90,intel fortran,visual fortran,compilatore fortran

Ci sono diverse cose importanti da notare nell’esempio che abbiamo riportato nell’articolo precedente. In primo luogo, si noti che anche se abbiamo scritto il codice più generale possibile per consentire dimensioni arbitrarie indicate con m e n, abbiamo ancora bisogno di specificare la dimensione principale della matrice A.

La dichiarazione di lunghezza variabile (*) può essere utilizzata solo per l’ultima dimensione di un array. La ragione di questo è il modo in cui il Fortran 77 manipola gli array multidimensionali.Quando si calcola y = A * x da operazioni saxpy, abbiamo bisogno di accedere alle colonne di A. La colonna j’th di A è A (1: m, j).

Tuttavia, nel Fortran 77 non è possibile utilizzare una sintassi simile ad una sottomatrice (mentre lo è nel Fortran 90). Così si fornisce un puntatore al primo elemento della colonna, che è (1, j) (non è veramente un puntatore, ma può essere utile pensare ad esso come se lo fosse). Sappiamo che le prossime locazioni di memoria conterranno gli elementi della matrice di questa colonna. La subroutine saxpy tratterà A (1, j) come primo elemento di un vettore, senza sapere che questo vettore sembra essere una colonna di una matrice.

Infine, ricordiamo che l’indice i viene utilizzato come indice di riga (da 1 a m) mentre l’indice j è usato come indice di colonna (da 1 a n). La maggior parte dei programmi Fortran utilizzano questa notazione che rende molto più facile la lettura del codice.

Link correlati all’argomento

- Programmare con Fortran

- Note sul Fortran 90

- Come scaricare gratuitamente il compilatore Fortran

- Gli articoli della guida Fortran