исторически так сложилось, что в фортране было два типа данних с плавающей точкой. Один real - 4 байт, второй - double precison - 8 байт. Начиная с 90 фотрана тип double precison формально был упразднен, остался только real с указание необходимого кол-ва байт, например real(4),real(8),real(16), последний на програмном уровне поддерживает интеловский компилятор.
Числа с плавающей точкой на x86/x64 представленны 80 битами, поэтому 4 и 8 байтовый real целиком помещаются в необходимые регистры, и соответственно по скорости должен быть паритет. По памяти естественно будет проигрыш в два раза у 8 байтовой модели.
Использовать сейчас 4 байтный real совсем как то несерьезно, если интересует точность, хоча задачи бывают разные. В той же NVIDIA CUDA поддержываються только 4 байтные real что не очень радует многих, и большинство ждет 8 байтных.
А относительно 32/64 платформ, так это кол-во бит относимое для целых чисел, то есть размер целочисленных регистров, и к числам с плавающей точкой это не имет абсолютно никакого отношения.
Я не волшебник, я только учусь, поэтому поправьте если что не правильно сказал. :)
Добавлено спустя 34 минуты 3 секунды:
Freude писал(а):
Как сделать так, чтобы информация не дописывалась в файл, а перезаписывалась? Может проблема в том, что я не закрываю файлы?
по правилам хорошего тона, и в стандарте думаю написано, что каждый оператор open() должен идти в паре с close(), если вы не хотите непредвиденых проблем - лучше так и делать ;)
Относительно дозаписи/перезаписи. У параметра open(), как и у других, есть список спецификаторов, которые позволяют выставлять нужный режим оператора. У оператора open() их 13 штук, и только один обязательный - unit, номер устройства, все остальные имеют значение по умолчанию. За дозапись/перезапись отвечает спецификатор position, он отвечает с какой позиции начинается работа с файлом, имеет три значения: 'rewind', 'append', 'asis'.
'rewind' - работа начинается с начала файла, соответственно все вытирается и пишится с чистого листа.
'append' - работа начинается с конца файла, идет дозапись, как в вашем варианте.
'asis' - работа по умолчанию, в Compaq Fortran 6.6 'asis' работает как 'rewind'.
Вам нужно посмотреть не задан ли у вас position="append", если нет, то задать принудительно position="rewind".
Добавлено спустя 11 минут 42 секунды:Re: Компиляция .f95 в ifortFreude писал(а):
Подскажите пожалуйса, как компилировать файлы 95 Фортрана. Компилятор ifort. До этого момента компилировал только файлы .f90. Теперь хочу откомпилировать программу, написанную на Fortran95. Она ведь должна иметь расширение .f95, верно? Может нужно добавить в строку
Код:
ifort myprogramm.f95
какое-то ключевое слово. В мануале написано, что ifort может компилировать как файлы Фортран 90, так и Фортран 95. Спасибо
компилировать так же как и Фортрана 90. На сколько я понял расширения f95 просто не существует, компиляторы от Compaq и Intel говорят о неправильно формате, а для Фортрана 95 используется f90. Если вам надо проверить ваши исходные коды на относительно правильности для того или иного стандарта, то в Intel Fortran существуют опции /w90 или /w95 а также много других в разделе Compiler Diagnostics справки ifort.