Я не думаю, что сначала делаю чтение в строку, а затем пытаюсь разобрать, что и есть путь;просто позволяйте Фортрану разбивать строку, разделенную пробелом, на строки символов для вас.Также обратите внимание, что вы хотите, чтобы ваш массив символов был массивом строк символов чего-то, а не только символов:
program test
character(len=3),dimension(10,10) ::text
character(len=7), parameter :: filename="tmp.txt"
integer :: i,j
integer :: nlines
open(unit=3,file=filename)
do i=1,10
write(3,fmt="(10(i3,1x))"), (10*(i-1)+j, j=1,10)
enddo
close(unit=3)
open(unit=4,file=filename,status='old')
do i=1,10
read(4,*,end=1), (text(i,j),j=1,10)
enddo
1 nlines = i
close(unit=4)
print *,' Read in character array: '
do i=1,nlines-1
print "(10('<',a,'>',1x))", (trim(text(i,j)), j=1,10)
enddo
end program test
Запуск этого дает
$ ./test
Read in character array:
<1> <2> <3> <4> <5> <6> <7> <8> <9> <10>
<11> <12> <13> <14> <15> <16> <17> <18> <19> <20>
<21> <22> <23> <24> <25> <26> <27> <28> <29> <30>
<31> <32> <33> <34> <35> <36> <37> <38> <39> <40>
<41> <42> <43> <44> <45> <46> <47> <48> <49> <50>
<51> <52> <53> <54> <55> <56> <57> <58> <59> <60>
<61> <62> <63> <64> <65> <66> <67> <68> <69> <70>
<71> <72> <73> <74> <75> <76> <77> <78> <79> <80>
<81> <82> <83> <84> <85> <86> <87> <88> <89> <90>
<91> <92> <93> <94> <95> <96> <97> <98> <99> <100>