Мне нужно вывести множество (> 20 миллионов) значений float в текстовый файл из программы Fortran 77. Я хотел бы сохранить выходной файл как можно меньше. Поэтому я хотел бы выводить поплавки компактным образом, не прибегая к двоичному.Fortran 77: выходные поплавки с переменной шириной
Я знаю точность, в которой я нуждаюсь (обычно две цифры справа от десятичной точки), поэтому в C я бы использовал printf("%.2f %.2f", val1, val2);
Возможно ли что-то подобное в Fortran 77? Все, что я нашел, это то, что я должен явно задать ширину поля (например, в format (f8.2,x,f8.2)
). Это отнимает много места, когда я заранее не знаю диапазон номеров вывода.
Если это невозможно в Fortran 77, сделайте более новые стандарты Fortran, чтобы сделать это?
Он появился в [Fortran 95] (http://j3-fortran.org/doc/standing/archive/007/97-007r2/pdf/97-007r2.pdf) (раздел 10.5.1.1 для I-дескриптора , немного дальше для F): в обоих случаях "* Когда w равно нулю, процессор выбирает ширину поля. *". Такая же формулировка в [Fortran 2003] (http://www.j3-fortran.org/doc/year/04/04-007.pdf) раздел 1.6.1.1. Подтверждено [здесь] (http://fortranwiki.org/fortran/show/Edit+descriptors). –
Это также работает с целыми числами, т.е. 'i0' – DJSquared