Feddozz
Firstly, instead of using a format statement, the code I showed you above used a character string to describe the desired format. The advantage of this is that the character string can be modified at run time to suit your requirements, whilst under standard fortran rules a format statement cannot be modified (although some NON-standard extensions to the standard with some compilers have allowed this happen in the past).
So if N equals 5 then :-
string='( F10.2)'
write(string(2:4),'(I3)')N
would make string = '( 5F10.2)' ,then
read(*,string)(a(i),i=1,N)
is equivalent to:-
read(*,10)(a(i),i=1,N)
10 FORMAT(5F10.2)
All of which answers your original posting.