Lz = m ( x vy - y vx)e verificare come questo dipende dall' intervallo di integrazione (dt).
real, dimension(:,:), allocatable :: A
Nell' attributo dimension si
indicherà il numero di indici, il rango dell' array,
mediante un corrispondente numero di "due punti" (:) separati da
virgole. Per far sì che venga riservata la memoria (RAM) per A
sarà
necessario che, una volta note le estensioni e i limiti sugli indici,
si esegua l' istruzione di allocazione. Per esempio le istruzioni:
read*,N allocate(W(-N:N,N),P(N), stat=error)acquisiscono il valore di N al momento dell'esecuzione del programma , e poi, una volta noto il valore numerico di N, il processo richiede memoria al sistema operativo per una matrice W (2 indici) in cui il primo indice varia tra -N e N e il secondo tra 1 e N e per un array (vettore) P (1 indice). error rappresenta una variabile intera il cui valore se diverso da zero indica che non è stato possibile allocare la memoria richiesta. Attenzione: stat=error può essere assente. In tal caso, se non c'è disponibilità della memoria richiesta il programma termina con errore. Se invece si inserisce il modificatore stat=error ci si sta impegnando a gestire esplicitamente nel programma cosa fare in caso di errore e quindi si è tenuti ad aggiungere una verifica del valore di error, terminando il programma in caso di valori diversi da zero. Per far terminare l' esecuzione del programma è sufficiente dare l' istruzione STOP. Quando la memoria allocata non serve più la si può rilasciare al sistema operativo mediante il comando
deallocate(W,P)
real,dimension(N,M) :: B
REAL, DIMENSION(-3:10) :: A
Scrivere un programma
che legga interi (con segno) e scriva quante
volte è stato immesso ogni intero tra -5 e 5 (ogni intero
può essere
immesso un numero arbitrario di volte). In pratica si sta chiedendo di
realizzare l' istogramma dei numeri immessi nell' intervallo
predefinito.
Esempio: a fronte dell'
input: -3
15 3 4 2 1 2 2 -3
22, il programma dovrebbe scrivere:
CALL nomeSubroutine(arg1,...)