| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys |
Autor
|
Thema: User Programmable Features - eigene Fortran-Routine - ANSCUST.BAT (4132 mal gelesen)
|
triangulum Mitglied
Beiträge: 6 Registriert: 13.03.2009 ANSYS 11.0, Intel Fortran Compiler 9.1, MS Visual Studio 2005, Windows XP
|
erstellt am: 13. Mrz. 2009 18:02 <-- editieren / zitieren --> Unities abgeben:
Salü, habe die Aufgabe, eine Fortran-Kriechroutine aus ABAQUS nach ANSYS zu portieren und zu testen. Bin neu in ANSYS. Für "User Programmable Features", also Einschluss eigener Fortranroutinen, schreibt die Anleitung, man solle mittels ANSCUST.BAT und seiner eigenen Fortranroutine eine "custom ANSYS.exe" erstellen. Die Batch veranlasst u.a. Compilieren und Linken der Fortran-Routine. Kompilieren geht klar, beim Linken jedoch: entweder Fehlerabbruch oder Meldung "ANSYS.exe is up-to-date", und Erzeugung einer leeren .exe-Datei! Fehlermeldung:
Code: ansysex.def : warning LNK4022: cannot find unique match for symbol 'USERCREEP' ansysex.def : warning LNK4002: _USERCREEP defined in usercreep.obj ansysex.def : warning LNK4002: _USERCREEP@88 defined in usercreep.obj ansysex.def : error LNK2001: unresolved external symbol USERCREEP ANSYS.lib : fatal error LNK1120: 1 unresolved externals NMAKE : fatal error U1077: '"d:\apps\Microsoft Visual Studio 8\VC\bin\link.EXE"' : return code '0x460' Stop.
Noch etwas: Intel Fortran Compiler 9.1 will nur Dateien mit Endung .f90 kompilieren, gleichen Inhalt mit Endung .f nicht. Inhalt ANSCUST.BAT: Code: echo off if "%ansys110_dir%"=="" goto NoAnsDirset revnum=11.0 echo. echo ****************************************************************** echo. echo This is the ANSYS Revision %revnum% ANSCUST batch file. It is echo used to link User Programmable Features into versions of echo the ANSYS program on Intel Microsoft Windows systems. echo. echo NOTE: The user subroutine source files are expected to echo reside in your local directory and be of the form echo *.F and/or *.c echo. echo ****************************************************************** echo. pause rompt "%ansys110_dir%\custom\user\intel\ask" "Do you want to link with small export list" if errorlevel=1 goto SMALLEX if errorlevel=0 goto LARGEEX echo. echo "Please answer Y or N!" echo. goto prompt :SMALLEX if exist ansysex.def del ansysex.def copy ansyssmall.def ansysex.def echo "Meldung1" goto LinkNow :LARGEEX if exist ansysex.def del ansysex.def copy ansyslarge.def ansysex.def :LinkNow echo on rem for %%p in ( *.F ) do ifort -D__IFL -DNOSTDCALL -DARGTRAIL -Od /Zp4 -DPCWINNT_SYS -DCADOE_ANSYS -Qfpp -Qopenmp -4Yportlib -4Ya /c /Fo.\ /DFORTRAN /MD /W0 %%p >> f_comp.log for %%p in ( *.F90 ) do ifort -D__IFL -DNOSTDCALL -DARGTRAIL -Od /Zp4 -DPCWINNT_SYS -DCADOE_ANSYS -Qfpp -Qopenmp -4Yportlib -4Ya /Gm /c /Fo.\ /DFORTRAN /MD /W0 %%p >> f_comp.log rem for %%p in ( *.c ) do cl -DNOSTDCALL -DARGTRAIL -Od -GR -GX /Zp4 /DPCWINNT_SYS /DCADOE_ANSYS /DCURVEFIT_EXPORTS /c /W3 /D_X86=1 /DOS_WIN32 /DWIN32 /D__STDC__ /MD %%p >> c_comp.log nmake goto end :NoAnsDir echo. echo ************************************************************************** echo. echo ERROR: echo The environment variable ANSYS110_DIR must be set to the echo root ANSYS directory. echo. echo EXAMPLE: echo set ANSYS110_DIR=C:\Program Files\Ansys Inc\v110\ANSYS echo. echo **************************************************************************** echo. :end pause
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MGebhardt Mitglied Dipl.-Ing. Masch., WiMi
Beiträge: 95 Registriert: 15.09.2008 2 * Intel Core 2 Duo 2,66 GHz, 2* 4 GB RAM, OpenSUSE 11.0 Ansys 11.0 Academic Research
|
erstellt am: 16. Mrz. 2009 15:02 <-- editieren / zitieren --> Unities abgeben: Nur für triangulum
Hallo, leider kann ich Dir bei Deinem Problem nicht helfen, aber ich würd Dich bitten die Lösung ins Forum zu stellen, wenn Du fertig bist, da es 1. für mich auch bald interessant wird 2. sehr wenig zu dem Thema zu finden ist Danke und Gruß Moritz ------------------ Moritz Oliver Gebhardt Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
triangulum Mitglied
Beiträge: 6 Registriert: 13.03.2009 ANSYS 11.0, Intel Fortran Compiler 9.1, MS Visual Studio 2005, Windows XP
|
erstellt am: 17. Mrz. 2009 15:50 <-- editieren / zitieren --> Unities abgeben:
Sodala. Lösung ham'mer noch nicht, aber der Support von cadfem hat reagiert! Zunächst erklärten sie telefonisch, die bisherige ANSCUST.BAT sei schlickt fehlerhaft (also schon werksseitig so). Sie schickten mir eine neue ANSCUST.BAT, mit der Bitte, die Verzeichnisse anzupassen. Einige Verzeichnisse waren aber bei mir garnicht vorhanden, andere waren in der neuen .BAT nicht, mussten aber wg. .lib-Dateien hinzugefügt werden. Tat ich, so weit, so gut. Irgendwann beklagte sich der Linker dann nicht mehr über fehlende .lib's. Damit habe ich zum ersten Mal geschafft, eine .exe zu erstellen aaaaaber !!! kann sie noch nicht starten, irgend etwas mit der Lizenz wird gemeckert. Das hasse ich am meisten, wenn die Heidenangst der SW-Schmieden vor Raubkopien vor allem darin ausartet, dass zahlenden Anwendern die Verwendung der Software deutlich erschwert oder verhindert wird, oder einen deutlicher Arbeitsmehraufwand wg. LizenzKram mit sich bringt! Die jetzige ANSCUST.BAT: (geremte set-Zeilen sind für diejenigen Verzeichnisse, deren Entsprechende ich bei mir nicht wiederfand, die aber in der vom Support geschickten .BAT enthalten waren. Und: es ist lt. Support SMALLEX zu nehmen, nicht LARGEEX! Warum man dann nicht gleich LARGEEX aus der .BAT rauslassen kann, frage ich mich ....
Code: @echo offset PATH= set PATH=C:\Programme\Intel\IDB\9.1\IA32\Script;%PATH% set PATH=C:\Programme\Intel\Compiler\Fortran\9.1\em64t\bin;%PATH% set C:\Programme\Intel\IDB\9.1\IA32\Bin;%PATH% set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;%PATH% rem HIER IST UNKLAR, WELCHE SDK aus dem Microsoft Visualstudio zu nehmen ist rem set PATH=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin\winnt;%PATH% set PATH=D:\apps\Microsoft Visual Studio 8\VC\PlatformSDK\Bin;%PATH% rem set PATH=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin\win64\x86\AMD64;%PATH% set INCLUDE set INCLUDE=D:\apps\Microsoft Visual Studio 8\VC\PlatformSDK\Include;%INCLUDE% rem set INCLUDE=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\mfc;%INCLUDE% rem set INCLUDE=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\crt\sys;%INCLUDE% rem set INCLUDE=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\crt;%INCLUDE% rem set INCLUDE=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include;%INCLUDE% set INCLUDE=C:\Programme\Intel\Compiler\Fortran\9.1\em64t\Include;%INCLUDE% set LIB= set LIB=C:\Programme\Intel\Compiler\Fortran\9.1\em64t\Lib;%LIB% set LIB=D:\apps\Microsoft Visual Studio 8\VC\PlatformSDK\Lib\AMD64;%LIB% set LIB=D:\apps\Microsoft Visual Studio 8\VC\PlatformSDK\Lib;%LIB% rem set LIB=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\AMD64\atlmfc;%LIB% set LIB=%ansys110_dir%\custom\lib\intel;%LIB% set LIB=D:\apps\Microsoft Visual Studio 8\VC\lib;%LIB% if "%ansys110_dir%"=="" goto NoAnsDir set revnum=11.0 set LIB=%ansys110_dir%\custom\lib\winx64;%LIB% set INCLUDE=%ansys110_dir%\custom\include;%INCLUDE% echo. echo ****************************************************************** echo. echo This is the ANSYS Revision %revnum% ANSCUST batch file. It is echo used to link User Programmable Features into versions of the echo ANSYS program on Microsoft Windows XP x64 systems. echo. echo NOTE: The user subroutine source files are expected to echo reside in your local directory and be of the form echo *.F and/or *.c echo. echo ****************************************************************** echo. pause rompt rem "%ansys110_dir%\custom\user\winx64\ask" "Do you want to link with small export list" rem if errorlevel=1 goto SMALLEX rem if errorlevel=0 goto LARGEEX rem echo. rem echo "Please answer Y or N!" rem echo. rem goto prompt :SMALLEX copy /Y ansyssmall.def ansysex.def goto LinkNow :LARGEEX rem copy /Y ansyslarge.def ansysex.def :LinkNow echo on del /Q *.err for %%p in ( *.F ) do ifort -D__EFL -DNOSTDCALL -DARGTRAIL -O3 -DPCWIN64_SYS -DPCWINX64_SYS -DPCWINNT_SYS -DCADOE_ANSYS -Qfpp -nbs -4Yportlib -4Ya /c /Fo.\ /DFORTRAN /MD /W0 %%p >> f_comp.err 2>&1 rem for %%p in ( *.c ) do cl -DNOSTDCALL -DARGTRAIL -Ox -GR -EHsc /DPCWINNT_SYS /DPCWIN64_SYS /DPCWINX64_SYS /DCADOE_ANSYS /DCURVEFIT_EXPORTS /Zi /c /W3 /D_X86=1 /DOS_WIN32 /DWIN32 /D__STDC__ /MD %%p >> c_comp.err del /Q ansys.exe nmake goto end :NoAnsDir echo. echo ************************************************************************** echo. echo ERROR: echo The environment variable ANSYS110_DIR must be set to the echo root ANSYS directory. echo. echo EXAMPLE: echo set ANSYS110_DIR=C:\Program Files\Ansys Inc\v110\ANSYS echo. echo **************************************************************************** echo. :end pause
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
triangulum Mitglied
Beiträge: 6 Registriert: 13.03.2009 ANSYS 11.0, Intel Fortran Compiler 9.1, MS Visual Studio 2005, Windows XP
|
erstellt am: 07. Apr. 2009 17:13 <-- editieren / zitieren --> Unities abgeben:
Sodala, ich kann jetzt die Custom-EXE starten. Man muss es aus dem ANSYS Product Launcher machen, warum auch immer. (Naivlinge würden ja meinen, es entsteht deswegen eine .exe, damit man einfach draufklicken kann ...). Ich muss jetzt die einkompilierte Nutzer-Kriechroutine "aktivieren". Wie macht man das? Der Befehl USRCAL aktiviert einiges, aber keine USERCREEP. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Phil001 Mitglied
Beiträge: 23 Registriert: 05.04.2009
|
erstellt am: 26. Apr. 2009 13:07 <-- editieren / zitieren --> Unities abgeben: Nur für triangulum
|
nbuhl Mitglied Dipl.-Ing.
Beiträge: 52 Registriert: 25.06.2007 Win XP Prof. 2,8 GHz DualCore 3GB RAM WF2 - Studiversion CATIA V5 - Studiversion Ansys Classic V11SP1 - Studiversion
|
erstellt am: 19. Mai. 2009 10:45 <-- editieren / zitieren --> Unities abgeben: Nur für triangulum
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|