ADAMS2008 and AeroDyn?

Brian,

I think you are right in that MSC.ADAMS 2008 requires the IVF compiler and no longer accepts the CVF compiler. But I haven’t installed MSC.ADAMS 2008 and tried it myself yet.

To date, we have been compiling FAST and ADAMS2AD (with MSC.ADAMS 2005R2) with the CVF compiler, but we plan to upgrade to the IVF compiler for the next official releases of FAST and ADAMS2AD (which, hopefully, should be available soon).

I know that when we tried to compile FAST with IVF a couple of years ago (with IVF v8.x), it took about an order of magnitude longer to compile, FAST ran slower in the end, and the results were different. This is the reason why it has taken us a while to switch over. But recently, we have been working with the folks at CENER who have been using IVF v10.x and they have worked through the issues involved. Some of the problems were related to bugs in IVF v8.x that are now fixed in v10.x. Beyond that, CENER has informed us that to compile FAST with IVF, you must do the following different from with CVF:

(1) Use Modifort.f90 and Sysifort.f90 files (available from wind.nrel.gov/public/jjonkman/IVF/) to replace the ModCVF.f90 and SysCVF.f90 files
(2) Change the precision from single (ReKi = 4, /real-size:32) to double (ReKi = 8, /real-size:64)
(3) Enable Qsave in IVF (as variables are SAVEd by default in CVF)

I have not used the attachments myself, but hopefully they will be of use to you.

Best regards,

Jason,
This is great info. Thanks! I’ll definitely give it a try when we get back to work after the holidays.

Brian

Hello. I have installed IVF ver.11.1.051 and ADAMS 2008 R3. My intention was to link this version of ADAMS with Aerodyn 13 in order to simulate a model of the UAE Phase VI wind turbine that I produced using the FAST preprocessor. After many days of trying, unfortunately I haven’t managed it yet. Let me explain what I have done:
1)I first used FAST as a preprocessor for ADAMS . When I open the ADM file with ADAMS/View it seems alright. The ACF file is this:
Test10_Delft_S0700000_ADAMS
Test10_Delft_S0700000_ADAMS
INTEGRATOR/GSTIFF, ERROR = 0.001, HMAX = 4.000000E-03, INTERPOLATE = ON
SIMULATE/DYNAMICS, END = 4.000000E-03, DTOUT = 1.200000E-01
SIMULATE/DYNAMICS, END = 3.000000E+01, DTOUT = 1.200000E-01
STOP

2)Then I tried to link Aerodyn with ADAMS using the “CompileLinkA2AD.bat”. I edited it and set the correct paths for the NWTC_lib, Aerodyn, FAST, Wind_loc, A2AD. I also edited the compiler internal variables since the file (“051/bin/ia32”) that includes “IFORT.exe” does not include any file named “IFORTVARS.bat” but “IFORTVARS_ia32.bat” so I changed it. The file “IFORTVARS.bat” is on the previous directory (“051/bin”) from “IFORT.exe” Finally, in the call that links the A2AD and Aerodyn routines with ADAMS, I initially replaced the “ADAMS08r1” with “ADAMS08r3”, but the message remained the same “ADAMS08r3 is not recognized as an internal or external command operable program or batch file” so I entered the full name path of “mdi.bat”, which seems to have solved this problem.

3)I then tried to run “CompileLinkA2AD.bat”. At some stage when it compiles A2AD and Aerodyn routines to create the ADAMS.obj there are two warnings saying that “/automatic” is overrided with “/Qsave” which doesn’t seem to be critical. However, later on in the linking phase, while creating the ADAMS07r2.lib file and the ADAMS07r2.exp file, it presents me with three “unresolved external symbols” link errors and fails to create the dll file.

After that, I tried various solutions. I first tried to change the set of compiler options, with one of the other two provided in the “CompileLinkA2AD.bat”. In the end, only the first set of compiler options “worked”, it produced a dll file, but only after a ton of warning while creating the .obj file. I opened the ADAMS command and typed ru-user, I entered the dll path but when I entered the .acf file path, the solver just crashed.
Then in the compiler internal variables, I entered the path for “IFORTVARS.bat” which is on the previous directory of the “IFORT.exe” but the result was the same.
I uninstalled ADAMS 2008r3 and installed ADAMS 2007r2. The results were EXACTLY the same, with the difference that when I use the default set of compiler options, I get FOUR “unresolved external symbols” link errors instead of three.

I suspect that it could be the compiler options since, even if it produces the dll, it does so with a bunch full of errors. Alternativelly it could be the output of the FAST preprocessor. The .adm file seems to be perfect when I view it with ADAMS/View but I do not know about the .acf file. PLEASE help, I have wasted almost a week and I have gonne nowhere!

If your version of IVF has IFORTVARS in a previous directory, I would use that previous directory, and change the script to call “IFORTVARS.bat ia32”. There are some other posts regarding this change on this forum (just search for “IFORTVARS”). This change in the directory structure began with IVF 11, and the script you are using was developed with IVF 10.1.

That sounds reasonable to me. MSC.ADAMS used to install batch files called something like ADAMS08r1, which just called the “mdi.bat” file, but they seem to have stopped this practice.

Those warnings are not important. They are merely a reminder for us to clean up the code so that we can remove the /Qsave option.

It would be helpful to know which symbols these are. It sounds like a problem with an incorrect or missing path. Knowing which symbols it can’t find could help us figure out what path is causing the problem.

Other users on this forum have indicated that they need to use the /O1 compile option when compiling some versions of ADAMS with IVF 11. You might try to just add “/O1” to the COPTS string (the 1st set of commented out compiler options also includes some debugging features, some of which will write MANY warnings when it compiles the fftpack.f code).

I am sure the problem is caused by the dll and not the output of the FAST preprocessor (though you could try running the Adams datasets created from the FAST CertTest cases just to check).

We have very recently been given permission to distribute ADAMS DLLs (but do not yet have any in our Adams2AD archive). I have created two Adams 2008 R1 DLLs using Adams2AD 13.00.00a-bjj linked with AeroDyn 13.00.00a-bjj (and FAST 7.00.01a-bjj). One of the DLLs contains the Bladed-style DLL controller features; the other doesn’t. You can download them at http://wind.nrel.gov/public/bjonkman/DesignCodes/. I used IVF 10.1 to create them.

You could see if they work with your version of Adams.

Dear all,

I met a problem while creating a ADAMS.dll. The version of codes used is attached below.
IVF 2011
ADAMS 2013
FAST v7.02
AeroDyn v13
A2AD v13.01
I set the correct paths for the NWTC_lib, Aerodyn, FAST, Wind_loc, A2AD. But I don’t know how to set the compiler options (COPTS) correctly.
I attached my CompileLinkA2AD.bat below.

[code]@ECHO OFF

REM ----------------------------------------------------------------------------
REM set compiler internal variables
REM ----------------------------------------------------------------------------
REM You can run this bat file from the IVF compiler’s command prompt (and not
REM do anything in this section). If you choose not to run from the IVF command
REM prompt, you must call the compiler’s script to set internal variables.
REM TIP: Right click on the IVF Compiler’s Command Prompt shortcut, click
REM properties, and copy the target (without cmd.exe and/or its switches) here:
REM …
REM See this forum topic for instructions and help with setting the compiler
REM internal variables in this script:
REM Instructions for Compiling FAST
REM …

IF “%INTEL_SHARED%”==“” CALL “D:\software\IVF\ComposerXE-2011\bin\ipsxe-comp-vars.bat” ia32 vs2010

REM ----------------------------------------------------------------------------
REM -------------------- LOCAL VARIABLES ---------------------------------------
REM -------------------------- --------------------------------------------------

SET ROOT_NAME=ADAMS

