• Non ci sono risultati.

Codice FORTRAN 90

A.1 Main program

In questa sezione verranno sinteticamente descritte le operazioni principali che si possono distinguere direttamente all’interno del main program, facendo riferimento al numero di riga di codice. Innanzitutto, si sottolinea come il programma sia strutturato sulla base di 3 cicli do principali:

• il primo, righe [177:435], è riferito all’evoluzione morfologica del fondo e si basa sul time-step ∆tevo= 1 mese;

• il secondo, righe [196:392], è riferito a due successivi cicli di marea e si basa sul time-step ∆ttide = 24 ore/48;

• il terzo, righe [226:385], è riferito alle singole sezioni che compongono il dominio di calcolo.

Al loro interno si possono distinguere i seguenti passaggi fondamentali:

# riga [186] viene aggiornato il tasso di incremento del medio mare, ipotizzato costante per tutta la durata della simulazione;

# righe [212:223] viene calcolata la concentrazione media di fase (paragrafo 4.5.1), riferita alla quota media dell’intero bacino all’iterazione precedente, e aggiornata ad ogni ∆ttide;

# righe [256:263] si calcola la portata Q con il modello quasi-statico (para-grafo 3.1);

# righe [285:354] procedura iterativa per il calcolo della pendenza della linea dell’energia S, che permette di determinare la distribuzione delle velocità e degli sforzi tangenziali al fondo, distinguendo fra i casi di sezione vegetata e sezione non vegetata;

# righe [258:366] vengono calcolati i tassi di accrescimento/erosione, succes-sivamente scalati con il time step morfologico ∆tmorpho (paragrafo 5.1.3); # righe [409:413] si aggiorna la quota del fondo ad ogni ∆tevo.

1 ! = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 2 P R O G R A M c r o s s s e c t i o n 3 ! = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 4 ! Q u e s t o m o d e l l o c a l c o l a l ’ e v o l u z i o n e nel t e m p o di un c a n a l e di 5 ! m a r e a su un d o m i n i o 3 D , c o n s i d e r a n d o i p r o c e s s i di e r o s i o n e e 6 ! d e p o s i t o di s e d i m e n t i , il r u o l o d e l l a v e g e t a z i o n e e del 7 ! sea l e v e l r i s e . La d i s t r i b u z i o n e d e g l i s f o r z i t a n g e n z i a l i al f o n d o 8 ! i n d o t t i dal f l u i d o s u l l a s e z i o n e s o n o c a l c o l a t i s u l l a b a s e 9 ! dell ’ a p p r o c c i o p r o p o s t o da P i z z u t o [ 1 9 9 0 ] . 10 ! -11 I M P L I C I T N O N E 12 !

-13 ! Si i n c l u d e il f i l e " p a r a m . dat " che e ’ c o n d i v i s o dal m a i n p r o g r a m

14 ! e da t u t t e le s u b r o u t i n e , nel q u a l e s o n o d i c h i a r a t i t u t t i 15 ! i P A R A M E T E R S e C O M M O N V A R I A B L E S 16 I N C L U D E ’ p a r a m . dat ’ 17 ! -18 ! D i c h i a r a z i o n e d e l l e v a r i a b i l i i m p i e g a t e s o l o nel m a i n p r o g r a m 19 !

-20 I N T E G E R :: i , inst , n_mesi , n_ st e ps , N_Z , count , j , iy 21 I N T E G E R :: n _ s t e p s 2 , c h e c k 22 I N T E G E R :: r e s t a r t =1 23 R E A L*8 :: ZZ ( n o d e s ) , t a u C H E C K ( INT ( n o d e s /2)) , M S L 2 s t o r e ( M A X S T E P S ) 24 R E A L*8 , a l l o c a t a b l e:: Z_0 (: ,:) , X_0 (: ,:) , Q s _ 0 (: ,:) , E_0 (: ,:) , m s l _ 0 (:) 25 R E A L*8 :: Q s t o r e ( inst_c , nsez , n o d e s ) 26 R E A L*8 :: Q s t o r e 2 ( inst_c , n s e z ) , V s t o r e ( inst_c , n s e z )

27 R E A L*8 :: Qhead , A R E A i y m 1 , AREAiy , L Px i ym 1 , LPxiy , time , ddH , H m i n 28 R E A L*8 :: psi , phi , d e p t h

29 C H A R A C T E R(l e n= 1 0 0 ) fileZ , fileX , fileQs , fileE , f i l e M S L 30 L O G I C A L t e s t 31 C H A R A C T E R(l e n=5) a n s w e r 32 R E A L*8 :: D U m 2 ( nodes -2) 33 I N T E G E R :: I P I V ( n o d e s ) 34 I N T E G E R :: I N F O 35 I N T E G E R :: N R H S =1 36 C H A R A C T E R:: T R A N S = ’ N ’ 37 ! p a r a m e t r i per la E r r o r f u n c t i o n ( a u m e n t o g r a d u a l e a m p i e z z a m a r e a ) 38 R E A L*8 :: t i m e l a g

39 R E A L*8 :: terf , aux1 , aux2 , t a u x 40 R E A L*8 :: e r f t a u x ( M A X S T E P S ) 41 R E A L*8 :: Qaux1 , Qaux2 , Q a u x 3 42 Q s t o r e =0. 43 ! -44 ! A p e r t u r a dei f i l e di I N P U T e O U T P U T 45 ! -46 o p e n(u n i t=8 ,F I L E= ’ I n p u t . dat ’ , s t a t u s= ’ old ’ ) 47 O P E N(10 ,F I L E= ’ o u t p u t \ Z . txt ’ ) ! sez i n l e t o g n i t i m s t e p 48 O P E N(11 ,F I L E= ’ o u t p u t \ ZZZ . txt ’ ) ! c o n f i g u r a z i o n e f i n a l e d o m i n i o 49 O P E N(13 ,F I L E= ’ o u t p u t \ E r a t e s . txt ’ ) ! e r o s i o n e ad o g n i t i m e s t e p 50 O P E N(14 ,F I L E= ’ o u t p u t \ V . txt ’ ) ! v e l o c i t a ’ sez i n l e t o g n i t i m e s t e p 51 O P E N(15 ,F I L E= ’ o u t p u t \ T . txt ’ ) ! tau sez i n l e t ad o g n i t i m e s t e p 52 O P E N(5426 ,F I L E= ’ o u t p u t \ QQQ . txt ’ ) 53 O P E N(16 ,F I L E= ’ o u t p u t \ Q _ s t o r e . txt ’ ) 54 O P E N(1718 ,F I L E= ’ o u t p u t \ D_s . txt ’ ) ! dep i n o r g sez i n l e t o g n i t . s . 55 O P E N(1719 ,F I L E= ’ o u t p u t \ E . txt ’ ) ! e r o s i o n e sez i n l e t o g n i t . s . 56 O P E N(1720 ,F I L E= ’ o u t p u t \ D_B . txt ’ ) ! d e p o s i t o org sez i n l e t t . s . 57 O P E N(1721 ,F I L E= ’ o u t p u t \ D_T . txt ’ ) ! d e p o s i t o t r a p sez i n l e t t . s . 58 O P E N(1730 ,F I L E= ’ o u t p u t \ K s v e c t . txt ’ ) ! S t r i c k l e r c . sez i n l e t t . s . 59 O P E N(1740 ,F I L E= ’ o u t p u t \ V e l o c i t a . txt ’ ) ! v e l o c i t a ’ sez i n l e t o g n i t . s . 60 !

