Il programma si suddivide nelle seguenti sottostrutture:

- Subroutine "gen_rand_seed": utilizza alcune subroutine predefinite in fortran, che quindi non devono essere definite dall'utente ("random_seed", "system_clock"), per modificare il seme nella subroutine di generazione di numeri pseudocasuali "random_number", anch'essa predefinita. Chiamando quindi successivamente "random_number", si otterranno comunque dei numeri pseudocasuali con distribuzione uniforme in [0,1] ma diversi ad ogni iterazione ("random_seed" stampa infatti sempre la stessa sequenza di numeri casuali, se il seme non viene modificato prima della sua chiamata).

- Corpo principale: leggere i commenti a lato del codice. In breve: Si generano n numeri casuali e li si adatta all'intervallo richiesto dall'utente. Si divide l'intervallo nel numero desiderato di bin e si calcola il numero di eventi (i numeri casuali che avevo generato) che cadono in ciascun bin. Si crea il file "distunif.x" avente tre colonne, indicanti rispettivamente il valore medio, il numero di conteggi e l'errore sul numero di conteggi (come radice quadrata dello stesso, vedi appunti) per ciascun bin. Infine si crea un file "istounif.x" nel quale vengono scritti una serie di comandi che sarebbe necessario dare a gnuplot per visualizzare correttamente l'istogramma dei dati contenuti in "distunif.x".

-- set title - permette di cambiare il titolo dell'immagine nella finestra che verrà aperta.
-- set *label - permette di associare un nome alle grandezze rappresentate lungo gli assi.
-- set *range - modifica l'intervallo mostrato su ciascuno degli assi.
-- plot - dice in questo caso a gnuplot di graficare i dati presenti nel file "distunif.x" usando le colonne 1 come x, 2 come y e 3 come errore su y. La parte dopo la virgola serve a dare l'aspetto di un istogramma anziché di semplici punti con barre d'errore.
-- replot - permette di graficare qualcos'altro nella stessa finestra, in questo caso la funzione y(x)=50*(1.0+0.1*cos(3.14*x-6.28)).

Seguire poi i comandi scritti come commento in fondo al codice per visualizzare correttamente quanto realizzato.