Фортран Програмування - Сторінка 4

програмування

фортран

Під час компіляції першого рядка, де трапляється виклик f(x) , вона ще описано. Візьміть як "шаблон" мій другий приклад, в якому є contains .

програмування

програмування

У Фортрані є правило опису змінних "за умовчанням". Загалом це архаїзм, збережений для зворотної сумісності, implicit none його відключає.

Коли цього відключення немає, при виявленні виклику f(x) тип значення функції, що повертається, вибирається за замовчуванням (і це real(4) ). В даному конкретному випадку це спрацьовує, але якщо Вам знадобиться написати функцію, що повертає щось інше (ціле, рядок, речове число з іншою точністю, масив і т.д.), то врятувати справу таким чином не вийде.

Тому запам'ятайте правило: ставити implicit none завжди, а потім коректно обробляти помилки, що вилазять. Інакше рано чи пізно нарветесь на проблеми.

програмування

На вашому рівні різниця іррелевантна.

По-перше, переважна більшість бібліотек на фортані - портована на Сі. Це не робиться тільки з тими бібліотеками, інтерфейс яких зав'язаний на переваги мови фортран. (Для Сі це екзотика: деякі масиви та паралельні обчислення.)

По-друге, саме бібліотеки на фортані вилизують під нову апаратуру насамперед. Так само, вилизуються і компілятори та середовища виконання. Це щодо обчислювальної апаратури. А для необчислювальної, і вилизування особливого не потрібне.

20/08/14 5570 Україна, Москва

програмування

(Це репліки з ЛЗ. Перепрошую за недостатню причесаність.)

По-перше, для фортрану міряються не робітники, а кластери. Це питання паралельної архітектури, і купи суміжних питань (включаючи компілятор та його оптимізацію,середовище виконання, конкретне обчислювальне завдання). На рівні одного праці різниця між Сі та фортраном іррелевантна.

Звичайно, "широкі верстви народу" тут взагалі ні до чого. Це вузька область.

Для обчислень, не мова заточується під особливості апаратури, а апаратура заточується під особливості мови (і тут завжди - фортрана) і завдання (тут бувають різні розклади, але в основному беруть ДУЧП, крім спеціалізованих кластерів, наприклад, під квантові розрахунки).

По-друге, для обчислювальних завдань "obj/lib/dll" - це не відповідь, тому що сам інтерфейс бібліотеки заточений під мову: там зустрічаються передачі сюди-туди великих масивів, наприклад, або посилань на функції. Портувати таку бібліотеку іншою мовою все одно доводиться і все одно це проблема, і часто не вдається зробити це ідеально - без втрат за швидкістю або пам'яттю.