-A.1. MAIN PROGRAM 133

61 ! L e t t u r a dei d a t i in I N P U T dal f i l e " i n p u t . dat "

62 ! -63 ! C a r a t t e r i s t i c h e dei s e d i m e n t i 64 r e a d(8 ,*) C m e a n ! c o n c e n t r a z i o n e m e d i a di f a s e ( mg / l ) 65 r e a d(8 ,*) r h o s ! de ns i ta ’ dei s e d i m e n t i ( kg / m3 ) 66 r e a d(8 ,*) w_s ! v e l o c i t a ’ di c a d u t a ( m / s ) 67 r e a d(8 ,*) D50 ! d i a m e t r o d e l l e p a r t i c e l l e ( mm ) 68 r e a d(8 ,*) t a u _ d e p ! s f o r z o t a n g e n z i a l e c r i t i c o di d e p o s i t o 69 r e a d(8 ,*) t a u _ e r o ! s f o r z o t a n g e n z i a l e c r i t i c o di e r o s i o n e 70 r e a d(8 ,*) m u _ e r o s ! t a s s o di e r o s i o n e c o s t a n t e e m p i r i c o 71 r e a d(8 ,*) p o r o s i t y ! p o r o s i t a ’ dei s e d i m e n t i 72 73 D50 = D50 / 1 0 0 0 . ! d i a m e t r o d e l l e p a r t i c e l l e ( m ) 74 m u _ e r o s = m u _ e r o s / r h o s ! t a s s o e r o s i o n e e m p i r i c o c o s t a n t e a d i m . 75 76 ! C a r a t t e r i s t i c h e d e l l a f o r z a n t e di m a r e a 77 r e a d(8 ,*) a m p l i t u d e ! a m p i e z z a dell ’ o n d a ( m ) 78 r e a d(8 ,*) T _ t i d e ! p e r i o d o ( s e m i d i u r n a ) ( h o u r s ) 79 r e a d(8 ,*) s e c o n d s ! s e c o n d i in un ora 80 r e a d(8 ,*) m o n t h s ! m e s i in un a n n o 81 r e a d(8 ,*) dd ! g i o r n i in un m e s e 82 83 T _ t i d e = T _ t i d e * 3 6 0 0 . ! p e r i o d o in ( s ) 84 w = 2 . * pi / T _ t i d e ! p u l s a z i o n e a n g o l a r e

85 dt = 2 4 . / i n s t _ c ! t i m e s t e p per un g i o r n o ( due c i c l i ) in ( ore )

86 d t c i c l o = dt * 3 6 0 0 . ! t i m e s t e p in ( s ) 87 d T m o r p h o = dd * d t c i c l o ! t i m e s t e p m o r f o l o g i c o 88 89 r e a d(8 ,*) L u p s t r e a m ! l u n g h e z z a del b a c i n o ( m ) 90 r e a d(8 ,*) L t r a n s e c t ! l a r g h e z z a del b a c i n o ( m ) 91 r e a d(8 ,*) n c o s ! p a r a m e t r o per la g e o m e t r i a i n i z i a l e 92 r e a d(8 ,*) a m p l _ i n c i s i o n ! p a r a m e t r o per la e r r o r f u n c t i o n 93 r e a d(8 ,*) m e a n d e p t h 0 ! q u o t a i n i z i a l e m e d i a ( m s m m ) 94 r e a d(8 ,*) g e o C A S E ! s c e l t a d e l l a c o n f i g u r a z i o n e i n i z i a l e 95 96 dx = L t r a n s e c t /( nodes -1) ! s p a z i a t u r a g r i g l i a s u l l a s e z i o n e ( m ) 97 dy = L u p s t r e a m /( nsez -1) ! s p a z i a t u r a g r i g l i a l o n g i t u d i n a l e ( m ) 98 dy0 = dy /3. ! d i s t a n z a fra t e s t a c a n a l e e t e s t a b a c i n o 99 100 ! A l t r i p a r a m e t r i 101 r e a d(8 ,*) es ! l o c a l r o u g h n e s s l e n g t h ( m ) 102 r e a d(8 ,*) Ks ! c o e f f . S t r i c k l e r ( m ^ 1 / 3 s ^ -1) 103 r e a d(8 ,*) Q T O L L ! t o l l e r a n z a c a l c o l o i t e r a t i v o di Q * 104 105 ! P a r a m e t r i b i o l o g i c i 106 r e a d(8 ,*) Z b i o m a x ! m a s s i m a q u o t a a cui c r e s c e b i o m a s s a 107 r e a d(8 ,*) Z b i o m i n ! q u o t a a cui n a s c e la b i o m a s s a 108 r e a d(8 ,*) B m a x ! m a s s i m o v a l o r e di b i o m a s s a ( g / m ^2) 109 r e a d(8 ,*) o m e g a ! p a r a m e t r o r i d u z i o n e b i o m a s s a m e s i i n v e r n a l i 110 r e a d(8 ,*) kb ! p r o d u z i o n e o r g a n i c a al s u o l o max ( m / a n n o ) 111 112 kb = kb / ( 3 6 5 . * 2 4 . * 3 6 0 0 . ) ! p r o d u z i o n e o r g a n i c a al s u o l o m a s s i m a ( m / s ) 113 114 ! P a r a m e t r i da M u d d et . al . 2 0 0 4 per g r a n d e z z e b i o l o g i c h e 115 r e a d(8 ,*) a l p h a 1 116 r e a d(8 ,*) a l p h a 2 117 r e a d(8 ,*) a l p h a _ n 118 r e a d(8 ,*) b e t a _ n 119 r e a d(8 ,*) a l p h a _ h 120 r e a d(8 ,*) b e t a _ h 121 r e a d(8 ,*) d e l t a 1 122 r e a d(8 ,*) d e l t a 2 123 124 ! P a r a m e t r i da P a l m e r et . al . 2 0 0 4 per g r a n d e z z e b i o l o g i c h e 125 r e a d(8 ,*) k a p p a _ t 126 r e a d(8 ,*) g a m m a _ t 127 r e a d(8 ,*) e p s i l o n _ t 128 129 ! P a r a m e t r i da M u d d . et . al . 2 0 0 4 per il b u l k d r a g c o e f f 130 r e a d(8 ,*) Scd 131 r e a d(8 ,*) C o b a r 132 133 r e a d(8 ,*) U t r a p p ! v e l o c i t a ’ m e d i a s u l l a b a r e n a v e g e t a t a 134 r e a d(8 ,*) Z m a r s h M a x ! e v e n t u a l e b l o c c o q u o t a b a r e n a 135 r e a d(8 ,*) M S L r a t e ! t a s s o di i n c r e m e n t o del m e d i o m a r e in ( m / a n n o ) 136 M S L r a t e = M S L r a t e / 1 2 . ! t a s s o di i n c r e m e n t o m e d i o m a r e in ( m / m e s e ) 137