REM ----------------------------------------------------------------------------
REM -------------------- LOCAL PATHS ------------------------------------------
REM ----------------------------------------------------------------------------
REM USERS WILL NEED TO EDIT THESE PATHS TO POINT TO FOLDERS ON THEIR LOCAL MACHINES:
REM A2AD_Loc is the location of the ADAMS-to-AeroDyn source files.
REM AeroDyn_Loc is the location of the AeroDyn source files.
REM Wind_Loc is the location of the InflowWind souce files.
REM FAST_LOC is the location of the FAST source files: FFTMod.f90, HydroCalc.f90, fftpack.f, UserSubs.f90, and possibly PitchCntrl_ACH.f90, UserVSCont_KP.f90, and/or BladedDLLInterface.f90.
REM NWTC_Lib_Loc is the location of the NWTC subroutine library files.
REM ----------------------------------------------------------------------------

REM NOTE: DO NOT USE QUOTATION MARKS HERE (AROUND THE PATH NAMES)
REM OR THE FILE CONCATENATION BELOW WILL NOT WORK

SET NWTC_Lib_Loc=C:\Users\XYY\Desktop\ADAMS2AD\A2AD_v13.01.00b-bjj_0\XU creat a DLL\source files\NWTC_Lib_v1.07.02a-mlb\Source
SET AeroDyn_Loc=C:\Users\XYY\Desktop\ADAMS2AD\A2AD_v13.01.00b-bjj_0\XU creat a DLL\source files\AeroDyn
SET Wind_Loc=C:\Users\XYY\Desktop\ADAMS2AD\A2AD_v13.01.00b-bjj_0\XU creat a DLL\source files\InflowWind
SET FAST_Loc=C:\Users\XYY\Desktop\ADAMS2AD\A2AD_v13.01.00b-bjj_0\XU creat a DLL\source files\FAST v7.02
SET A2AD_Loc=C:\Users\XYY\Desktop\ADAMS2AD\A2AD_v13.01.00b-bjj_0\XU creat a DLL\source files\A2AD v13.01

REM ----------------------------------------------------------------------------
REM -------------------- LIST OF ALL SOURCE FILES ------------------------------
REM -------- please note that all source files must have a blank line ----------
REM -------- at the end so that they can be concatenated properly ----------
REM ----------------------------------------------------------------------------

SET NWTC_Files=
SET NWTC_Files=%NWTC_Files% “%NWTC_Lib_Loc%\SingPrec.f90”
SET NWTC_Files=%NWTC_Files% + “%A2AD_Loc%\SysIVF_ADAMS.f90”
SET NWTC_Files=%NWTC_Files% + “%NWTC_Lib_Loc%\NWTC_IO.f90”
SET NWTC_Files=%NWTC_Files% + “%NWTC_Lib_Loc%\NWTC_Num.f90”
SET NWTC_Files=%NWTC_Files% + “%NWTC_Lib_Loc%\NWTC_Aero.f90”
SET NWTC_Files=%NWTC_Files% + “%NWTC_Lib_Loc%\ModMesh.f90”
SET NWTC_Files=%NWTC_Files% + “%NWTC_Lib_Loc%\NWTC_Library.f90”

SET Wind_Files=
SET Wind_Files=%Wind_Files% “%Wind_Loc%\SharedInflowDefs.f90”
SET Wind_Files=%Wind_Files% + “%Wind_Loc%\HHWind.f90”
SET Wind_Files=%Wind_Files% + “%Wind_Loc%\FFWind.f90”
SET Wind_Files=%Wind_Files% + “%Wind_Loc%\HAWCWind.f90”
SET Wind_Files=%Wind_Files% + “%Wind_Loc%\FDWind.f90”
SET Wind_Files=%Wind_Files% + “%Wind_Loc%\CTWind.f90”
SET Wind_Files=%Wind_Files% + “%Wind_Loc%\UserWind.f90”
SET Wind_Files=%Wind_Files% + “%Wind_Loc%\InflowWindMod.f90”

SET AeroDyn_Files=
SET AeroDyn_Files=%AeroDyn_Files% “%AeroDyn_Loc%\SharedTypes.f90”
SET AeroDyn_Files=%AeroDyn_Files% + “%AeroDyn_Loc%\AeroMods.f90”
SET AeroDyn_Files=%AeroDyn_Files% + “%AeroDyn_Loc%\GenSubs.f90”
SET AeroDyn_Files=%AeroDyn_Files% + “%AeroDyn_Loc%\AeroSubs.f90”
SET AeroDyn_Files=%AeroDyn_Files% + “%AeroDyn_Loc%\AeroDyn.f90”

SET Fixed_Files =
SET Fixed_Files=%Fixed_Files% “%FAST_Loc%\fftpack.f”

SET FAST_Files=
SET FAST_Files=%FAST_Files% “%FAST_Loc%\FFTMod.f90”
SET FAST_Files=%FAST_Files% + “%FAST_Loc%\HydroCalc.f90”
SET FAST_Files=%FAST_Files% + “%A2AD_Loc%\FAST_params.f90”

IF /I “%1”==“DLL” GOTO dllFiles

SET FAST_Files=%FAST_Files% + “%FAST_Loc%\UserSubs.f90”
SET FAST_Files=%FAST_Files% + “%FAST_Loc%\UserVSCont_KP.f90”
SET FAST_Files=%FAST_Files% + “%FAST_Loc%\PitchCntrl_ACH.f90”

GOTO endFASTfiles

:dllFiles
SET FAST_Files=%FAST_Files% + “%FAST_LOC%\UserSubs_forBladedDLL.f90”
SET FAST_Files=%FAST_Files% + “%FAST_LOC%\UserVSCont_KP_forBladedDLL.f90”
SET FAST_Files=%FAST_Files% + “%FAST_LOC%\BladedDLLInterface.f90”

REM NOTE: UserSubs_forBladedDLL.f90 is a copy of UserSubs.f90 with SUBROUTINES UserHSSBr() and UserYawCont() commented out
REM UserVSCont_KP_forBladedDLL.f90 is a copy of UserVSCont_KP.f90 with SUBROUTINE UserVSCont() commented out

:endFASTfiles

SET A2AD_Files=
SET A2AD_Files=%A2AD_Files% “%A2AD_Loc%\A2AD_Mod.f90”
SET A2AD_Files=%A2AD_Files% + “%A2AD_Loc%\Adams_subs.f90”

REM echo File list

REM ----------------------------------------------------------------------------
REM ----------- Concatenate them into one file for free-format -----------------
REM ----------- Fortran and one file for fixed-format Fortran -----------------
REM ----------------------------------------------------------------------------

COPY %NWTC_Files% + %Wind_Files% + %AeroDyn_Files% + %FAST_Files% + %A2AD_Files% %ROOT_NAME%.f90
COPY %Fixed_Files% %ROOT_NAME%.f

REM ----------------------------------------------------------------------------
REM ------- SET CREATE OBJECT FILE BASED ON SPECIFIED COMPILER -----------------
REM ----------------------------------------------------------------------------

REM ----------------------------------------------------------------------------
REM --------------------- INTEL VISUAL FORTRAN ---------------------------------
REM --------------------- with Adams 2013 ---------------------------------
REM ----------------------------------------------------------------------------

REM …
REM … set compiler options …
REM …
REM SET COPTS= /c /automatic /architecture:pn4 /Ob2 /MD /Gm /O1 /traceback /real_size:32 /assume:byterecl /stand:f95 /check:bounds
REM SET COPTS= /c /automatic /architecture:pn4 /Ob2 /MD /Gm /Ot /O3 /traceback /real_size:32 /assume:byterecl /stand:f95 /Qdiag-disable:5268

