Це команда fortc, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS
ПРОГРАМА:
ІМ'Я
fortc - утиліта Unidata для створення коду C, сумісного з фортраном
СИНТАКСИС
fortc [-Л LibDir] [-О OpSys] файл
ОПИС
fortc Читає код C з `файл', перетворює його в код, сумісний з FORTRAN, а потім
записує результат у стандартний висновок. Перетворення залежить від операційної системи
тому що в цьому питанні немає стандартів.
Цільова операційна система може бути визначена кількома способами. Якщо `-O' варіант є
якщо дано, то використовується операційна система, визначена її аргументом; інакше, якщо
змінна середовища `OS' існує, то операційна система, визначена його значенням, є
використаний; інакше операційна система за замовчуванням, визначена під час встановлення, є
використаний
Глобальні імена, які не є визначеннями функцій, але мають бути доступні з обох C
і FORTRAN повинні бути огороджені `FC_NAME()' макрос:
extern int FC_NAME(foo)(void); /* функція FORTRAN */
зовнішня структура {
float f;
int i;
} FC_NAME(comblk); /* загальний блок FORTRAN */
cfoo()
{
повернути FC_NAME(foo)(); /* виклик функції FORTRAN */
}
Функції C, які потрібно викликати з FORTRAN, записуються так:
Int
/*FORTRAN*/
фу(
символ шляху, /* ім'я файлу нового файлу */
реальна сума, /* сума, яку можна розбити на */
подвійна точність dbl, /* збільшується на */
void функція errf, /* програма помилок */
ціле число rcode /* повернуто код помилки */)
{
...
або, що еквівалентно,
Int
/*FORTRAN*/
foo(char* шлях, float* сума, double* dbl,
void (*errf)(), int* rcode)
{
...
При написанні FORTRAN-сумісних функцій слід звернути увагу на:
1. Функції, що підлягають перетворенню, позначаються процедурою `/*FORTRAN*/' коментар, який
має відображатися в рядку перед назвою функції. Будь-які оголошення типу повернення повинні
продовжити коментар.
2. Формальні параметри повинні бути оголошені в дужках функції та розділені символом
коми.
3. Формальні параметри обмежені такими типами:
характер or char *
Для символьних змінних Fortran.
подвійна точність or подвійний*"
Для значень з плаваючою комою подвійної точності.
реальний or плавати*
Для значень з плаваючою комою одинарної точності.
ціле or int *
Для цілих значень.
тип функція ім'я or тип (*ім'я)()
Для функцій, які повертають тип `тип'.
4. Після відкриваючої дужки `{' та в тому ж рядку не повинно бути нічого важливого.
Функції повинні бути записані за допомогою змінних з тими ж іменами, що й формальні
параметри і з такою ж семантикою. У разі формальних параметрів типу
`характер' (тобто символьні змінні Fortran), буде існувати змінна з такою ж назвою
і буде типу `char *'. Крім того, для кожного аргументу символьної змінної локальний
буде створена змінна інтегрального типу і її значенням буде розмір асоційованого
символьна змінна. Ім'я цієї змінної буде ім'ям пов'язаної
символьна змінна з "_len" додається (наприклад "ім'я шляху_len"). Ці змінні довжини можуть
використовуватися у функції, як і будь-яка інша змінна.
Наприклад, під SunOS попередня функція стала б (якщо вона міститься в
файл `foo.src'):
#рядок 1 "foo.src"
неподписаний int
#рядок 2 "foo.src"
foo_(назва шляху, сума, errf, rcode, pathname_len)
char *назва шляху;
int ім'я_путі_len;
float *сума;
недійсний (*errf)();
int *rcode;
{
#рядок 9 "foo.src"
Зверніть увагу, що 1) були додані директиви лінії препроцесора; 2) назва функції була
із суфіксом підкреслення; і 3) формальний параметр, `ім'я шляху_len', було створено.
Під UNICOS такий самий файл став би
#включати
#рядок 1 "foo.src"
неподписаний int
#рядок 2 "foo.src"
FOO(шлях, сума, errf, rcode)
_fcd шлях із назвою;
float *сума;
недійсний (*errf)();
int *rcode;
{
char *pathname = _fcdtocp (названий шлях);
unsigned pathname_len = _fcdlen (названий шлях);
#рядок 9 "foo.src"
Зверніть увагу, зокрема, на додатковий `#include ' і створення і
ініціалізація локальних змінних `ім'я шляху' і `ім'я шляху_len'.
Ця утиліта реалізована як скрипт і використовує утиліти, що надаються системою sed(1) і
m4(1).
ВАРІАНТИ
-L LibDir"
Визначає каталог, що містить файли бібліотеки `fortc'. За замовчуванням є
визначається під час встановлення.
-O OpSys
Визначає операційну систему як OpSys. Відомі значення включають `aix', `convexos',
`domainos', `hpux', `irix', `msoft', `next-absoft', `newsos', `sunos', `ultrix',
`unicos' та `vms'. Щоб забезпечити більшу гнучкість, відомі значення можуть мати
будь-який суфікс (наприклад, `sunos_4.1').
НАВКОЛИШНЄ СЕРЕДОВИЩЕ
OS Визначає операційну систему, якщо параметр `-O' не вказано. Відомі цінності
є такими ж, як і -O варіант.
Використовуйте fortc онлайн за допомогою служб onworks.net