138 ! -139 ! S t a m p a a v i d e o i p r i n c i p a l i p a r a m e t r i in l e t t u r a 140 ! -141 w r i t e(* , ’ (" - - - S e d i m e n t s - - - -") ’ ) 142 w r i t e(* , ’ (" C0 (%)" , F12 .6) ’ ) C m e a n 143 w r i t e(* , ’ (" D50 ( m )" , F12 .6 ," r h o s ( kg / m3 )" , F12 .6) ’ ) D50 , r h o s 144 w r i t e(* , ’ (" w_s ( m / s )" , F12 .6 ," p o r o s i t y " , F12 .6) ’ ) w_s , p o r o s i t y 145 w r i t e(* , ’ (" t a u _ d e p " , F12 .6 ," t a u _ e r o " , F12 .6) ’ ) t au _ de p , t a u _ e r o 146 w r i t e(* , ’ (" m u _ e r o s " , F12 .6) ’ ) m u _ e r o s 147 148 w r i t e(* , ’ (" - - - T i d e - - - -") ’ ) 149 w r i t e(* , ’ (" a m p l i ( m )" , F12 .6 ," T _ t i d e ( s )" , F12 .6) ’ ) a m p l i t u d e , T _ t i d e / 3 6 0 0 . 150 w r i t e(* , ’ (" d t c i c l o ( h o u r s )" , F12 .6 ," d T m o r p h o " , F12 .6 ) ’ ) d t ci cl o , d T m o r p h o 151 152 w r i t e(* , ’ (" - - - G e o m e t r y - - - -") ’ ) 153 w r i t e(* , ’ (" Ly ( m )" , F12 .6 ," Lx ( m )" , F12 .6) ’ ) L u p s t r e a m , L t r a n s e c t 154 w r i t e(* , ’ (" dy ( m )" , F12 .6 ," dx ( m )" , F12 .6) ’ ) dy , dx 155 156 w r i t e(* , ’ (" - - - -") ’ ) 157 w r i t e(* , ’ (" es ( m )" , F12 .6 ," C h e z y (( m ^ 0 . 5 / s )" , F12 .6) ’ ) es , Ks 158 w r i t e(* , ’ (" Q T O L L ( m ^3/ s ??) " , F12 .6) ’ ) Q T O L L 159 ! -160 C A L L i n i t i a l i z a t i o n ! I n i z i a l i z z a z i o n e d e l l e v a r i a b i l i 161 C A L L t i d a l f o r c i n g ! def f o r z a n t e H ( t ) e sua d e t i v a t a dH / dt 162 C A L L i n i t i a l g e o m e t r y ! D e f i n i z i o n e del d o m i n i o i n i z i a l e 163 c h e c k =1 164 ! -165 ! d e f i n i z i o n e e r r o r f u n c t i o n per i n c r e m e n t a r e g r a d u a l m e n t e la m a r e a 166 ! -167 ! T i d a l r a n g e i n c r e a s i n g g r a d u a l l y in t i m e as m u l t i p l i e d by erf 168 ! t i m e l a g = 1 . 0 D0 169 ! t i m e l a g = 0 . 9 D0 170 ! t i m e l a g = 0 . 5 D0 171 ! t i m e l a g = 0 . 1 D0 172 ! t i m e l a g = 0 . 0 1 D0 173 t i m e l a g = 0 . 0 0 5 D0 ! d e f a u l t v a l u e 174 ! t i m e l a g = 0 . 0 0 1 D0 175 ! t i m e l a g = 0 . 0 0 0 5 D0 176 177 178 179 180 do n _ s t e p s =1 , M A X S T E P S 181 t a u x = t i m e l a g * n _ s t e p s 182 c a l l e r r f ( taux , e r f t a u x ( n _ s t e p s )) 183 ! e r f t a u x ( n _ s t e p s ) = 1 . 0 ! s c o m m e n t a r e se v o g l i o a m p i e z z a m a r e a non m o d u l a t a 184 e n d do 185 ! -186 t i m e =0. 187 n _ s t e p s 2 =0 188 189 ! = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 190 ! I N I Z I O DEL C I C L O SUI M E S I 191 ! = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 192 TTT =0. 193 VVV =0. 194 H m i n = 1 0 . 195 do n _ s t e p s = re s ta rt , M A X S T E P S ! M A X S T E P S = n u m e r o di m e s i di s i m u l a z i o n e 196 w r i t e(* ,1 9 9) n _s te p s , Hmin , s u m c h e c k b i o , M S L 2 197 199 F O R M A T( " A n n o : " , I4 , " H m i n : " , F12 .6 , " N o d i v e g e t a t i : " , I3 , " MSL : " , F6 .3) 198 199 M S L 2 = M S L 2 + M S L r a t e ! i n c r e m e n t o del m e d i o m a r e ad o g n i m e s e 200 M S L 2 s t o r e ( n _ s t e p s )= M S L 2 201 Q _ S c =0. ! i n i z i a l i z z a z i o n e c o n t r i b u t o d e p o s i t o i n o r g m e s e c o r r e n t e 202 Q _ T c =0. ! i n i z i a l i z z a z i o n e c o n t r i b u t o d e p o s i t o t r a p m e s e c o r r e n t e 203 Q _ B c =0. ! i n i z i a l i z z a z i o n e c o n t r i b u t o d e p o s i t o org m e s e c o r r e n t e 204 Q _ E c =0. ! i n i z i a l i z z a z i o n e c o n t r i b u t o e r o s i o n e m e s e c o r r e n t e 205 206 w r i t e(* ,9 8 9) Z m e a n C 0 ! s t a m p a a v i d e o q u o t a m e d i a b a c i n o 207 989 F O R M A T( " Z m e a n C 0 : " , F8 .4) 208 ! = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 209 ! I N I Z I O C I C L O SUL G I O R N O ( DUE C I C L I DI M A R E A ) 210 ! = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 211 do i n s t =1 , i n s t _ c ! i n s t _ c = i s t a n t i c a m p i o n a m e n t o t e m p o r a l e in 24 ore 212 213 ! -214 ! v a l o r i i s t a n t a n e i e l e v a z i o n e m a r e a ( quasi - s t a t i c o ) e sua d e r i v a t a

