odd bug catched; in italian:
Usavo dichiarare e inizializzare "flags" come:
integer :: flags=c_def_flags
e da una chiamata all'altra, rimaneva il flag della chiamata precedente.
Poiche' nel modulo fortran, "aggiungo" is flag usando + anziche' un
operatore OR, il flag (un bit) rimanendo dalla chiamata precedente,
(la costruzione di L: qui siamo nella costruzione di U) veniva "spostato"
di una posizione in su, risultando nell'assenza effettiva del bit
"triangolare", a fronte della sua aggiunta.
Ho rimediato con:
integer :: flags
flags=c_def_flags