Nope, there is no limitation. The filename is limited to 
256 characters, and the number of files in the sequence 
files(:) is allocated internally to the number of files that it finds. This is the first time we have heard of a user providing files for 
30 years. If I want to do such a long simulation, I will do restarts. Anyway, It seems that there is a problem with the specific syntax for these entries in your 
roms.in file.
With a bit of curiosity, you would discover that the answers to your question can be found easily in 
ROMS/Modules/mod_iounits.F. The code is well documented internally for users to explore its complexity:
Code: Select all
      TYPE T_IO
        integer :: IOtype                        ! file IO type
        integer :: Nfiles                        ! number of multi-files
        integer :: Fcount                        ! multi-file counter
        integer :: load                          ! filename load counter
        integer :: Rindex                        ! NetCDF record index
        integer :: ncid                          ! NetCDF file ID
        integer,  pointer :: Nrec(:)             ! NetCDF record size
        integer,  pointer :: Vid(:)              ! NetCDF variables IDs
        integer,  pointer :: Tid(:)              ! NetCDF tracers IDs
        real(dp), pointer :: time_min(:)         ! starting time
        real(dp), pointer :: time_max(:)         ! ending time
        character (len=50 ) :: label             ! structure label
        character (len=256) :: head              ! head filename
        character (len=256) :: base              ! base filename
        character (len=256) :: name              ! current name
        character (len=256), pointer :: files(:) ! multi-file names
#if defined PIO_LIB && defined DISTRIBUTE
        TYPE (File_desc_t) :: pioFile            ! file descriptor
        TYPE (My_VarDesc), pointer :: pioVar(:)  ! variable descriptor
        TYPE (My_VarDesc), pointer :: pioTrc(:)  ! tracer descriptor
#endif
      END TYPE T_IO