A.1. MAIN PROGRAM 135 215 ! -216 MSL = M S L 2 + e r f t a u x ( n _ s t e p s )* H ( i n s t ) ! e l e v a z i o n e m a r e a 217 ddH = e r f t a u x ( n _ s t e p s )* dH ( i n s t ) ! d e r i v a t a 218 ! s o n o e n t r a m b i c o r r e t t i con la e r r o r f u n c t i o n !! 219 ! -220 221 if ( MSL < H m i n ) H m i n = MSL ! c o n t r o l l o s u l l o s t a t o r e g i m e m a r e a 222 t i m e = t i m e + dt 223 224 ! -225 ! C O N C E N T R A Z I O N E M E D I A C O R R E T T A v a l u t a t a con e l e v . m e d i a b a c i n o 226 ! -227 228 Z m e a n s u m =0. 229 230 do i =1 , n s e z 231 Z m e a n s u m = Z m e a n s u m + Z m e a n s e z ( i ) 232 e n d do 233 234 Z m e a n C 0 = Z m e a n s u m / f l o a t ( n s e z ) ! q u o t a f o n d a l e m e d i a su t u t t o b a c i n o 235 236 C0 = C m e a n / ( 1 0 0 0 . * r h o s )*(1 - Z m e a n C 0 / a m p l i t u d e ) ! c o n c . m e d i a c o r r e t t a 237 238 ! = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 239 ! I N I Z I O C I C L O S U L L E S E Z I O N I 240 ! = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 241 242 Q _ i n s t =0. D0 ! i n i z i a l i z z a z i o n e p o r t a t a r e a l e 243 244 do iy =1 , n s e z ! n s e z = n u m e r o s e z i o n i in cui e ’ s u d d i v i s o il b a c i n o 245 246 Z ( : ) = ZZZ ( iy ,:) ! q u o t a f o n d o s e z i o n e p r e c e d e n t e 247 X ( : ) = XXX ( iy ,:) ! a s c i s s e s e z i o n e p r e c e d e n t e 248 249 ! -250 C A L L d e r i v a t i v e s 251 C A L L a b s c i s s a e 252 C A L L n o r m a l c o n t r o l 253 C A L L d i s t D N 254 C A L L t r a p e z i 255 C A L L c o m p u _ b i o m a s s _ v e g e t a t i o n e d g e ( n _ s t e p s ) 256 ! -257 A R E A i y m 1 = A R E A i y 258 L P x i y m 1 = L P x i y 259 C A L L c o m p u _ w e t P _ A r e a 260 A R E A i y = A A R E A 261 L P x i y = LPx 262 ! -263 ! C a m p i o n a m e n t o q u o t a m e d i a di o g n i s e z i o n e 264 ! -265 C A L L c o m p u _ Z m e a n 266 Z m e a n s e z ( iy )= Z m e a n 267 268 ! -269 ! c a l c o l o d e l l a p o r t a t a r e a l e Q con il m o d e l l o q u a s i s t a t i c o 270 ! si t i e n e c o n t o s o l o d e l l a p o r z i o n e b a g n a t a di b a c i n o 271 ! -272 if ( iy = = 1 ) t h e n 273 Q _ i n s t = abs ( ddH )* LPx * LPx * 0 . 3 9 ! p r i m a sez a r e a d r e n a t a s e m i c i r c 274 e l s e 275 Q _ i n s t = Q _ i n s t + abs ( ddH )* dy * 0 . 5 * ( L P x i y m 1 + L P x i y ) 276 e n d if 277 ! -278 279 ! -280 ! C o n t r o l l a se ci s o n o p i x e l v e g e t a t i s u l l a s e z i o n e 281 ! -282 ! B i o m a s s = 0 . 0 283 C A L L c h e c k b i o m a s s 284 ! -285 286 ! -287 ! A s s e m b l a m a t r i c e s f o r z i tau d i s t i n g u e n d o se v e g e t a z i o n e o no 288 ! -289 if ( s u m c h e c k b i o = = 0 ) t h e n 290 C A L L m a t r i x A ! c a s o non v e g e t a t o 291 e l s e

292 C A L L m a t r i x A _ b i o ! c a s o v e g e t a t o

293 e n d if

294 !

-295 C A L L D G T T R F ( nodes , DLmat , Dmat , DUmat , DUm2 , IPIV , I N F O ) ! A = LU

296 ! -297 298 ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 299 ! I n i z i o i t e r a z i o n i p o r t a t a Q * c o r r e z i o n e p e n d . l i n e a e n e r g i a S 300 ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 301 Q z e r o = Q_inst - QTOLL -1. 302 S = 0 . 0 0 0 1 ! v a l o r e di p r i m o t e n t a t i v o per S 303 if ( Q_inst > Q T O L L ) t h e n ! c o n t r o l l a se ho f l u s s o s u l l a s e z i o n e 304 c o u n t =0 305 do w h i l e ( abs ( Q_inst - Q z e r o ) > Q T O L L ) ! c r i t e r i o c o n v e r g e n z a 306 c o u n t = c o u n t +1 307 ! -308 ! C A S O NON V E G E T A T O 309 ! -310 if ( s u m c h e c k b i o = = 0 ) t h e n 311 ! C a l c o l a i t e r m i n i n o t i R 312 C A L L c o m p u _ t e r m i n i R 313 ! R i s o l v e il s i s t e m a l i n e a r e e t r o v a gli s f o r z i T con P i z z u t o .

314 C A L L D G T T R S ( TRANS , nodes , NRHS , DLmat , Dmat , DUmat , DUm2 , IPIV , R , nodes , I N F O ) 315 T = R 316 ! C a l c o l a la v e l o c i t a ’ in o g n i p u n t o d e l l a s e z i o n e 317 c a l l c o m p u _ V 318 ! -319 320 ! -321 ! C A S O V E G E T A T O 322 ! -323 e l s e 324 ! c a l c o l a t e r m i n i R s o l o n e l l a p a r t e non v e g e t a t a 325 C A L L c o m p u _ t e r m i n i R _ b i o 326 ! r i s o l v e s i s t e m a s f o r z i a l l a P i z z u t o s o l o p a r t e non v e g e t a t a

