Mentat 2010

Forumuri pe CAD.de (toate forumurile)
MSC.Soluții de simulare software
MSC.Marc Mentat 2010.2/Schimbați parametrii compilatorului Fortran (ifort)

aprilie 2010

Contribuții: 8
Înregistrat: 12 aprilie 2010

următoarea problemă:
Am creat o bibliotecă statică și aș dori să o includ atunci când îmi compilez userub-ul (hypela2). În acest scop, calea este transmisă în mod normal compilatorului cu -I PATH. Opțional, aș dori, de asemenea, ca utilizatorul meu să fie compilat cu -O3 (optimizare). Cu toate acestea, nu am drepturi de root pentru a edita run_marc în acest sens (run_marc compilează userub-urile din aproximativ linia 2807). În plus, modificarea run_marc nu ar fi oportună, deoarece utilizatorul ar fi portabil doar într-o măsură limitată.

O soluție pentru problema „bibliotecii statice” ar fi modificarea variabilei de mediu LD_LIBRARY_PATH, dar aceasta ar trebui să fie luată în considerare și la portare.

Sau există posibilitatea în Marc să importe fișiere obiect în loc de fișiere fortran, adică să preia compilația pentru Marc?

[Acest mesaj a fost editat de Sheeepy pe 14 octombrie 2011.]

[Acest mesaj a fost editat de Sheeepy pe 14 octombrie 2011.]

Contribuții: 773
Înregistrat: 13 decembrie 2008

creat la: 14 octombrie 2011 11:58 Trimiteți unități: Numai pentru Sheeepy

Contribuții: 8
Înregistrat: 12 aprilie 2010

În run_marc, compilarea se realizează folosind două variabile:
$ FORTRAN $ utilizatoriub
Nu prea pot înțelege (deoarece nu pot edita run_marc) de unde vine $ FORTRAN. Eventual. ați putea interveni atunci când creați această variabilă pentru a adăuga parametrii acolo.

Contribuții: 8
Înregistrat: 12 aprilie 2010

Așa că am căutat puțin în directoarele Marc:
găsit în: ./marc20102./tools/include_linux64
.
FCOMP = ifort
.
FORTRAN = "$ FCOMP -c -assume 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/include $ I8DEFINES -DLinux -DLINUX -DLinux_intel $ FDEFINES $ DDM $ SOLVERFLAGS "
.

adică -O3 ar fi apoi pur și simplu scris $ FORTHIGH în loc de $ FORTRAN, dar numai dacă run_marc poate fi procesat.

În antetul run_marc:
# -u * subrutină utilizator utilizator. . . #
# -obj obi obiecte de utilizator sau biblioteci. . . #
Deci, fișierele obiect utilizator ar trebui să funcționeze și ele (cred)
La fel ar putea. biblioteca statică sau, dacă este necesar, un sub-utilizator auto-compilat. Cu toate acestea, mă întreb de unde pot seta acest lucru în Mentat. Deoarece oricum lucrez în prezent la ssh, încep run_marc direct. Totuși, ar fi interesant unde în Mentat pot defini asta?

Căutați o nouă provocare profesională și doriți una recrutare corectă și personală a contacta? din cauza noastră mulți ani de experiență mara Personalservice GmbH este persoana de contact potrivită.

Contribuții: 8
Înregistrat: 12 aprilie 2010

Soluţie:
Compilați singur userub (ifort -c usersub.f) și includeți fișierul obiect folosind parametrul run_marc -obj (-obj usersub.o).
Cu toate acestea, nu știu cum funcționează acest lucru prin intermediul GUI Mentat.

Aceasta mi se pare (până acum) a fi cea mai bună soluție.