Can anyone help me with this, I have a file "data.dat" containing real data with high precision like this (2 rows). 0.596598016919984 -0.382312557470785 -0.528482344762526 -8.771967130768960E-002 -0.708964641303998 0.120784051948388 I want to read it into an array. The variable is declared as follows REAL (KIND = SELECTED_REAL_KIND(R=16), DIMENSION(1:2, 1:3) :: INPUTDATA fInput = 100 open(UNIT = fInput, FILE="initvel.dat", IOSTAT = ios, ACTION='read', FORM = 'formatted') i = 0 do i = i + 1 read(fInput, *, IOSTAT=IOS) INPUTDATA(i) if (i >= 2) then exit endif However, it seems that the data is not read correctly. It looks like only the first 7 decimal digits are read correctly. 0.59659802913666 -0.38231256604195 -0.52848231792450 -0.08771967142820 -0.70896464586258 0.12078405171633 Anyone can show me how to accomplish this operation. Thanks, Tuan