327 C A L L D G T T R S ( TRANS , nodes , NRHS , DLmat , Dmat , DUmat , DUm2 , IPIV , R , nodes , I N F O ) 328 T = R 329 ! c a l c o l a gli s f o r z i T n e l l a p a r t e v e g e t a t a 330 C A L L t a u _ v e g e t a t e d 331 ! C a l c o l a la v e l o c i t a ’ in o g n i p u n t o d e l l a s e z i o n e 332 C A L L c o m p u _ V _ v e g e t a t e d 333 ! -334 335 e n d if 336 337 ! -338 ! C a l c o l a la Q f l u e n t e n e l l a s e z i o n e c o m e s o m m a 339 ! d e l l e p o r t a t e tra 2 n o r m a l i al f o n d o . 340 ! C i a s c u n a di q u e s t e p o r t a t e e ’ c a l c o l a t a c o m e a r e a 341 ! per la m e d i a d e l l a v e l o c i t a ’ n e l l e due n o r m a l i al c o n t o r n o 342 ! -343 Q z e r o =0. 344 QA =0. 345 do i =1 ,( nodes -1) 346 QA ( i )= A R E A s e z ( i ) * 0 . 5 * ( V ( i )+ V ( i + 1 ) ) 347 Q z e r o = Q z e r o + QA ( i ) 348 e n d do 349 350 ! -351 ! C o r r e g g e la p e n d e n z a d e l l a l i n e a dell ’ e n e r g i a 352 ! -353 S z e r o = S 354 if ( Q z e r o = = 0 . ) t h e n 355 S =0. 356 V =0. 357 T =0. 358 e x i t 359 e l s e 360 S = S z e r o *( Q _ i n s t / Q z e r o ) * * 2 361 e n d if 362 e n d do ! f i n e del c r i t e r i o di c o n v e r g e n z a 363 e l s e 364 V =0. 365 T =0. 366 e n d if ! f i n e del c o n t r o l l o se ho f l u s s o s u l l a s e z i o n e 367 ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 368 ! F i n e i t e r a z i o n i p o r t a t a Q * c o r r e z i o n e p e n d . l i n e a e n e r g i a S

A.1. MAIN PROGRAM 137 369 ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 370 371 ! -372 ! c a l c o l o dei f l u s s i di e r o s i o n e e d e p o s i t o 373 ! -374 C A L L b e d e v o l u t i o n _ Z m a r s h M a x ! v a l o r i per i n s t di c i c l o di m a r e a 375 376 ! f l u s s i e s t e s i al time - s t e p m e s e 377 Q _ S c ( iy , : ) = Q _ S c ( iy , : ) + Q_S ( : ) * d T m o r p h o 378 Q _ T c ( iy , : ) = Q _ T c ( iy , : ) + Q_T ( : ) * d T m o r p h o 379 Q _ B c ( iy , : ) = Q _ B c ( iy , : ) + Q_B ( : ) * d T m o r p h o 380 Q _ E c ( iy , : ) = Q _ E c ( iy , : ) + Q_E ( : ) * d T m o r p h o 381 382 ! -383 ! S a l v a t a g g i o di g r a n d e z z e i m p o r t a n t i 384 ! -385 if ( iy = = 2 ) Q a u x 1 = Q _ i n s t 386 if ( iy == N I N T ( n s e z / 2 . ) ) Q a u x 2 = Q _ i n s t 387 if ( iy == n s e z ) Q a u x 3 = Q _ i n s t 388 389 if ( n _ s t e p s == M A X S T E P S ) t h e n 390 do i =1 , n o d e s 391 Q s t o r e ( inst , iy , i )= QA ( i ) 392 if ( T ( i ) > TTT ( iy , i )) TTT ( iy , i )= T ( i ) 393 if ( V ( i ) > VVV ( iy , i )) VVV ( iy , i )= V ( i ) 394 e n d do 395 e n d if 396 397 e n d do 398 ! = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 399 ! F I N E C I C L O S U L L E S E Z I O N I 400 ! = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 401

402 W R I T E( 5 4 2 6 , 6 0 0 ) time , H ( i n s t ) , dH ( i n s t ) , Qaux1 , Qaux2 , Q a u x 3 403 404 e n d do 405 ! = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 406 ! F I N E C I C L O SUL G I O R N O ( DUE C I C L I DI M A R E A ) 407 ! = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 408 409 ! -410 ! s a l v a le c a r a t t . p r i n c i p a l i i n l e t s e c t i o n o g n i time - s t e p ( M E S E ) 411 ! -412 W R I T E( 1 7 1 8 , 6 0 0 ) ( Q _ S c ( nsez , i ) , i =1 , n o d e s ) ! d e p o s i t o i n o r g a n i c o 413 W R I T E( 1 7 1 9 , 6 0 0 ) ( Q _ E c ( nsez , i ) , i =1 , n o d e s ) ! e r o s i o n e 414 W R I T E( 1 7 2 0 , 6 0 0 ) ( Q _ B c ( nsez , i ) , i =1 , n o d e s ) ! d e p o s i t o o r g a n i c o 415 W R I T E( 1 7 2 1 , 6 0 0 ) ( Q _ T c ( nsez , i ) , i =1 , n o d e s ) ! d e p o s i t o t r a p p i n g 416 W R I T E( 1 7 3 0 , 6 0 0 ) ( K s _ v e c t ( i ) , i =1 , n o d e s ) ! c o e f f . res . m o t o S t r i c k l e r 417 W R I T E( 1 7 4 0 , 6 0 0 ) ( V ( i ) , i =1 , n o d e s ) ! v e l o c i t a ’ 418 W R I T E( 1 0 , 6 0 0 ) ( Z ( i ) , i =1 , n o d e s ) ! Q u o t a Z 419 600 F O R M A T( 3 5 0 E14 .6) 420 ! -421 422 ! = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 423 ! E V O L V E IL F O N D A L E per o g n i time - s t e p ( m e s e ) 424 ! = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 425 do iy =1 , n s e z 426 ZZZ ( iy , : ) = ZZZ ( iy , : ) + Q _ S c ( iy ,:) - Q _ E c ( iy , : ) + Q _ T c ( iy , : ) + Q _ B c ( iy ,:) 427 e n d do 428 ! = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 429 430 if ( n _ s t e p s == M A X S T E P S ) t h e n 431 do i n s t =1 , i n s t _ c 432 do iy =1 , n s e z 433 W R I T E( 1 6 , 9 1 1 7 ) inst , iy ,( Q s t o r e ( inst , iy , i ) , i =1 , n o d e s ) 434 e n d do 435 e n d do 436 e n d if 437 9 1 1 7 F O R M A T(2 I4 , 2 0 0 E12 .5) 438 ! -439 ! s t a m p a la q u o t a di o g n i p i x e l o g n i xxx a n n i 440 ! -441 if ( mod ( n _s te p s , 1 2 ) = = 0 ) t h e n 442 n _ s t e p s 2 = n _ s t e p s 2 +1 443 c a l l s t a m p a 2 ( n _ s t e p s 2 ) 444 e n d if 445 !

