Allocatable character variables in Fortran

This

character (len=:), allocatable :: input_trim

is certainly syntactically correct in Fortran 2003. You don't say what the error that gfortran raises is, so I can't comment on why it doesn't accept the line -- perhaps you have an old version of the compiler installed.

With an up-to-date Fortran compiler (eg Intel Fortran v14.xxx) you don't need to allocate the character variable's size prior to assigning to it, you can simply write

input_trim = trim(input)

Note that

read(*,*) input_trim

won't work.