Ваш цикл чтения:
do i=1,jm
read(1,*)(h(i,j)),j=1,jm)
end do
Не должно ли do i=1,jm
быть do i=1,im
?
Это означает, что в отформатированном текстовом файле Hasil.txt есть записи (строки) «im», которые предлагает ваш вопрос.
read(1,*)(h(i,j)),j=1,jm)
подразумевает, что каждая запись (строка текста) имеет значения "jm", что составляет 1 значение на строку. Это то, как файл выглядит? (Неизвестное количество пустых строк будет пропущено с этим оператором read (lu,*) ...
.)
Вы, похоже, хотите записать эту информацию в другой файл; HasilNN.txt использует 33 format (1x, 344f10.6)
, что предполагает 3441 символ на строку, хотя ваш оператор записи будет записывать только 1 значение на строку (как jm = 1). Это будет очень длинная строка для текстового файла и, вероятно, будет трудно управлять вне программы. Если вы хотите сделать это, вы можете достичь этого с помощью подразумеваемого цикла do, например:
write(2,33) ((h(i,j),j=1,jm),I=1,im)
Несколько комментариев:
использование jm = 1 подразумевает, что каждая строка имеет только одно значение, которое может быть эквивалентно представлено как 1d-вектор "размерности h (im)", что отрицает необходимость в j
Файловые единицы с номерами 1 и 2 обычно являются зарезервированными номерами единиц для экрана / клавиатуры. Вам лучше использовать блоки 11 и 12.
При разработке этого кода вам необходимо обратиться к структуре записи в 2 файлах, так как можно использовать простой вектор. Вы можете контролировать длину строки в формате. Формат (1x, 8f10.6) создаст запись из 81 символа, которой будет намного легче управлять.
Дескриптор формата f10.6 также ограничивает диапазон значений, которыми вы можете управлять в файлах. Значения> = 1000 или <= -100 переполняют этот формат, а значения меньше 1.e-6 будут равны нулю. </p>
Как заметил @francescalus, вы объявили "h" как целое число, но используете дескриптор реального формата. Это приведет к «Ошибка: несоответствие форматных данных» и должно быть изменено на ожидаемое в файле.
Вы должны подумать, чего вы хотите достичь, и скорректировать код.