-446 447 e n d do 448 ! = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 449 ! F I N E DEL C I C L O SUI M E S I 450 ! = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 451 452 ! -453 ! s t a m p a la c o n f i g u r a z i o n e f i n a l e di e q u i l i b r i o del b a c i n o 454 ! -455 do iy =1 , n s e z 456 W R I T E( 1 1 , 6 0 0 ) ( ZZZ ( iy , i ) , i =1 , n o d e s ) ! q u o t a f o n d a l e 457 W R I T E( 1 3 , 6 0 0 ) ( Q _ E c ( iy , i ) , i =1 , n o d e s ) ! t a s s i e r o s i o n e 458 W R I T E( 1 4 , 6 0 0 ) ( VVV ( iy , i ) , i =1 , n o d e s ) ! v e l o c i t a ’ 459 W R I T E( 1 5 , 6 0 0 ) (( TTT ( iy , i )) , i =1 , n o d e s ) ! s f o r z i t a n g e n z i a l i 460 e n d do 461 ! -462 c l o s e(8) 463 c l o s e( 1 0 ) 464 c l o s e( 1 1 ) 465 c l o s e( 1 3 ) 466 c l o s e( 1 4 ) 467 c l o s e( 1 5 ) 468 c l o s e( 5 4 2 6 ) 469 c l o s e( 1 6 ) 470 471 E N D

A.2. SUBROUTINES 139

A.2 Subroutines

In questa Appendice vegono riportati i listati delle subroutines, scritte in fortran 90, impiegate per lo studio dell’evoluzione morfodinamica di un bacino a marea, organizzate in ordine di chiamata nel programma principale.

Vengono qui descritte le seguenti subroutine:

* initialization, riga [160], inizializza le variabili principali di scambio; * tidalforcing, riga [161], calcola l’elevazione dell’onda di marea H(t) e

la sua derivata dH/dT per ogni ∆ttide;

* initialgeometry, riga [162], definisce la geometria iniziale del bacino, sulla base di una funzione coseno (geoCASE=1), funzione versiera o witch

of Agnesi (geoCASE=2) o funzione gaussiana (geoCASE=3);

* derivatives, riga [237], calcola la pendenza trasversale del fondo per ogni punto della sezione corrente;

* abscissae, riga [238], per ogni punto della sezione corrente, calcola la ascissa del punto di intersezione fra la normale al fondo e la superficie libera; * normalcontrol, riga [239], per ogni punto della sezione corrente, con-trolla che la normale al fondo non intersechi quella di uno dei due punti adia-centi. Dove possibile, aggiusta l’inclinazione delle normali che si intersecano preservando l’eventuale simmetria;

* distDN, riga [240], per ogni punto della sezione corrente, calcola la di-stanza dal fondo alla superficie libera, lungo la direzione normale al fondo stesso;

* trapezi, riga [241], calcola il termine Tnx nell’integrale a secondo membro dell’equazione (3.11) secondo l’approccio di Pizzuto;

* compu wetP Area, riga [246], per ogni punto della sezione corrente, calcola i perimetri bagnati e le aree compresi fra due normali al fondo adiacenti

1;

* compu Zmean, riga [252], calcola la quota media della sezione corrente; * matrixA, riga [276], calcola la matrice A necessaria per risolvere il sistema

lineare associato all’integrale a secondo membro dell’equazione (3.11); 1Questa operazione viene eseguita solo sui punti che risultano bagnati all’istante corrente

* matrixA bio, riga [278], calcola la matrice A nel caso di sezione vegetata: sostanzialmente, i termini di A sono diversi da zero solo nei punti non vegetati, dove il calcolo degli sforzi tangenziali viene eseguito con l’approccio di Pizzuto (eq. (3.11) ). Nei punti vegetati i termini di A sono nulli, in quanto il calcolo degli sforzi tangenziali si basa sull’equazione (3.18);

* DGTTRF, riga [281], calcola la fattorizzazione A = LU per la risoluzione del sistema lineare;

* DGTTRS, riga [300], risolve il sistema lineare associato all’integrale a secondo membro dell’equazione (3.11), che permette di completare il calcolo della distribuzione degli sforzi tangenziali al fondo;

* stampa2, riga [429], stampa la configurazione del fondale dell’intero bacino per ogni anno di simulazione.

A.2.1 La subroutine compu biomass vegetationedge

Tale subroutine calcola il valore della biomassa per ogni nodo della sezione corrente. Inoltre, essa individua i nodi che separano la barena vegetata dal canale.

Le variabili principali in INPUT sono: • n mesi: mese corrente della simulazione;

• Z(i): vettore contenente le quote del fondo di ogni punto della sezione corrente;

• MSL2: MSL all’iterazione corrente, comprensivo dell’effetto del sea level rise; • Zbiomax: massima quota, riferita al MSL, alla quale può crescere la

vegeta-zione;

• Zbiomin: minima quota, riferita al MSL, alla quale nasce la vegetazione; • Bmax: massimo valore della biomassa in [g/m2];

• amplitude: ampiezza dell’onda di marea in [m] rispetto al MSL. Le variabili principali in OUTPUT sono:

• Biomass(i): vettore contenente i valori di biomassa per ogni punto della sezione corrente;

A.2. SUBROUTINES 141

• primnnveg: numero intero corrispondente al numero di nodi che separano il canale dalla barena vegetata. Se la sezione è vegetata allora primnnveg=2, altrimenti primnnveg=0;

• node edgeveg(primnveg): vettore contenente l’indice i dei nodi che sepa-rano il canale dalla barena vegetata. Se primnnveg=0 allora anche node edgeveg(primnveg)=0.

La subroutine è strutturata per effettuare le seguenti operazioni:

# righe [18:30] per ogni nodo della sezione corrente calcola il valore della biomassa attraverso l’equazione (3.26) e lo corregge in base al mese corrente tramite l’equazione (3.27), restituendo in OUTPUT il vettore Biomass(i); # righe [40:52] attraverso un controllo incrociato con i nodi adiacenti,

in-dividua i primi due nodi non vegetati che separano il canale dalla barena vegetata, restituendo in OUTPUT il vettore node edgeveg(primnveg)=0.

A.2.2 La subroutine checkbiomass

Tale subroutine calcola il numero di nodi vegetati nella sezione corrente. Le variabili principali in INPUT sono:

• Biomass(i): vettore contenente i valori di biomassa per ogni punto della sezione corrente.

Le variabili principali in OUTPUT sono:

• checkbio(i): vettore i cui valori sono checkbio(i)=1 se il nodo i è vegetato, oppure checkbio(i)=0 se il nodo i non è vegetato;

• sumcheckbio: numero intero corrispondente al numero di nodi vegetati sulla sezione corrente.

La subroutine è strutturata per effettuare le seguenti operazioni:

# righe [18:25] per ogni nodo vegetato assegna al vettore checkbio(i) il valore 1, mentre per ogni nodo non vegetato assegna al vettore checkbio(i) il valore 0. Successivamente, somma i valori di checkbio(i) per ottenere il numero complessivo di nodi vegetati sulla sezione corrente, che salva in sumcheckbio.

