Перейти к публикации

Фортрановские подпрограммы для CFX


Бармалей

Рекомендованные сообщения



Думаю, эта ветка должна была уже приучить к тому, что лучше всегда использовать оригинал :wink:

Ссылка на сообщение
Поделиться на других сайтах
  • 8 месяцев спустя...

Доброго времени суток, господа. Подскажите пожалуйста в чем может быть проблема.

Имеется подпрограмма типа User CEL. Текст подпрограммы будет показан ниже.

С помощью этой подпрограммы я "вытаскиваю" по ходу расчета из домена нужную мне величину и чтобы посмотреть эту величину в пост-процессоре  через экспрешен и дополнительные переменные объявляю ее дополнительной переменной алгебраического типа.

 Вот текст подпрограммы

 

#include "cfx5ext.h"
dllexport(user_source9)
      SUBROUTINE USER_SOURCE9 (
     & NLOC,NRET,NARG,RET,ARGS,CRESLT,CZ,DZ,IZ,LZ,RZ)

#include "stack_point.h"

      INTEGER NLOC,NARG,NRET
      CHARACTER CRESLT*(*)
      REAL ARGS(NLOC,NARG), RET(NLOC,NRET)
      INTEGER IZ(*)
      CHARACTER CZ(*)*(1)
      DOUBLE PRECISION DZ(*)
      LOGICAL LZ(*)
      REAL RZ(*)

        __stack_point__ pVel
     
      CALL USER_GETVAR ('Air Ideal Gas.Velocity.Gradient', CRESLT,
     &   pVel,  CZ,DZ,IZ,LZ,RZ)


      CALL USER_SOURCE_CAL( RET(1,1), ARGS(1,1), ARGS(1,2), ARGS(1,3),
     &                RZ(pVel), NLOC )

C=======================================================================
       END
       SUBROUTINE USER_SOURCE_CAL (SOURCE, X, Y, Z, Vel, NLOC)

        INTEGER NLOC
       REAL Vel(3,NLOC), X(NLOC), Y(NLOC), Z(NLOC)

       REAL SOURCE(NLOC)

       INTEGER ILOC

       DO ILOC = 1, NLOC
 
        SOURCE(ILOC) = (Vel(1,ILOC)**2
     &     + Vel(2,ILOC)**2
     &     + Vel(3,ILOC)**2 )**0.5

      END DO

      END

 

Т.е. я пытаюсь извлечь для последующих действий градиент скорости. Вот при такой постановке программа вроде бы считает. Но ...

 

1) Если я вместо 'Air Ideal Gas.Velocity.Gradient', укажу градиент по какой-либо компоненте скорости, например,

 

'Air Ideal Gas.Velocity w.Gradient', то при завершении счета солвер выдаст сообщение об ошибке в работе модуля памяти.

Почему не извлекается градиент по компоненте скорости?

 

2) Второй момент. Вообще-то при записи 'Air Ideal Gas.Velocity.Gradient'  переменную массива REAL Vel(3,NLOC),...

надо бы записать как REAL Vel(3,NLOC,3) - т.е. градиент от скорости имеет 9 компонент. См. хелп п.18.5.2

Однако при такой записи солвер в конце счета тоже выдает сообщение об ошибке. Программа глотает переменную только в виде Vel(3,NLOC)

В чем может быть причина?

Изменено пользователем Бармалей
Ссылка на сообщение
Поделиться на других сайтах
  • 5 месяцев спустя...

Подскажите в чем может быть дело? Фортрановские подпрограммы с файлами из туториалов работают на "ура".

Как только те же самые подпрограммы и библиотеки пытаюсь "прицепить" к "своим" деф-файлам (взятым не из туториалов) то начинаются проблемы. Солвер считает, но после последней итерации выдает сообщение об ошибке и "вылетает". Единственная разница между моими деф-файлами и файлами из туториалов в том, что у меня сетка взята в формате cfx5, а в туториалах формат gtm. ГУ и все остальное без изменений.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 года спустя...
В 21.08.2013 в 00:36, Wonderz сказал:

упоминания о 2 ошибках:

 

Цитата

ifort: error: unable to run '<Microsoft VC++ Dir>\\Bin'

An error has occurred in cfx5mkext:

В 05.04.2014 в 12:19, kristeen сказал:

Все. Надеюсь, после 4 лет изначальный вопрос ветки можно считать закрытым)

Ошибка связана с номером установленной среды MVC++. По-умолчанию в конфигах ifort прописан MVC++ от разработчиков. Конфиг расположен рядом с бинарником в файле ifort.cfg. Например, необходимо заменить 7.1 на 8 в двух строках

 -Qvc7.1 -> -Qvc8...

Для счастья в некоторых случаях добавить

-Qoption,link,/nodefaultlib:uuid.lib

 

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...