Проблема с синтаксической разницей в языках C++ и Fortran.C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с синтаксической разницей в языках C++ и Fortran.

Сообщение Anonymous »

Есть код на Фортране, который я пытаюсь перевести на C++. Видимо, я где-то неправильно понял синтаксис Фортрана и поэтому у меня возникает проблема в строке 94. Я посмотрел значения компонентов в строке 94 и понял, что с большой вероятностью я неправильно рассчитал двумерный массив A Но я много раз перепроверял его расчеты и не нашел ошибок. Подскажите пожалуйста, что нужно сделать, чтобы код работал корректно? (Я пользовался отладчиком, склоняюсь к тому, что я что-то напутал с разницей в синтаксисе языков)
С++:
#include
#include
#include

using namespace std;

void initl(double& sxxs, double& sxxn, double& syys, double& syyn, double& sxys, double& sxyn, double& uxs, double& uxn, double& uys, double& uyn)
{
sxxs = 0.0;
sxxn = 0.0;
syys = 0.0;
syyn = 0.0;
sxys = 0.0;
sxyn = 0.0;

uxs = 0.0;
uxn = 0.0;
uys = 0.0;
uyn = 0.0;
}
void coeff(double x, double y, double cx, double cy, double a, double cosb, double sinb, int msym, double pi, double con, double cond, double pr1, double pr2, double pr3, double& uxs, double& uxn, double& uys, double& uyn, double& sxxs, double& sxxn, double& syys, double& syyn, double& sxys, double& sxyn) {

double cos2b, sin2b, xb, yb, r1s, r2s, fl1, fl2, fb1, fb2, fb3, fb4, fb5, uxps, uxpn, uyps, uypn;
double sxxps, sxxpn, syyps, syypn, sxyps, sxypn;

cos2b = cosb * cosb - sinb * sinb;
sin2b = 2.0 * sinb * cosb;

xb = (x - cx) * cosb + (y - cy) * sinb;
yb = -(x - cx) * sinb + (y - cy) * cosb;

r1s = (xb - a) * (xb - a) + yb * yb;
r2s = (xb + a) * (xb + a) + yb * yb;
fl1 = 0.5 * log(r1s);//log - натуральный логарифм
fl2 = 0.5 * log(r2s);
fb2 = con * (fl1 - fl2);
if (yb != 0.0) {
fb3 = -con * (atan((xb + a) / yb) - atan((xb - a) / yb));
}
else
{
fb3 = 0.0;
if (abs(xb) < a) {
fb3 = con * pi;
}
}
fb1 = yb * fb3 + con * ((xb - a) * fl1 - (xb + a) * fl2);
fb4 = con * (yb / r1s - yb / r2s);
fb5 = con * ((xb - a) / r1s - (xb + a) / r2s);

uxps = cond * (pr3 * cosb * fb1 + yb * (sinb * fb2 + cosb * fb3));
uxpn = cond * (-pr3 * sinb * fb1 - yb * (cosb * fb2 - sinb * fb3));
uyps = cond * (pr3 * sinb * fb1 - yb * (cosb * fb2 - sinb * fb3));
uypn = cond * (pr3 * cosb * fb1 - yb * (sinb * fb2 + cosb * fb3));

sxxps = fb2 + pr2 * (cos2b * fb2 - sin2b * fb3) + yb * (cos2b * fb4 + sin2b * fb5);
sxxpn = fb3 - pr1 * (sin2b * fb2 + cos2b * fb3) + yb * (sin2b * fb4 - cos2b * fb5);
syyps = fb2 - pr2 * (cos2b * fb2 - sin2b * fb3) - yb * (cos2b * fb4 + sin2b * fb5);
syypn = fb3 + pr1 * (sin2b * fb2 + cos2b * fb3) - yb * (sin2b * fb4 - cos2b * fb5);
sxyps = pr2 * (sin2b * fb2 + cos2b * fb3) + yb * (sin2b * fb4 - cos2b * fb5);
sxypn = pr1 * (cos2b * fb2 - sin2b * fb3) - yb * (cos2b * fb4 + sin2b * fb5);

uxs = uxs + msym * uxps;
uxn = uxn + uxpn;
uys = uys + msym * uyps;
uyn = uyn + uypn;

sxxs = sxxs + msym * sxxps;
sxxn = sxxn + sxxpn;
syys = syys + msym * syyps;
syyn = syyn + syypn;
sxys = sxys + msym * sxyps;
sxyn = sxyn + sxypn;
}

void solve(int n, vector& a, vector& b, vector& x) {
int nb, l;
double xm;
nb = n - 1;
for (int j = 0; j < nb; ++j) {// 1 -> 0; "

Подробнее здесь: https://stackoverflow.com/questions/782 ... -languages
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка импорта Fortran, связанная с fortran
    Anonymous » » в форуме Python
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Можем ли мы исправить мою проблему с синтаксической ошибкой дубликатора в строке 10?
    Anonymous » » в форуме Php
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Ошибка компиляции rpmbuild brp-python-byte с синтаксической ошибкой
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Получение синтаксической ошибки при создании входного слоя для NN в тензорном потоке
    Anonymous » » в форуме Python
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Столкнулся с неопознаваемой синтаксической ошибкой [дубликат]
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»