A.2.3 La subroutine compu teriminiR

Tale subroutine calcola il valore dei termini R a secondo membro dell’equazione (A.1).

Le variabili principali in INPUT sono:

• Z(i): vettore contenente le quote del fondo di ogni punto della sezione corrente;

• S: pendenza della linea dell’energia all’iterazione corrente;

• MSL: quota istantanea dell’onda di marea all’iterazione corrente, comprensiva dell’effetto del sea level rise;

• AREAsez(i): vettore contenente l’area della porzione di sezione compresa fra le due normali adiacenti al nodo di riferimento i;

• UnoSuP(i): vettore contenente l’inverso della porzione di perimetro bagnato riferita al nodo i.

Le variabili principali in OUTPUT sono:

• R(i): vettore contenente i valori dei termini noti R, riferiti all’equazione (A.1), per ogni punto della sezione corrente, necessari per la risoluzione del

sistema lineare.

I termini R rappresentano il primo termine a secondo membro dell’equazio-ne (3.11): τ = ρgSd dn | {z } R + d dn Z ζ0 Tnx (A.1)

La risoluzione dell’equazione (A.1) corrisponde, nel modello, alla risoluzione di un sistema lineare.

La subroutine è strutturata per effettuare le seguenti operazioni:

# righe [20:22] e righe [30:32] impone le condizioni al contorno (3.17) sui punti estremi della sezione;

# righe [24:28] per ogni nodo della sezione corrente (ad esclusione dei due nodi di estremità), calcola il valore dei termini R necessari per la risoluzione del sistema lineare (eq. (A.1)).

A.2. SUBROUTINES 143

A.2.4 La subroutine compu terminiR bio

Tale subroutine calcola il valore dei termini R a secondo membro dell’equazione (A.1), nel caso in cui la sezione sia parzialmente vegetata.

Le variabili principali in INPUT sono:

• Z(i): vettore contenente le quote del fondo di ogni punto della sezione corrente;

• Biomass(i): vettore contenente i valori di biomassa per ogni punto della sezione corrente;

• S: pendenza della linea dell’energia all’iterazione corrente;

• MSL: quota istantanea dell’onda di marea all’iterazione corrente, comprensiva dell’effetto del sea level rise;

• AREAsez(i): vettore contenente l’area della porzione di sezione compresa fra le due normali adiacenti al nodo di riferimento i;

• UnoSuP(i): vettore contenente l’inverso della porzione di perimetro bagnato riferita al nodo i.

Le variabili principali in OUTPUT sono:

• R(i): vettore contenente i valori dei termini noti R, riferiti all’equazione (A.1), necessari per la risoluzione del sistema lineare, calcolati sui soli punti

non vegetati della sezione. In tutti i punti vegetati R = 0.

La subroutine compu terminiR bio esegue essenzialmente le stesse operazioni della compu terminiR descritta al paragrafo A.2.3, con la differenza che il calcolo dei termini noti R viene eseguito solo sui nodi non vegetati: infatti, in base a quanto esposto al paragrafo 3.4, solo nei punti canale gli sforzi tangenziali vengono calcolati con il metodo di Pizzuto ( eq.(3.11)).

A.2.5 La subroutine compu V

Tale subroutine calcola la velocità media di ogni nodo della sezione corrente. Le variabili principali in INPUT sono:

• DN(i): vettore contenente la distanza dal fondo alla superficie libera, lungo la direzione normale al fondo stesso, per ogni punto della sezione corrente; • Ks: coefficiente di resistenza al moto secondo Strickler, espresso in [m1/3s−1];

• Z(i): vettore contenente le quote del fondo di ogni punto della sezione corrente;

• MSL: quota istantanea dell’onda di marea all’iterazione corrente, comprensiva dell’effetto del sea level rise;

• T(i): vettore contenente il valore degli sforzi tangenziali al fondo per ogni punto della sezione corrente.

Le variabili principali in OUTPUT sono:

• V(i): vettore contenente i valori di velocità della corrente, mediati sulla verticale, per ogni punto della sezione corrente.

La subroutine è strutturata per effettuare le seguenti operazioni:

# righe [19:28] calcola il valore della velocità della corrente, per ogni punto della sezione, in corrispondenza di 30 quote diverse lungo la verticale, assumen-do un andamento logaritmico. Ogni noassumen-do viene successivamente caratterizzato con la media delle velocità calcolate. È interessante notare come il calcolo delle velocità V(i) dipenda dal valore degli sforzi tangenziali T(i), a loro volta funzione della pendenza S della linea dell’energia: durante il processo iterativo di correzione di S è, pertanto, tutto il campo di moto, comprensivo di velocità e sforzi tangenziali, ad essere aggiornato ad ogni iterazione fino al raggiungimento del criterio di convergenza.

A.2.6 La subroutine compu V vegetated

Tale subroutine calcola la velocità media di ogni nodo, nel caso in cui la sezione sia parzialmente vegetata.

Le variabili principali in INPUT sono:

• DN(i): vettore contenente la distanza dal fondo alla superficie libera, lungo la direzione normale al fondo stesso, per ogni punto della sezione corrente; • Biomass(i): vettore contenente i valori di biomassa per ogni punto della

sezione corrente;

• S: pendenza della linea dell’energia all’iterazione corrente;

• Ks: coefficiente di resistenza al moto secondo Strickler dove il fondale non è vegetato, espresso in [m1/3s−1];

A.2. SUBROUTINES 145

• Z(i): vettore contenente le quote del fondo di ogni punto della sezione corrente;

• MSL: quota istantanea dell’onda di marea all’iterazione corrente, comprensiva dell’effetto del sea level rise;

• Cobar: coefficiente di drag in assenza di vegetazione;

• Scd: parametro di fitting per il calcolo del bulk drag coefficient delle piante; • T(i): vettore contenente il valore degli sforzi tangenziali al fondo per ogni

punto della sezione corrente.

Le variabili principali in OUTPUT sono:

• Ks vect(i): vettore contenente i valori del coefficiente di resistenza al moto secondo Strickler, per ogni nodo della sezione corrente;

• V(i): vettore contenente i valori di velocità della corrente, mediati sulla verticale, per ogni nodo della sezione corrente.

La subroutine è strutturata per effettuare le seguenti operazioni:

# righe [20:30] calcola il valore del coefficiente di resistenza al moto secondo Strickler in ogni nodo della sezione, distinguendo fra parte vegetata e non. Nei nodi in cui non è presente biomassa, impone il valore di Ks relativo ad un fondale non vegetato. Nei nodi in cui si ha la presenza di biomassa, il valore di Ks viene ridotto in funzione della quantità di biomassa presente, mediante l’equazione (3.22).

