Mentat 2010
MSC. Софтуерни симулационни решения
MSC.Marc Mentat 2010.2/Променете параметрите на компилатора Fortran (ifort)

Принос: 8
Регистриран: 12 април 2010 г.
следния проблем:
Създадох статична библиотека и бих искал да я включа, когато компилирам потребителския си суб (hypela2). За тази цел пътят обикновено се предава на компилатора с -I PATH. По желание също бих искал моят потребителски суб да бъде компилиран с -O3 (оптимизация). Аз обаче нямам root права да редактирам run_marc съответно (run_marc компилира потребителските файлове от около ред 2807). В допълнение, модификацията на run_marc не би била целесъобразна, тъй като потребителският суб ще бъде преносим само в ограничена степен.
Решение за проблема със "статичната библиотека" би било модифицирането на променливата на околната среда LD_LIBRARY_PATH, но това също трябва да се вземе предвид при пренасяне.
Или има възможност в Marc да импортира обектни файлове вместо fortran файлове, т.е. да поеме компилацията за Marc?
[Това съобщение беше редактирано от Sheeepy на 14 октомври 2011 г.]
[Това съобщение беше редактирано от Sheeepy на 14 октомври 2011 г.]
Принос: 773
Регистриран: 13 декември 2008 г.
Принос: 8
Регистриран: 12 април 2010 г.
В run_marc компилацията се извършва с помощта на две променливи:
$ FORTRAN $ потребители
Не мога да разбера напълно (тъй като не мога да редактирам run_marc) откъде идва $ FORTRAN. Вероятно. можете да се намесите, когато създавате тази променлива, за да добавите параметри там.
Принос: 8
Регистриран: 12 април 2010 г.
Затова потърсих малко директориите на Marc:
намерен в: ./marc20102./tools/include_linux64
.
FCOMP = ifort
.
FORTRAN = "$ FCOMP -c -активирайте byterecl -safe_cray_ptr $ PROFILE -save -zero -mp -WB -w90 -O1 $ I8FFLAGS -I $ MARC_SOURCE/common \
-I $ MARC_SOURCE/bcssolver/common -I $ MARC_SOURCE/mumpssolver/включва $ I8DEFINES -DLinux -DLINUX -DLinux_intel $ FDEFINES $ DDM $ SOLVERFLAGS "
.
т.е. -O3 тогава просто ще напише $ FORTHIGH вместо $ FORTRAN, но само ако run_marc може да бъде обработен.
В заглавката на run_marc:
# -u * потребителска потребителска подпрограма. . . #
# -obj obj потребителски обекти или библиотеки. . . #
Така че потребителските обектни файлове също трябва да работят (предполагам)
Така че е възможно. статичната библиотека или, ако е необходимо, самокомпилиран потребителски под. Чудя се обаче къде мога да направя това в Mentat. Тъй като в момента така или иначе работя върху ssh, стартирам директно run_marc. Би било интересно обаче да видя къде в Mentat мога да определя това?
Търсите ново професионално предизвикателство и бихте искали такова честно и лично набиране За да се свържете? заради нашите дългогодишен опит mara Personalservice GmbH е правилният контакт.
Принос: 8
Регистриран: 12 април 2010 г.
Решение:
Компилирайте сами потребителя (ifort -c usersub.f) и включете обектния файл, като използвате параметъра run_marc -obj (-obj usersub.o).
Не знам обаче как работи това чрез графичния интерфейс на Mentat.
Това ми се струва (засега) най-доброто решение.