How can I read a entire file into array? Say I have a big file that's just one line. How do you do that in Fortran? This does not work and I don't get why.
PROGRAM FOO
implicit none
character, allocatable :: input(:)
integer :: fileSize
open(unit=1,file='input.txt',status='old',action='read')
read(1,*) fileSize
allocate(input(fileSize))
read(1,*) input
close(1)
print *, input
END PROGRAM FOO
EDIT: Sorry I'm new to Fortran and it's ways so a lot of things that are obvious to you when it comes to Fortran are NOT obvious to me.
Example of input:
ATTACAGAACAGTTGATCGAGCATAGTGTCGATTCACGGATCTTTCTTGCGGCCGTATAGCACTCATTGATACTTTATGTCTACGCCGGGGTATATATTAAAACACATCGCCGGTAAGCAACACGGTATGGTTATATCTGCAGGCGCATAATGTAGTCTAACATCGACCAGTGAACTCCCTGCATTGAAACTAGGTCCATGGTGCGGAATGAGTCATTCTAGGTGTCTAACGTTTGATCTAAACAAGCCGTCGGCGGCGTGCGATTTCTTAGAGCAACCCCGGAGGACGTTCCATCTTCGTATCATTCCCCGCTGACTATCTATCGCCTAATGCTCGAATCAACCAACGGCTGTGATATTCATCACATCTAGTAGATTCTACGTGCATCGGCAACATACTAGAGTTACTGAGGAGGTCCCAAGGTGAGGTCCCATGTGTCAGTTACAAAGTCCTTAGCTAGCAGTGGGCCTCGCGCTGATCTATGGCCGTTAAGTGCCCGGGCTTGTCCTCGAACTTTGACTGAGCACTCAGGGAGAGACTCCTCACCACTCTTACCGCCAGAATGTATTATGCGGACACACATAGATTGACAACCGATAAGGCGGACCAGCGGGTTATCCCAAGCTCATAGCGACTCAACTCGATGATGGAATGAGTGCTGCTTATGTCGCTCACCCCGTAGGGTTAGCGAGAATAGCGAGATAATGGGAATACGACGGAGTTAAGTAAGCGAACACGTGCTTCTGGCGCACATCCGTGACGTTACTTGGGCCCTTAGCTTCATACCAAAGCGCCGGCCGACGGAACGGGACGGTAGGAAGTAATAAGGTGTCGATAGCCCATTTCATAGGTTACTACAGGTCTTGGGCCGCCGAGCTTAGTTAGTAATGATAATAACGCGGCCGATATGATT
Suppose it's one really long line.
But also how would you handle multiple lines? Do you iterate with the isostat? And would you make a double allocable array? In Java this is kind of easy to do but in Fortran I just don't get it. Which is why I'm asking. Again I'm really new to Fortran so please understand that and it's the reason I'm asking.