# righe [34:49] calcola il valore della velocità della corrente per ogni nodo della sezione corrente, distinguendo fra la parte vegetata e non. Nei nodi in cui non è presente biomassa, calcola la media di 30 valori di velocità calcolati a quote diverse lungo la normale assumendo un andamento logaritmico. Nei nodi in cui si ha la presenza di biomassa, la velocità media viene calcolata con la formula di Strickler, considerando però un valore del coefficiente di resistenza al modo ridotto tramite il bulk drag coefficient delle piante, dato dall’equazione (3.22). In questo caso, il calcolo delle velocità V(i) dipende, sulla porzione non vegetata, dal valore degli sforzi tangenziali T(i), implicitamente legati alla pendenza della linea dell’energia S, mentre sulla porzione non vegetata le velocità dipendono da S in maniera diretta attraverso la legge di Strickler. Durante il processo iterativo di correzione di S è, pertanto, tutto il campo di moto, comprensivo di velocità e sforzi tangenziali, ad essere aggiornato ad ogni iterazione fino al raggiungimento del criterio di convergenza.

A.2.7 La subroutine tau vegetated

Tale subroutine calcola lo sforzo tangenziale per ogni nodo della sezione corrente in cui è presente biomassa.

Le variabili principali in INPUT sono:

• Z(i): vettore contenente le quote del fondo di ogni punto della sezione corrente;

• Biomass(i): vettore contenente i valori di biomassa per ogni punto della sezione corrente;

• S: pendenza della linea dell’energia all’iterazione corrente;

• MSL: quota istantanea dell’onda di marea all’iterazione corrente, comprensiva dell’effetto del sea level rise;

• primnnveg: numero intero corrispondente al numero di nodi che separano il canale dalla barena vegetata. Se la sezione è vegetata allora primnnveg=2; • node edgeveg(primnveg): vettore contenente l’indice i dei nodi che separano

il canale dalla barena vegetata;

• AREAsez(i): vettore contenente l’area della porzione di sezione compresa fra le due normali adiacenti al nodo di riferimento i;

• UnoSuP(i): vettore contenente l’inverso della porzione di perimetro bagnato riferita al nodo i.

Le variabili principali in OUTPUT sono:

• T(i): vettore contenente gli sforzi tangenziali al fondo, per ogni nodo della sezione corrente.

La subroutine è strutturata per effettuare le seguenti operazioni:

# righe [26:41] calcola gli sforzi tangenziali sui soli nodi dove si ha la pre-senza di biomassa, mediante l’equazione (3.18). Si noti come, in riferimento alle righe [313:316] del main program, al momento della chiamata della subroutine tau vegetated il vettore degli sforzi tangenziali T(i) sia par-zialmente completo: esso comprende già i valori calcolati sui nodi canale non vegetati. La subroutine tau vegetated lascia inalterati questi valori, e va a completare il vettore T(i) con i valori degli sforzi tangenziali dei soli nodi vegetati.

A.2. SUBROUTINES 147

# righe [44:49] impone le condizioni al contorno (3.17) non agli estremi della sezione, ma sui primi nodi non vegetati che separano il canale dalla barena vegetata (vedi figura 3.5).

A.2.8 La subroutine bedevolution ZmarshMax

Tale subroutine calcola i tassi di erosione e deposito, per ogni nodo della sezione corrente.

Le variabili principali in INPUT sono:

• Z(i): vettore contenente le quote del fondo di ogni punto della sezione corrente;

• Biomass(i): vettore contenente i valori di biomassa per ogni punto della sezione corrente;

• MSL: quota istantanea dell’onda di marea all’iterazione corrente, comprensiva dell’effetto del sea level rise;

• T(i): vettore contenente il valore degli sforzi tangenziali al fondo per ogni punto della sezione corrente;

• ZmarshMax: massima quota per la barena, è una variabile di controllo priva di significato fisico;

• C0: concentrazione media costante corretta attraverso la concentrazione

media di fase, calcolata alla riga [223] del main program mediante

l’equazione (4.9);

• w s: velocità di caduta delle particelle;

• tau dep: sforzo tangenziale critico per il deposito inorganico;

• alpha tot, D50epsilon t, Utrappgamma t1, beta tot: parametri per il calcolo del tasso di deposito inorganico per intrappolamento;

• kb: massimo incremento della quota del fondo per effetto del deposito organico (tipicamente 2.5 mm/anno);

• tau ero: sforzo tangenziale critico di erosione;

• mu eros: tasso di erosione costante di natura empirica, riferito alle caratteri-stiche dei sedimenti del fondale e al grado di coesione.

Le variabili principali in OUTPUT sono:

• Q E(i): vettore contenente il tasso di erosione, in [m/s], per ogni nodo della sezione corrente, riferito al ∆ttide;

• Q S(i): vettore contenente il tasso di deposito di tipo inorganico, in [m/s], per ogni nodo della sezione corrente, riferito al ∆ttide;

• Q T(i): vettore contenente il tasso di deposito inorganico per intrappolamento, in [m/s], per ogni nodo della sezione corrente, riferito al ∆ttide;

• Q B(i): vettore contenente il tasso di deposito di tipo organico, in [m/s], per ogni nodo della sezione corrente, riferito al ∆ttide.

Per il calcolo dell’evoluzione della quota del fondo ad ogni ∆tevo, tutti questi tassi di accrescimento/erosione devono essere moltiplicati per il time-step morfologico ∆tmorpho.

La subroutine bedevolution ZmarshMax assume che il campo di moto (velocità e sforzi tangenziali) sia risolto a priori, infatti all’interno del main program viene chiamata alla riga [360], a seguito della procedura iterativa per la correzione della pendenza della linea dell’energia S. Essa è strutturata per effettuare le seguenti operazioni:

# riga [16] si ha la possibilità di arrestare l’accrescimento del fondale ad una quota ZmarshMax, oltre la quale si annullano tutti i tassi di accrescimento/e-rosione. Questa operazione non ha un riscontro fisico, ma può rivelarsi utile in fase di debug nell’interpretazione dei risultati forniti dal modello. Nelle simulazioni pratiche, questo valore viene imposto molto elevato, in maniera tale che non possa in alcun modo influenzare l’accrescimento della quota della barena;

# riga [21] il calcolo dei tassi di accrescimento/erosione viene eseguito solo quando il fondo è bagnato: con questa operazione si tiene conto in maniera diretta dell’effetto dell’idroperiodo;

# riga [22] calcola il tasso di deposito di tipo inorganico, mediante l’equazio-ne (4.10), quando il valore locale dello sforzo tangenziale è inferiore allo sforzo critico di deposito. La formula tiene conto dell’effetto della concentrazione

media di fase (vedi paragrafo 4.5.1);

# riga [23] calcola il tasso di deposito di tipo inorganico per intrappolamen-to, funzione della biomassa e della concentrazione di sedimenintrappolamen-to, mediante l’equazione (4.5);