What is the reasoning behind your decision to implement in Fortran?
Is is because the signal processing functions are implemented in Fortran, and you don't want to, or can't convert to another language?
An alternate approach might be to write the controlling functions in C and interface to the Fortran from there.
I'd prepare buffers of data with C and pass them to the fortran processing. You can research calling fortran from C.
In Linux the serial port (as does all IO) appears as a file you can read from. I'm not sure how to open it and read it from Fortran.