SET COPTS= /c /01 /automatic /architecture:pn4 /Ob2 /MD /Gm /Ot /O3 /traceback /real_size:32 /assume:byterecl /stand:f95 /Qdiag-disable:5268

REM …
REM … compile …
REM …

ECHO.
ECHO Compiling ADAMS2AD and AeroDyn routines to create ADAMS.obj:
ifort %COPTS% /object:%ROOT_NAME%.obj %ROOT_NAME%.f90
ifort %COPTS% /object:%ROOT_NAME%f.obj %ROOT_NAME%.f

REM …
REM … link with Adams …
REM …

ECHO Linking ADAMS2AD and AeroDyn routines with ADAMS 2013:
SET DLLName=%ROOT_NAME%13
IF /I “%1”==“DLL” SET DLLName=%DLLName%_forBladedDLL

CALL D:\software\ADAMS2013\common\mdi.bat ru-st -n cr-user n %ROOT_NAME%.obj %ROOT_NAME%f.obj -n %DLLName%.dll exit < NewLine.txt

GOTO end

:end
REM ----------------------------------------------------------------------------
REM ------------------------- CLEAR MEMORY -------------------------------------
REM ------------- and delete all .mod and .obj files ---------------------------
REM ----------------------------------------------------------------------------
REM ECHO a

DEL *.mod
DEL *.obj

SET MyCompiler=
SET DF_LOC=
SET IVF_LOC=
SET ROOT_NAME=
SET COPTS=

SET NWTC_Files=
SET Wind_Files=
SET AeroDyn_Files=
SET FAST_Files=
SET A2AD_Files=
SET Fixed_Files=

SET NWTC_Lib_Loc=
SET Wind_Loc=
SET AeroDyn_Loc=
SET A2AD_Loc=
SET FAST_Loc=

SET DLLName=[/code]
When I run it with a command window, it seemed to be a problem when Linking ADAMS2AD and AeroDyn routines with ADAMS 2013. I attached part of command window file below.

