private double scanNetwork ( int k , int l , double [ ] one , double [ ] [ ] net ) { int ind ; /* * t Ritardo accumulato dall'onda prima di raggiungere il tratto si sta * dimensionando. */ double t ; /* * Distanza percorsa dall'acqua dall'area dove e' caduta per raggiungere * l'ingresso del tratto che si sta dimensionando. */ double length ; /* * Superfice del sottobacino con chiusura nel tratto che si sta * analizzando. */ double totalarea = 0 ; int r = 0 ; int i = 0 ; /* * In one gli stati sono in ordine di magmitude crescente. Per ogni * stato di magnitude inferiore a quella del tratto l che si sta * progettando. */ for ( int j = 0 ; j < k ; j ++ ) { /* La portata e valutata all'uscita di ciascun tratto */ t = 0 ; /* * ID dello lo stato di magnitude inferiore a quello del tratto che * si sta progettando. */ i = ( int ) one [ j ] ; ind = i ; // la lunghezza del tubo precedentemente progettato length = networkPipes [ ind ] . getLenght ( ) ; // seguo il percorso dell'acqua finch� non si incontra l'uscita. while ( networkPipes [ ind ] . getIdPipeWhereDrain ( ) != OUT_ID_PIPE ) { // lo stato dove drena a sua volta. ind = networkPipes [ ind ] . getIndexPipeWhereDrain ( ) ; /* * se lo stato drena direttamente in quello che si sta * progettando */ if ( ind == l ) { /* * ID dello stato che drena in l, piu o meno direttamente. */ net [ r ] [ 0 ] = i ; /* * lunghezza del percorsa dall'acqua prima di raggiungere lo * stato l che si sta progettando */ net [ r ] [ 1 ] = length + networkPipes [ l ] . getLenght ( ) ; /* * Ritardo accumulato dall'onda di piena formatasi in uno * degli stati a monte, prima di raggiungere il tratto l che * si sta progettando */ net [ r ] [ 2 ] = t ; /* * area di tutti gli stati a monte che direttamente o * indirettamente drenano in l */ totalarea += networkPipes [ i ] . getDrainArea ( ) ; r ++ ; break ; } } /* * viene incrementato solo se l'area drena in l quindi non puo' * superare net->nrh */ if ( r > net . length ) break ; } // area degli stati a monte che drenano in l, l compreso totalarea += networkPipes [ l ] . getDrainArea ( ) ; return totalarea ; }
Compila la mantrice net con tutte i dati del sottobacino con chiusura nel tratto che si sta analizzando e restituisce la sua superfice