[code]-----------------------------------^
ADAMS.f90(2405): warning #7416: Fortran 95 does not allow this intrinsic procedu
re. [COMMAND_ARGUMENT_COUNT]
IF ( InArg > COMMAND_ARGUMENT_COUNT() ) THEN
----------------^
ADAMS.f90(2415): warning #7416: Fortran 95 does not allow this intrinsic procedu
re. [GET_COMMAND_ARGUMENT]
CALL GET_COMMAND_ARGUMENT( InArg, InFile )
--------^
ADAMS.f90(6056): warning #7847: Allocatable fields of derived types is an extens
ion of Standard F95. [ALPHA]
REAL(ReKi), ALLOCATABLE :: Alpha (:slight_smile:
! The angle of attack vector.
--------------------------------------^
ADAMS.f90(6057): warning #7847: Allocatable fields of derived types is an extens
ion of Standard F95. [CL]
REAL(ReKi), ALLOCATABLE :: Cl (:slight_smile:
! The lift-coefficient vector.
--------------------------------------^
ADAMS.f90(6058): warning #7847: Allocatable fields of derived types is an extens
ion of Standard F95. [CD]
REAL(ReKi), ALLOCATABLE :: Cd (:slight_smile:
! The drag-coefficient vector.
--------------------------------------^
ADAMS.f90(6059): warning #7847: Allocatable fields of derived types is an extens
ion of Standard F95. [CM]
REAL(ReKi), ALLOCATABLE :: Cm (:slight_smile:
! The pitching-moment-coefficient vector.
--------------------------------------^
ADAMS.f90(6060): warning #7847: Allocatable fields of derived types is an extens
ion of Standard F95. [CPMIN]
REAL(ReKi), ALLOCATABLE :: Cpmin (:slight_smile:
! The minimum-pressure-coefficient vector.
--------------------------------------^
ADAMS.f90(6061): warning #7847: Allocatable fields of derived types is an extens
ion of Standard F95. [FTB]
REAL(ReKi), ALLOCATABLE :: FTB (:slight_smile:
! The normal-coefficient divided by the Cn slope at zero lift.
--------------------------------------^
ADAMS.f90(6062): warning #7847: Allocatable fields of derived types is an extens
ion of Standard F95. [FTBC]
REAL(ReKi), ALLOCATABLE :: FTBC (:slight_smile:
! The chordwise-coefficient divided by the Cn slope at zero lift.
--------------------------------------^
ADAMS.f90(6068): warning #7847: Allocatable fields of derived types is an extens
ion of Standard F95. [IND]
INTEGER, ALLOCATABLE :: Ind (:,:slight_smile:
! The tables in this supertable.
--------------------------------------^
ADAMS.f90(6073): warning #7847: Allocatable fields of derived types is an extens
ion of Standard F95. [TAB]
TYPE(AeroTable), ALLOCATABLE :: Tab (:slight_smile:
! The tables in this supertable.
--------------------------------------^
ADAMS.f90(14046): warning #7847: Allocatable fields of derived types is an exten
sion of Standard F95. [BLADE]
TYPE(Marker), ALLOCATABLE :: Blade(:,:slight_smile:
------------------------------------^
ADAMS.f90(14047): warning #7847: Allocatable fields of derived types is an exten
sion of Standard F95. [HUB]
TYPE(Marker), ALLOCATABLE :: Hub(:slight_smile:
------------------------------------^
ADAMS.f90(14048): warning #7847: Allocatable fields of derived types is an exten
sion of Standard F95. [ROTORFURL]
TYPE(Marker), ALLOCATABLE :: RotorFurl(:slight_smile:
------------------------------------^
ADAMS.f90(14049): warning #7847: Allocatable fields of derived types is an exten
sion of Standard F95. [NACELLE]
TYPE(Marker), ALLOCATABLE :: Nacelle(:slight_smile:
------------------------------------^
ADAMS.f90(14050): warning #7847: Allocatable fields of derived types is an exten
sion of Standard F95. [TOWER]
TYPE(Marker), ALLOCATABLE :: Tower(:slight_smile:
------------------------------------^
ADAMS.f90(14051): warning #7847: Allocatable fields of derived types is an exten
sion of Standard F95. [TAIL]
TYPE(Marker), ALLOCATABLE :: Tail(:slight_smile:
------------------------------------^
ADAMS.f90(14055): warning #7847: Allocatable fields of derived types is an exten
sion of Standard F95. [BLADE]
TYPE(Load), ALLOCATABLE :: Blade(:,:slight_smile:
------------------------------------^
ADAMS.f90(14056): warning #7847: Allocatable fields of derived types is an exten
sion of Standard F95. [HUB]
TYPE(Load), ALLOCATABLE :: Hub(:slight_smile:
------------------------------------^
ADAMS.f90(14057): warning #7847: Allocatable fields of derived types is an exten
sion of Standard F95. [ROTORFURL]
TYPE(Load), ALLOCATABLE :: RotorFurl(:slight_smile:
------------------------------------^
ADAMS.f90(14058): warning #7847: Allocatable fields of derived types is an exten
sion of Standard F95. [NACELLE]
TYPE(Load), ALLOCATABLE :: Nacelle(:slight_smile:
------------------------------------^
ADAMS.f90(14059): warning #7847: Allocatable fields of derived types is an exten
sion of Standard F95. [TOWER]
TYPE(Load), ALLOCATABLE :: Tower(:slight_smile:
------------------------------------^
ADAMS.f90(14060): warning #7847: Allocatable fields of derived types is an exten
sion of Standard F95. [TAIL]
TYPE(Load), ALLOCATABLE :: Tail(:slight_smile:
------------------------------------^
ADAMS.f90(14070): warning #7847: Allocatable fields of derived types is an exten
sion of Standard F95. [BLADE]
TYPE(Marker), ALLOCATABLE :: Blade(:slight_smile:
------------------------------------^
ADAMS.f90(20596): warning #7847: Allocatable fields of derived types is an exten
sion of Standard F95. [SETMULTABLOC]
LOGICAL ,ALLOCATABLE :: SetMulTabLoc(:,:slight_smile:
------------------------------------^
ADAMS.f90(20597): warning #7847: Allocatable fields of derived types is an exten
sion of Standard F95. [MULTABLOC]
REAL(ReKi),ALLOCATABLE :: MulTabLoc(:,:slight_smile: ! MulTab
Loc from GetElemParams()
------------------------------------^
ADAMS.f90(25157): warning #5112: Extension to FORTRAN-90: tab formatting
WRITE(*, *)‘LINE 3120’, I
^
ADAMS.f90(25158): warning #7356: The PAUSE statement has been deleted in Fortran
95.
PAUSE
------------------------^
ADAMS.f90(29768): warning #6477: Fortran 95 does not allow this statement or dir
ective.
POINTER ( DLL_ProcAddr, DLL_Procedure )
—^
ADAMS.f90(29768): warning #7028: Integer pointer non-standard
POINTER ( DLL_ProcAddr, DLL_Procedure )
—^
ADAMS.f90(29774): warning #7372: Procedures as pointees is not supported in Fort
ran 95 standard. [DLL_PROCEDURE]
SUBROUTINE DLL_Procedure ( avrSWAP, aviFAIL, accINFILE, avcOUTNAME, avcMSG
)
-----------------^
ADAMS.f90(29908): warning #6233: Fortran 95 does not allow character and nonchar
acter objects to be equivalenced. [CINFILE]
EQUIVALENCE (iInFile , cInFile )
-----------------------^
ADAMS.f90(29908): warning #7165: If an equiv-object is of type other than defaul
t integer, real, double precision, complex, logical, or character, all of the ob
jects in the equiv set must be of the same type with the same kind type paramete
r value. [CINFILE]
EQUIVALENCE (iInFile , cInFile )
-----------------------^
ADAMS.f90(29909): warning #6233: Fortran 95 does not allow character and nonchar
acter objects to be equivalenced. [CMESSAGE]
EQUIVALENCE (iMessage, cMessage)
-----------------------^
ADAMS.f90(29909): warning #7165: If an equiv-object is of type other than defaul
t integer, real, double precision, complex, logical, or character, all of the ob
jects in the equiv set must be of the same type with the same kind type paramete
r value. [CMESSAGE]
EQUIVALENCE (iMessage, cMessage)
-----------------------^
ADAMS.f90(29910): warning #6233: Fortran 95 does not allow character and nonchar
acter objects to be equivalenced. [COUTNAME]
EQUIVALENCE (iOutName, cOutName)
-----------------------^
ADAMS.f90(29910): warning #7165: If an equiv-object is of type other than defaul
t integer, real, double precision, complex, logical, or character, all of the ob
jects in the equiv set must be of the same type with the same kind type paramete
r value. [COUTNAME]
EQUIVALENCE (iOutName, cOutName)
-----------------------^
ADAMS.f90(35395): warning #5199: Too many continuation lines
4101701:4101799, 4102701:4102799, 4103701:4103799, &
------^
Intel(R) Visual Fortran Compiler XE for applications running on IA-32, Version 1
2.0.5.221 Build 20110719
Copyright (C) 1985-2011 Intel Corporation. All rights reserved.
ifort: command line remark #10010: option ‘/automatic’ is deprecated and will be
removed in a future release. See ‘/help deprecated’
ifort: command line remark #10010: option ‘/architecture:pn4’ is deprecated and
will be removed in a future release. See ‘/help deprecated’
ifort: command line remark #10010: option ‘/architecturepn4’ is deprecated and w
ill be removed in a future release. See ‘/help deprecated’

ADAMS.f(24): warning #7373: Fixed form source is an obsolescent feature in Fortr
an 95.
SUBROUTINE RFFTI (N,WSAVE)
^
ADAMS.f(47): warning #6031: The Arithmetic IF statement is an obsolescent featur
e in Fortran 95. Use the IF statement or the IF construct
IF (J-4) 102,102,103
^
ADAMS.f(53): warning #6031: The Arithmetic IF statement is an obsolescent featur
e in Fortran 95. Use the IF statement or the IF construct
IF (NR) 101,105,101
^
ADAMS.f(235): warning #6031: The Arithmetic IF statement is an obsolescent featu
re in Fortran 95. Use the IF statement or the IF construct
IF (IDO-2) 107,105,102
^
ADAMS.f(310): warning #6031: The Arithmetic IF statement is an obsolescent featu
re in Fortran 95. Use the IF statement or the IF construct
IF (IDO-2) 107,105,102
^
ADAMS.f(683): warning #6031: The Arithmetic IF statement is an obsolescent featu
re in Fortran 95. Use the IF statement or the IF construct
IF (N-2) 106,101,102
^
ADAMS.f(857): warning #6031: The Arithmetic IF statement is an obsolescent featu
re in Fortran 95. Use the IF statement or the IF construct
IF (IDO-2) 107,105,102
^
ADAMS.f(928): warning #6031: The Arithmetic IF statement is an obsolescent featu
re in Fortran 95. Use the IF statement or the IF construct
IF (IDO-2) 107,105,102
^
ADAMS.f(1304): warning #6031: The Arithmetic IF statement is an obsolescent feat
ure in Fortran 95. Use the IF statement or the IF construct
IF (N-2) 101,102,103
^
Linking ADAMS2AD and AeroDyn routines with ADAMS 2013:


| … … |
| ####*. ####. |
| ###*. #. MSC Software |
| ###. #. ------------ | | ##. ## |
| ##. ## | | ## ##’ A d a m s C++ S o l v e r |
| #### [Build: 2013.0.0-CL177174] |
| ###. Version: 2013 |
| ####. Patch Version: None | | .### # |
| #### # | | #### #. | | ##### # http://www.mscsoftware.com |
| .##### |
| #####’ |
| #### |
| |
| ********************************************************************* |
| * * |
| * MSC Software Corporation * |
| * * |
| * A d a m s * |
| * * |
| * Automatic Dynamic Analysis of Mechanical Systems * |
| * * |
| ********************************************************************* |
| * * |
| * LEGAL INFORMATION * |
| * * |
| * Warning: This computer program is protected by copyright law * |
| * and international treaties. Unauthorized reproduction or * |
| * distribution of this computer program, or any portion of it, * |
| * may result in severe civil and criminal penalties. * |
| * * |
| * Copyright (C) 2013 MSC Software Corporation and its licensors. * |
| * All rights reserved. * |
| * * |
| * This computer program may contain certain third-party software * |
| * that is protected by copyright and licensed from MSC Software * |
| * suppliers. Portions of this software are owned by UGS Corp. * |
| * (C) Copyright 1997. All Rights Reserved. Portions, (C) 1998 * |
| * Spacetec IMC Corporation (“Spacetec”). * |
| * * |
| * The MSC Software logo, MSC, MSC Adams, MD Adams, Adams and * |
| * Adams/ are trademarks or registered trademarks of MSC Software * |
| * Corporation or its subsidiaries in the United States and/or * |
| * other countries. FLEXlm is a registered trademark of * |
| * Macrovision Corporation. Parasolid is a registered trademark of * |
| * UGS Corp. All other trademarks are the property of their * |
| * respective owners. * |
| * * |
| ********************************************************************* |

*********************************************************************
* *
* Local Time: 2016-04-05 13:40:38 *
* Host Name: XYY-PC *
* Uname: MS Windows NT *
* OS Info: 6.1 *
* User: XYY *
* Customer ID: 2B887301-D14G178B *
* Current dir: C:\Users\XYY\Desktop\ADAMS2AD\A2AD_v13.01.00b-bjj_0\XU crea
t a DLL*
* *
*********************************************************************

command: FILE/COMMAND= ! read commands from standard input
command: command:
command:
command: stop

Finished -----
Elapsed time = 0.00s, CPU time = 0.00s, 0.00%
can’t find C:\Windows*.mod
can’t find C:\Windows*.obj

C:\Windows>[/code]

Please solve this problem for me.

Best regards.
Yingyu.Xu

I’m not sure what the /01 flag does (If you meant /O1, you should change the zero in /01 to the letter O so that is says /O1 and then remove /O3; /O1 and /O3 are conflicting optimization flags).

You show a lot of warnings, most of which are generated because you used the /stand:f95 option (I would remove that from COPTS; it doesn’t change the executable code that is generated). But, I don’t see any actual errors printed in your output. I’m assuming you must have encountered some compiling errors, because it doesn’t look like any .obj or .mod files were generated. If you stop the batch file before the linking phase, you should see two files generated from the compiling phase: Adams.obj and Adamsf.obj.

If you do get those two .obj files, you should be able to call Adams from a command prompt to see what Adams doesn’t like:

D:\software\ADAMS2013\common\mdi.bat ru-st -n cr-user n Adams.obj Adamsf.obj -n Adams13.dll exit

Dear Bonnie,

Thank you for your quick reply.

I was ridiculously wrong about /01 flag, so I deleted /01 and /O3 and added /O1 according to your advice. Also, I deleted /stand:f95, and it seemed to be correct because a lot of warnings no longer exist. The compiler options is set as below.

SET COPTS= /c /automatic /architecture:pn4 /Ob2 /MD /Gm /Ot /O1 /traceback /real_size:32 /assume:byterecl /Qdiag-disable:5268

As for .obj and .mod files, they were generated successfully. I ran CompileLinkA2AD.bat without administrator’s authority before, so an error of can’t find C:\Windows*.mod and can’t find C:\Windows*.obj was generated. When I ran CompileLinkA2AD.bat with administrator’s authority, no .obj or .mod file error disappeared.

Also, you informed me the correct address for ADAMS in code D:\software\ADAMS2013\common\mdi.bat ru-st -n cr-user n Adams.obj Adamsf.obj -n Adams13.dll exit, and I checked the address carefully and found it was wrong. So, I changed that code to CALL D:\software\ADAMS2013\common\mdi.bat cr-user n %ROOT_NAME%.obj %ROOT_NAME%f.obj -n %DLLName%.dll exit < NewLine.txt. It turned out that ADAMS13_forBladedDLL.dll was created successfully. I’m so happy.

Thank you very much for your quick and generous help again.

Best regards.
Yingyu.Xu

Glad it is working.

As a note, I would recommend that you not compile in the C:\Windows directory. If you need to have administrative privileges to delete something in a directory, you should build it elsewhere. Then, if you want to store the resulting file in C:\Windows, move it after it’s built.

Dear Bonnie,

Thank you for your note.

Actually, I don’t know why it was compiled in the C:\Windows directory, but I will keep your note in mind.

Yingyu.Xu

Dear Bonnie,

I’m trying to run ADAMS to get mass inertia tensor, but I don’t know how.

As I posted, I have generated ADAMS.dll successfully with your help, and I have also got .acf, .adm, .ipt and DISCON.dll. I red a post from Jason.Jonkman which said

. So, I think I have prepared all the files and code needed.

So, I paste my ADAMS13_forBladedDLL.dll, DISCON.dll, FAST_v7.01.00a-bjj_AeroDyn_v13.00.01a-bjj_BladedDLLInterface_OC3Hywind_ADAMS.acf, FAST_v7.01.00a-bjj_AeroDyn_v13.00.01a-bjj_BladedDLLInterface_OC3Hywind_ADAMS.adm and NRELOffshrBsline5MW_AeroDyn.ipt in the folder of ADAMS/ solver. Then, I run adams/solver-command and enter codes as below, but I got nothing. Also there is a window poped up with a message solve.exe has stopped working.

D:\software\ADAMS2013\common>mdi.bat ru-user ADAMS13_forBladedDLL.dll FAST_v7.01
.00a-bjj_AeroDyn_v13.00.01a-bjj_BladedDLLInterface_OC3Hywind_ADAMS.acf


-------------------------------------------------------------------------------
|        ..          ..                                                       |
|       ####*.      ####.                                                     |
|         `###*.       `#.                 MSC Software                       |
|            `###.       #.                ------------                       |
|               `##.     ##                                                   |
|                 `##.   ##                                                   |
|                   `## ##'                A d a m s   C++   S o l v e r      |
|                     ####                 [Build:         2013.0.0-CL177174] |
|                     ###.                 Version:        2013               |
|                    ###`#.                Patch Version:  None               |
|                  .###  `#                                                   |
|                 ####    `#                                                  |
|                ####      #.                                                 |
|              #####       `#              http://www.mscsoftware.com         |
|            .#####                                                           |
|           #####'                                                            |
|           ####                                                              |
|                                                                             |
|    *********************************************************************    |
|    *                                                                   *    |
|    *                      MSC Software Corporation                     *    |
|    *                                                                   *    |
|    *                             A d a m s                             *    |
|    *                                                                   *    |
|    *          Automatic Dynamic Analysis of Mechanical Systems         *    |
|    *                                                                   *    |
|    *********************************************************************    |
|    *                                                                   *    |
|    *                         LEGAL INFORMATION                         *    |
|    *                                                                   *    |
|    *  Warning:  This computer  program is protected  by copyright law  *    |
|    *  and  international  treaties.    Unauthorized  reproduction  or  *    |
|    *  distribution  of this  computer program, or any  portion of it,  *    |
|    *  may result in severe civil and criminal penalties.               *    |
|    *                                                                   *    |
|    *  Copyright (C) 2013 MSC Software Corporation and  its licensors.  *    |
|    *                        All rights reserved.                       *    |
|    *                                                                   *    |
|    *  This computer program may contain certain  third-party software  *    |
|    *  that is protected by  copyright and licensed from  MSC Software  *    |
|    *  suppliers.   Portions of this software are owned  by UGS  Corp.  *    |
|    *  (C) Copyright 1997.   All Rights Reserved.   Portions, (C) 1998  *    |
|    *  Spacetec IMC Corporation ("Spacetec").                           *    |
|    *                                                                   *    |
|    *  The  MSC Software logo,  MSC,  MSC Adams,  MD Adams,  Adams and  *    |
|    *  Adams/  are trademarks or registered trademarks of MSC Software  *    |
|    *  Corporation  or its  subsidiaries in  the United States  and/or  *    |
|    *  other   countries.   FLEXlm  is  a   registered   trademark  of  *    |
|    *  Macrovision Corporation. Parasolid is a registered trademark of  *    |
|    *  UGS  Corp.   All  other trademarks are  the property  of  their  *    |
|    *  respective owners.                                               *    |
|    *                                                                   *    |
|    *********************************************************************    |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|    *********************************************************************    |
|    *                                                                   *    |
|    *   Local Time: 2016-04-08 20:26:33                                 *    |
|    *    Host Name: XYY-PC                                              *    |
|    *        Uname: MS Windows NT                                       *    |
|    *      OS Info: 6.1                                                 *    |
|    *         User: XYY                                                 *    |
|    *  Customer ID: 2B887301-D14G178B                                   *    |
|    *  Current dir: D:\software\ADAMS2013\common                        *    |
|    *                                                                   *    |
|    *********************************************************************    |
|                                                                             |
-------------------------------------------------------------------------------

 command: FILE/MODEL=FAST_v7.01.00a-bjj_AeroDyn_v13.00.01a-bjj_BladedDLLInterfac
e_OC3Hywind_ADAMS, OUTPUT_PREFIX=FAST_v7.01.00a-bjj_AeroDyn_v13.00.01a-bjj_Blade
dDLLInterface_OC3Hywind_ADAMS

I don’t know if I need to modify something within each file needed before running ADAMS, and I don’t know the specific steps or codes in running ADAMS either. Actually I have no idea about running ADAMS.

Please solve this problem for me.

Yingyu.Xu

Dear Yingyu.Xu,

To run the FAST-generated ADAMS model, you must select the ru-user option in ADAMS/Solver. ADAMS/Solver will then prompt for you the name (including path) of the ADAMS.dll and the name of the .acf file. Type these in when prompted and the simulation should run. Please see your ADAMS documentation for more information or contact MSC for ADAMS-related support.

That said, if you goal is only to compute a mass inertia tensor, rather than running a time-domain simulation, you can do this simply by opening up the .adm file in ADAMS/View and use the “Aggregate Mass” tool.

Best regards,

Dear Jason,

Thank you for your reply.

I have computed mass inertia tensor according to your advice. But I got an error said ERROR: The inertia tensor is ill formed. Both the CM/IM orientation and IP will be incorrect. However, I actually got a mass inertia tensor at the same time as below.

The aggregate mass relative to .FAST_v7_01_00a_bjj_AeroDyn_v13_00_01a_bjj_BladedDLLInterface_OC3Hywind_ADAM.Nacelle_P.NacelleCS_M is: Mass : 3.500003106E+005 kg Center of Mass : Location : -0.4106407426, -2.0527792751E-008, 1.9667172112 (meter, meter, meter) Orientation : 89.9995186796, 5.3862030935, 270.0004790449 (deg) Mass Inertia Tensor : IXX : 4.5106432704E+007 kg-meter**2 IYY : 2.4983416831E+007 kg-meter**2 IZZ : 2.5520945154E+007 kg-meter**2 IXY : 0.183949898 kg-meter**2 IZX : 1.4573406029E+006 kg-meter**2 IYZ : 1.3368879533 kg-meter**2

Then I calculated the mass inertia tensor about tower-top coordinate system using parallel axis theorem. Calculating process and results is attached below.

  IXX             : 4.5106432704E+007 + 3.500003106E+005 * 1.9667172112^2 =4.646023652E7 kg-meter**2
  IYY             : 2.4983416831E+007 + 3.500003106E+005 * (0.4106407426^2 + 1.9667172112^2) =2.639622893E7 kg-meter**2
  IZZ             : 2.5520945154E+007 + 3.500003106E+005 * 0.4106407426^2 =2.557996424E7  kg-meter**2
  IXY             : 0.183949898 + 3.500003106E+005 * (-0.4106407426) * (-2.0527792751E-008) =0.186900242 kg-meter**2
  IZX             : 1.4573406029E+006 + 3.500003106E+005 * (-0.4106407426) * 1.9667172112 =1.174675376E6 kg-meter**2
  IYZ             : 1.3368879533 + 3.500003106E+005 * (-2.0527792751E-008) * 1.9667172112 =1.322757222 kg-meter**2

I also downloaded a BModesJJ test for NREL 5MW OC3 Hywind from [url]National Wind Technology Center's Information Portal | Wind Research | NREL. Mss inertia tensor it used is copied below.
--------- Blade-tip or tower-top mass properties --------------------------------------------
3.500003109E+005 tip_mass blade-tip or tower-top mass (kg)
-0.4137754432 cm_loc tip-mass c.m. offset from the tower axis measured along x-tower axis (m)
1.9669893542 cm_axial tip-mass c.m. offset tower tip measures axially along the z axis (m)
4.370E7 ixx_tip blade lag mass moment of inertia about the tip-section x reference axis (kg-m^2)
2.353E7 iyy_tip blade flap mass moment of inertia about the tip-section y reference axis (kg-m^2)
2.542E7 izz_tip torsion mass moment of inertia about the tip-section z reference axis (kg-m^2)
0. ixy_tip cross product of inertia about x and y reference axes(kg-m^2)
1.169E6 izx_tip cross product of inertia about z and x reference axes(kg-m^2)
0. iyz_tip cross product of inertia about y and z reference axes(kg-m^2)

So, you can see my mass inertia is a little larger than what the test uses. I don’t know what the error means and if wrong mass inertia tensor has created.

Besides, I want to run the FAST-generated ADAMS model also. So I open ADAMS/Solver prompt, and type some codes as below. But My ADAMS.exe just crashed with nothing generated. So I want to know if there is another way to run the FAST-generated ADAMS model? Maybe in ADAMS/Viewer?

[code]D:\software\ADAMS2013\common>mdi.bat ru-user

Enter name of your Adams/Solver User-DLL, or EXIT:
C:\Users\XYY\Desktop\BModesJJ\mass inertia tensor\run ADAMS to get mass inertia
tensor\ADAMS13_forBladedDLL.dll

Enter the name of the Adams command file or EXIT (=none):
C:\Users\XYY\Desktop\BModesJJ\mass inertia tensor\run ADAMS to get mass inertia
tensor\FAST_v7.01.00a-bjj_AeroDyn_v13.00.01a-bjj_BladedDLLInterface_OC3Hywind_AD
AMS.acf[/code]

Best regards,
Yingyu.Xu

Dear Yingyu,

I recall getting that same error about the inertia tensor being ill formed, but don’t remember what caused it. I suggest you ask MSC Technical Support if you are concerned. The aggregate mass result out of ADAMS looks reasonable to me.

But the signs in your transformation from the nacelle coordinate system to the center-of-mass are not correct. See e.g. my post dated Nov 23, 2009 in the following forum topic for an example where I show the proper transformation: Tower fore-aft modes shapes (this post uses the WindPACT 1.5-MW turbine instead of the NREL 5-MW turbine, but the transformations are the same). My guess is you’ll match my results much better if you use the proper signs.

You didn’t actually state the error you receive when running with the ru-user command in ADAMS, but regardless, ADAMS-related questions are better answered by MSC Technical Support.

Best regards,

Dear Jason,

Thank you for your reply. But, I still have problem with mass inertia tensor.

In my opinion, Ixx_towertop=Ixx_CM + Mdd, Ixy_towertop=Ixy_CM + Mxy, and that was how I calculated. I have red your post you attached, and I suppose your tranformation can be concluded as Ixx_towertop=Ixx_CM - Mdd, Ixy_towertop=Ixy_CM + Mxy. I can’t understand. From [url]https://en.wikipedia.org/wiki/Parallel_axis_theorem[/url], we can find a sentence in Mass moment of inertia section said Suppose a body of mass m is made to rotate about an axis z passing through the body’s center of gravity. The body has a moment of inertia Icm with respect to this axis. The parallel axis theorem states that if the body is made to rotate instead about a new axis z′ which is parallel to the first axis and displaced from it by a distance d, then the moment of inertia I with respect to the new axis is related to Icm by I = Icm + m*d^2.. Also, in Tensor generalization section, it said The parallel axis theorem can be generalized to calculations involving the inertia tensor. Let Iij denote the inertia tensor of a body as calculated at the center of mass. Then the inertia tensor Jij as calculated relative to a new point is Jij=Iij + m(|R|^2 δij-RiRj), where {R}=R1x+R2y+R3*z is the displacement vector from the center of mass to the new point, and δij is the Kronecker delta. So, we can derived inertia tensor Jij like below.

Jxx=Ixx + m*(y^2+z^2)
Jyy=Iyy + m*(x^2+z^2)
Jzz=Izz + m*(x^2+y^2)
Jxy=Ixy - mxy
Jyz=Iyz - myz
Jzx=Izx - mzx

So I think I’m wrong in parallel axis theory, but I also doubt your correctness.

I calculated mass inertia tensor again in correct equation I think.

IXX : 4.5106432704E+007 + 3.500003106E+005 * 1.9667172112^2 =4.646023652E7 kg-meter2
IYY : 2.4983416831E+007 + 3.500003106E+005 * (0.4106407426^2 + 1.9667172112^2) =2.639622893E7 kg-meter
2
IZZ : 2.5520945154E+007 + 3.500003106E+005 * 0.4106407426^2 =2.557996424E7 kg-meter2
IXY : 0.183949898 - 3.500003106E+005 * (-0.4106407426) * (-2.0527792751E-008) =0.180999554 kg-meter
2
IZX : 1.4573406029E+006 - 3.500003106E+005 * (-0.4106407426) * 1.9667172112 =1.740005829E6 kg-meter2
IYZ : 1.3368879533 - 3.500003106E+005 * (-2.0527792751E-008) * 1.9667172112 =1.351018685 kg-meter
2
Also, as I asked in my last post. I think my ADAMS/Solver can’t run properly, so is there any way to run ADAMS with .acf, .adm, .dll file in ADAMS/Viewer?

Best regards.
Yingyu.Xu

Dear Yingyu,

I agree with your equation Ixx_towertop = Ixx_CM + Mdd (and the like), but the aggregate mass tool from ADAMS is reporting Ixx_towertop and you are trying to convert to Ixx_CM, so, the equation should be rearranged as Ixx_CM = Ixx_towertop - Mdd (and the like).

I’m not sure how to run FAST-generated ADAMS within ADAMS/View. Again, I suggest you that you contact MSC technical support for ADAMS-related questions.

Best regards,

Dear Jason,

Thanks for your reply.

I had a misunderstanding of Ixx_tip in BModes. BModes user’s guide said For a tower, it is the side-to-side moment of inertia of the tip mass about the tip-section xT reference axis, so I thought that xT to be tower-top xT. I found your post at [url]NREL Forum - The National Renewable Energy Laboratory (NREL), where you reminded us The BModes inputs for tower-top inertia (ixx_tip, etc.) are specified about the center of mass (CM) of the tower top. Also, mass inertia tensor from ADAMS is relative to NacelleCS_M, and I checked it’s meaing in FAST2ADAMSStatements.xls, then I found it refers to FAST nacelle coordinate system which is located in tower top. So, I thought I was wrong.

Thank you again.

Best regards.
Yingyu.Xu

Dear Jason,

I want to run a modal analysis of tower of NREL 5MW onland in ADAMS with FAST-generated files(*.adm, *.acf) and ADAMS2013_forBladedDLL.dll created by A2AD, but I’m really new to ADAMS, so I run ADAMS/view in the steps which is copied from Rannam.Chaaban in [url]Compile Adams2AD with ADAMS 2010]. Then I tried to run a normal vibration analysis in assembly operation point, but I got such warnings and errors:

WARNING:    IP data specified for PART NRELOffshrBsline5MW_Onshore_ADAMS.Nacelle_P is not physically
   meaningful, since it does not satisfy the requirement
   that Ixx + Iyy must be greater than or equal to Izz.
   The moments of inertia about the Center of Mass are:
   Ixx = 9.9990E-04, Iyy = 9.9990E-04, Izz = 1.74149E+06
  
WARNING:    IP data specified for PART NRELOffshrBsline5MW_Onshore_ADAMS.Generator_P is not physically
   meaningful, since it does not satisfy the requirement
   that Iyy + Izz must be greater than or equal to Ixx.
   The moments of inertia about the Center of Mass are:
   Ixx = 5.02550E+06, Iyy = 9.9990E-04, Izz = 9.9990E-04
  
WARNING:    IP data specified for PART NRELOffshrBsline5MW_Onshore_ADAMS.Hub_P is not physically
   meaningful, since it does not satisfy the requirement
   that Iyy + Izz must be greater than or equal to Ixx.
   The moments of inertia about the Center of Mass are:
   Ixx = 1.15926E+05, Iyy = 9.9990E-04, Izz = 9.9990E-04
  
WARNING:    A user VARSUB subroutine is required for VARIABLE NRELOffshrBsline5MW_Onshore_ADAMS.CalcOuts_V.
WARNING:    A user SENSUB subroutine is required for SENSOR NRELOffshrBsline5MW_Onshore_ADAMS.AeroDyn_S.
WARNING:    A user REQSUB subroutine is required for REQUEST NRELOffshrBsline5MW_Onshore_ADAMS.UserRequest_R.
WARNING:    IP data specified for PART NRELOffshrBsline5MW_Onshore_ADAMS.Nacelle_P is not physically
   meaningful, since it does not satisfy the requirement
   that Ixx + Iyy must be greater than or equal to Izz.
   The moments of inertia about the Center of Mass are:
   Ixx = 9.9990E-04, Iyy = 9.9990E-04, Izz = 1.74149E+06
  
WARNING:    IP data specified for PART NRELOffshrBsline5MW_Onshore_ADAMS.Generator_P is not physically
   meaningful, since it does not satisfy the requirement
   that Iyy + Izz must be greater than or equal to Ixx.
   The moments of inertia about the Center of Mass are:
   Ixx = 5.02550E+06, Iyy = 9.9990E-04, Izz = 9.9990E-04
  
WARNING:    IP data specified for PART NRELOffshrBsline5MW_Onshore_ADAMS.Hub_P is not physically
   meaningful, since it does not satisfy the requirement
   that Iyy + Izz must be greater than or equal to Ixx.
   The moments of inertia about the Center of Mass are:
   Ixx = 1.15926E+05, Iyy = 9.9990E-04, Izz = 9.9990E-04
  
WARNING:    A user VARSUB subroutine is required for VARIABLE NRELOffshrBsline5MW_Onshore_ADAMS.CalcOuts_V.
WARNING:    A user SENSUB subroutine is required for SENSOR NRELOffshrBsline5MW_Onshore_ADAMS.AeroDyn_S.
WARNING:    A user REQSUB subroutine is required for REQUEST NRELOffshrBsline5MW_Onshore_ADAMS.UserRequest_R.
ERROR:      Subroutine VARSUB is not supplied for VARIABLE NRELOffshrBsline5MW_Onshore_ADAMS.YawPosDemand_V.
ERROR:   Abnormal termination encountered in Adams/Solver.

I have no idea about that. So, please help me.

Yingyu xu

Dear Yingyu,

You should not be concerned with the Ixx, Iyy, and Izz warnings. These are simply consequences of the way FAST constructs the ADAMS model. They appear in almost every simulation without consequence. For example, FAST only has an input for the yaw inertia of the nacelle, but does not have inputs for the pitch and roll inertias. So when FAST creates the rigid body ADAMS “PART” representing the nacelle, it sets the pitch and roll inertia of the nacelle to negligibly small numbers. ADAMS reacts by generating a warning. To get rid of the warning, you can manually change the nacelle PART to include the full correct inertia in all 3-directions (if you have such data). But I suspect the results wouldn’t change that much because, in general, the inertias that aren’t inputs in the FAST input file have little effect on a turbine’s dynamic response.

The warnings and eventual error with regard to ADAMS not being able to find the SFOSUB, GFOSUB, VARSUB, SENSUB, and REQSUB subroutines are more serious. SFOSUB, GFOSUB, VARSUB, SENSUB, and REQSUB are the subroutines that are supposed to be compiled into the DLL compiled with the A2AD routines. It appears that ADAMS cannot find them when you try to run the simulation, and thus the simulation aborts. Are you sure you compiled the DLL properly? If so, have you properly referenced the DLL via the ru-user command when you run ADAMS?

Best regards,

Dear Jason,

Thanks for your reply.

When I attempted to use ru-user command in ADAMS in administrator mode, I typed the locations of *.dll and *.acf file, but I got an error.

[code]Microsoft Windows [版本 6.1.7600]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Windows\system32>cd C:\Users\XYY\Desktop\NREL_5MW_Onshore\FAST_1

C:\Users\XYY\Desktop\NREL_5MW_Onshore\FAST_1>D:\software\ADAMS2013\common\mdi.ba
t

 +------------------------------------------------------+
 |        | Adams 2013                       |          |
 |        ------------------------------------          |
 |Action                                  Selection Code|
 |------                                  --------------|
 |                                                      |
 |Create Adams/Solver with                              |
 |   Adams User-DLL                          cr-user    |
 |                                                      |
 |Run Adams/Solver with                                 |
 |   Standard Adams executable               ru-standard|
 |   User executable                         ru-user    |
 |                                                      |
 |Pre- or Post-process with                             |
 |   Adams/View                              aview      |
 |   Adams/Car                               acar       |
 |   Adams/Driveline                         adriveline |
 |   Adams/PostProcessor                     appt       |
 |   Adams/Insight                           ainsight   |
 |   Adams/Flex Toolkit                      flextk     |
 |   Adams/Durability Toolkit                durtk      |
 |   MSC Registry Editor                     redit      |
 |   MSC Registry Shell Tool                 rtool      |
 |   Custom Memory Model (uconfg_user)       cmm        |
 +------------------------------------------------------+

 Enter your selection code or EXIT: ru-user

Enter name of your Adams/Solver User-DLL, or EXIT:
ADAMS13_forBladedDLL

Enter the name of the Adams command file or EXIT (=none):
NRELOffshrBsline5MW_Onshore_ADAMS


| … … |
| ####*. ####. |
| ###*. #. MSC Software |
| ###. #. ------------ | | ##. ## |
| ##. ## | | ## ##’ A d a m s C++ S o l v e r |
| #### [Build: 2013.0.0-CL177174] |
| ###. Version: 2013 |
| ####. Patch Version: None | | .### # |
| #### # | | #### #. | | ##### # http://www.mscsoftware.com |
| .##### |
| #####’ |
| #### |
| |
| ********************************************************************* |
| * * |
| * MSC Software Corporation * |
| * * |
| * A d a m s * |
| * * |
| * Automatic Dynamic Analysis of Mechanical Systems * |
| * * |
| ********************************************************************* |
| * * |
| * LEGAL INFORMATION * |
| * * |
| * Warning: This computer program is protected by copyright law * |
| * and international treaties. Unauthorized reproduction or * |
| * distribution of this computer program, or any portion of it, * |
| * may result in severe civil and criminal penalties. * |
| * * |
| * Copyright (C) 2013 MSC Software Corporation and its licensors. * |
| * All rights reserved. * |
| * * |
| * This computer program may contain certain third-party software * |
| * that is protected by copyright and licensed from MSC Software * |
| * suppliers. Portions of this software are owned by UGS Corp. * |
| * (C) Copyright 1997. All Rights Reserved. Portions, (C) 1998 * |
| * Spacetec IMC Corporation (“Spacetec”). * |
| * * |
| * The MSC Software logo, MSC, MSC Adams, MD Adams, Adams and * |
| * Adams/ are trademarks or registered trademarks of MSC Software * |
| * Corporation or its subsidiaries in the United States and/or * |
| * other countries. FLEXlm is a registered trademark of * |
| * Macrovision Corporation. Parasolid is a registered trademark of * |
| * UGS Corp. All other trademarks are the property of their * |
| * respective owners. * |
| * * |
| ********************************************************************* |

*********************************************************************
* *
* Local Time: 2016-04-16 14:30:52 *
* Host Name: XYY-PC *
* Uname: MS Windows NT *
* OS Info: 6.1 *
* User: XYY *
* Customer ID: 2B887301-D14G178B *
* Current dir: C:\Users\XYY\Desktop\NREL_5MW_Onshore\FAST_1 *
* *
*********************************************************************

command: FILE/MODEL=NRELOffshrBsline5MW_Onshore_ADAMS.adm, OUTPUT_PREFIX=NRELOf
fshrBsline5MW_Onshore_ADAMS.plt

WARNING: The RESULTS/NOTIRES argument is obsolete and Adams/Solver will ignore
it.
WARNING: Argument : NOTIRES
WARNING: Statement : RESULTS/etc.
WARNING: Line number : 7773

Running NWTC Subroutine Library (v1.07.02a-mlb, 21-May-2013).

Running A2AD (v13.01.00a-bjj, 15-Feb-2012).

| Model Title |
|=============================================================================|
| |
| !ADAMS/View model name: NREL 5.0 MW Baseline Wind Turbine for Use in Offshore
An|

command: INTEGRATOR/GSTIFF, ERROR = 0.001, HMAX = 1.250000E-02, INTERPOLATE =
ON
command: SIMULATE/DYNAMICS, END = 1.250000E-02, DTOUT = 1.250000E-02

Begin Simulation

****** Performing Dynamic Simulation using Gstiff I3 Integrator ******

---- START: WARNING ----
The data set is kinematically determinate. However, a dynamic analysis
has been requested. A kinematic analysis with the SIMULATE/KINEMATICS
command would be more efficient and possibly more accurate for some of
the computed quantities.
As requested, the simulation will continue with a dynamic analysis.

---- END: WARNING ----
The system is modelled with INDEX-3 DAEs.
The integrator is GSTIFF, CORRECTOR = original
Integration error = 1.000000E-03

Detected system force units of kilonewtons (kN).

---- START: ERROR ----
GFOSUB(11010, 1, 1) has been illegally defined. A new functional dependency on
the measure
TDISP(4000,1,1) has been encountered during execution.

---- END: ERROR ----

Error calling INFARY for hub position coordinates.

Aborting A2AD.

C:\Users\XYY\Desktop\NREL_5MW_Onshore\FAST_1>[/code]
Then I changed my way to ADAMS/view following Rannam.Chaaban’s steps in [url]Compile Adams2AD with ADAMS 2010].

Step1. ADAMS/view → existing model(file name: *.adm from FAST)
Step2. Setting → solver → executable(solver library: ADAMS_forBladedDLL.dll, choice: Fortran)
step3. simulation → creat simulation script(ACF File: *.acf from FAST)
step4. simulation → scripted simulation control → run

Then, I got a *.plt file from ADAMS without error. I compared it with *.out from FAST, but these .plt showed rotor can only rotate in 8.532rpm and generate 1.245MW GenPwr in the constant wind speed 11.4m/s.

I tried again in ADAMS/vibration. I defined no input channel or output channel, performed a normal mode analysis in static operating point, then I displayed eigen table. But only one mode showed with zero frequency. Also, I defined one input channel in TowerSec01CM_M, and 20 output channels with marker TowerSec01CM_M~TowerSec20CM_M, then I performed a forced vibration analysis in static operating point. But still only one mode showed with zero frequency.

So I have no idea if I have compiled the DLL,referenced the DLL and manipulated in ADAMS properly.

Besides, a *_Lin.acf was also created in FAST. If I had compiled DLL properly, what can I do with *_Lin.acf?

Yingyu.Xu

Dear Yingyu,

The *_LIN.acf file was useful for linearizing the ADAMS model (structural only) to identify natural frequencies, damping ratios, and mode shapes using ADAMS/Linear.

I don’t think I can really answer your other questions, as I haven’t ran ADAMS in years. A2AD functioned properly with older versions of ADAMS, but I’m not sure about the compatibilities with existing versions. Hopefully someone else on the forum or MSC Technical Support can help you.

Best regards,