ADAMS to AeroDyn interface change log _____________________________________ For changes prior to version 12, see the AeroDyn change log file. v12.00 21-May-2001 D. Laino Extensive rewrite of the code to convert to Fortran90. Included elimination of the INCLUDE files, and the introduction of new MODULES to replace them. Nearly all arrays have been converted to allocatable based on model parameters. Official split of AeroDyn from YawDyn resulted in major rewrite of GFOSUB. GFOSUB now has its own version number. The DynProg (dynamics program name) is set in GOFSUB. DynVer (dynamics version number) is set using a call to adn ADAMS intrinsic routine. A generalized release version of REQSUB.F90 is included and is functional with any ADAMS for AeroDyn model (though it has few outputs). All time series output files (element data and dynamics data) have 3 header lines: 1-Program ID line; 2-Column headings; 3-Column units. Element data file is named reqelem.plt, but can be changed in REQSUB. The actual element file is created and written by AeroDyn, so it is identical in format for all dynamic programs that access AeroDyn. File GOFSUB.F90 contains subroutines called by AeroDyn to get the status of the dynamics model. Changed Azimuth request function from PSI to AZ. PSI did not seem to work v12.01 23-Aug-2001 D. Laino Added smooth, step function to ramp up aero forces returned to ADAMS over first 2 seconds. v12.02 06-Sep-2001 D. Laino Added code block to GFOSUB to support ADAMS 11.0. Changed REQSUB to obtain yaw angle and rotor speed from GFOSUB as it is requested for AeroDyn. Created temporary array to store ADAMS aero markers for printing to gofsub.opt. v12.03 18-Sep-2001 D. Laino Added request for tilt angle at start of simulation for .opt file output. Specified IBlade = 1 in sample ReqSub to get azimuth of blade 1. v12.04 20-Sep-2001 D. Laino Changed INFFNC call for YawAng from PSI to AZ in GetRotorParams of GFOSub to avoid Euler angle problems. v12.05 21-Sep-2001 D. Laino Eliminated ADASRUN variable. The DynProg variable must now be set to 'ADAMS' in order to use the proper AeroDyn routines. v12.06 03-Oct-2001 D. Laino Eliminated references to the rElement and CoverR arrays deleted from AeroDyn 12.34. v12.07 19-Oct-2001 D. Laino Fixed sample ReqSub to provide azimuth for blade 1. v12.08 2-Feb-2002 D. Laino Fixed errors in calculating tip loss constant leading to erroneous results when using equilibrium wake model. Separated out tip loss constant calculations from subroutine CheckBlade and placed in new GetTLConst subroutine. Added tip-loss constants for blade 1 to gfosub.opt file. v12.09 22-Apr-2002 D. Laino Changed dimensions for Int2LStr for consistency with AeroDyn 12.41. If you update AeroDyn, be sure to update ADAMS2AD as well. Made ADAMS 11 the standard starting with this version. GFOSub must be edited for compatibility with ADAMS 10. Eliminated DYNINIT flag from GFOSUB. v12.10 13-Nov-2002 D. Laino Added hub loss constant calculation to gfosub. v12.11 28-Jan-2003 D. Laino Eliminated continuations in the middle of strings to avoid problems in Unix. v12.12a-jmj, 01-May-2003 J. Jonkman I changed all REALs to REAL(ReKi) and DOUBLE PRECISION statements to REAL(DbKi) so we can easliy vary the precision. I had to USE Precision() to import the parameters DbKi & ReKi. I removed all instances of the SNGL() and DBLE() functions so that the code does not crash when converting between single and double precision. I added file REQSUB_FAST.f90 to the archive. This file contains the REQSUB() SUBROUTINE (plus others) needed for calculating output loads for an ADAMS dataset extracted from FAST. I added file SENSUB_FAST.f90 to the archive. This file contains SUBROUTINE SFOSUB(), which is used to calculate values for the SFORCE objects contained in ADAMS datasets extracted from FAST. v12.12b-jmj, 02-Jun-2003 J. Jonkman In SUBROUTINE GFOSUB.f90/GFOSUB(), I ALLOCATEd the second index in variables ElRad, ElPit, DelR, and IDAero to 99 instead of 50 since 99 is the upper limit for ADAMS datasets extracted from FAST. I added source file VFOSUB_FAST.f90 to the archive. SUBROUTINE VFOSUB_FAST.f90/VFOSUB() is used to compute the tip brake drag forces. I added source file VARSUB_FAST.f90 to the archive. SUBROUTINE VARSUB_FAST.f90/VARSUB() is used to compute the demand blade pitch angles via a call to FAST's user-defined PitchCntrl() routine. Now, obviously, the FAST source file containing routine PitchCntrl() must be linked with ADAMS when creating the ADAMS.dll. In SUBROUTINE SFOSUB_FAST.f90/SFOSUB(), I modified I added a call to SUBROUTINE UserSubs.f90/UserTeet(), so that if TeetMod (in the primary FAST input file) is set to 2, then UserTeet() (the same routine the FAST model uses) is used to calculate the rotor-teeter spring/damper moment. Now, obviously, FAST source file UserSubs.f90 must be linked with ADAMS when creating the ADAMS.dll. In SUBROUTINE SFOSUB_FAST.f90/SFOSUB(), I added code for new SFORCE/3150, which is used to compute generator torques and electrical power. In SUBROUTINE SFOSUB_FAST.f90/SFOSUB(), I made the error MESAGE more descriptive. I added variables D2R, ElecPwr, GenIner, GenTrq, and Pi to MODULE REQSUB_FAST.f90/FASTVars(). I added a determination of ShftGagL, the distance from the hub to the LSS strain gage into SUBROUTINE REQSUB_FAST.f90/REQSUB(). I now use this value to compute the output parameters LSSGagMya, LSSGagMza, LSSGagMys, and LSSGagMzs in SUBROUTINE CalcOuts(). I added the compution of output parameter HSSBrTq to SUBROUTINE REQSUB_FAST.f90/CalcOuts(). I added SUBROUTINE OpenInFile() to source file REQSUB_FAST.f90 since this is needed by source file UserSubs.f90. In SUBROUTINE REQSUB_FAST.f90/WrOutHdr(), I now recieve the FTitle and OutFmt strings through a call to GTSTRG(). In SUBROUTINE REQSUB_FAST.f90/DOutParam(), I now recieve the output channel names and units through calls to GTSTRG(). This change significantly reduced the size of this routine and made it so that the exact output names specified in the primary FAST input file are written to the output file. In SUBROUTINE REQSUB_FAST.f90/REQSUB(), I now recieve the TabDelim flag through PARameter 7 (along with NumBl and CompAero). In SUBROUTINE REQSUB_FAST.f90/REQSUB(), I now recieve the TipRad through PARameter 9 and the GenIner through PAR(10). What use to be passed through PARameter 9, the values of BldGagNd, are now read in from SUBROUTINE DOutParam() using a call to SYSARY() and the values which are now stored in ARRAY/2. v12.12c-jmj, 18-Jul-2003 J. Jonkman I fixed a bug in the calculation of the tower base moment in REQSUB.f90/CalcOuts(). v12.12d-jmj, 21-Jul-2003 J. Jonkman I fixed a bug in routine SFOSUB_FAST.f90/SFOSUB(). What was a rotor speed should be generator speed. v12.12, 08-Sep-2003 J. Jonkman I rolled up all the alpha changes into this new version. I eliminated all alpha comments. I updated CompileLinkA2AD.bat by replacing the CAT (Unix) command with the COPY (DOS) command. This DOS command script should now work for users who don't own the MS Toolkit. v12.13, 23-Sep-2003 J. Jonkman In routine SFOSUB_FAST.f90/SFOSUB(), I added an extra parameter to the CALL of routine UserGen() due to a minor change to routine UserGen() in FAST v4.31. v12.14, 07-Nov-2003 J. Jonkman In MODULE REQSUB_FAST.f90/Output(), I added indices TipRDzc1, TipRDzc2, TipRDzc3, YawBrRDzt, YawBrRVzt, and YawBrRAzt and renumbered the PARAMETERs to mimic changes made to FAST v4.40e-jmj. This is to support the addition of blade and tower torsional deflection outputs. In SUBROUTINE REQSUB_FAST.f90/CalcOuts(), I added computations for indices TipRDzc1, TipRDzc2, TipRDzc3, YawBrRDzt, YawBrRVzt, and YawBrRAzt of AllOuts(). This is to support the addition of blade and tower torsional deflection outputs. v12.15, 11-Dec-2003 J. Jonkman In SUBROUTINE REQSUB_FAST.f90/REQSUB(), I changed the one instance of MARKER 2105 to equivalent MARKER 2100, since MARKER 2105 has now been eliminated in FAST v4.40f-jmj. In SUBROUTINE SFOSUB_FAST.f90/SFOSUB(), I modified the calls to UserGen() and UserVSCont() to mimic changes made to FAST v4.40f-jmj. v12.16a-jmj, 19-Dec-2003 J. Jonkman In MODULE REQSUB_FAST.f90/Output(), I renamed PARAMETERs TiltPMyn, TiltVMyn, TiltAMyn, and TiltBrMyn to RotFurlP, RotFurlV, RotFurlA, and RFrlBrM, respectively. I also added PARAMETERS TailFurlP, TailFurlV, TailFurlA, TFrlBrM, TFinAlpha, TFinCLift, TFinCDrag, TFinCMom, TFinDnPrs, TFinCPFx, TFinCPFy, and TFinCPMz. These changes mimic changes made to FAST v5.00a-jmj. This is to support the addition furling functionality. v12.16b-jmj, 26-Dec-2003 J. Jonkman In SUBROUTINE SFOSUB_FAST.f90/SFOSUB(), I modified the CALL to UserTeet() so that the current simulation time, ZTime, is now a passed variable. This change was made to mimic changes made to FAST v5.00b-jmj. v12.16c-jmj, 27-Feb-2004 J. Jonkman In SUBROUTINEs GFOSUB.f90/GFOSUB() and GetRotorParams() I made several changes. I now have the yaw angle include the effects of yaw, tower-torsion, and rotor-furling. I have the tilt angle include any live tilting effects including tower-bending and rotor-furling. Finally, I have HubVDue2Yaw include the effects of yaw rate, tower-torsion rate, and rotor-furl rate, but NOT translational motion due to tower deflection. I incorporated all these changes while still leaving GFOSUB.f90 generic enough to be used by an ADAMS wind turbine model generated by ANY preprocessor including ADAMS/WT, FAST-to-ADAMS, and others. In SUBROUTINE GFOSUB.f90/GetPitRad() I removed the REAL() FUNCTION from around the calculation of variable ElemRad since I saw no need for this extra TYPE conversion. In MODULE REQSUB_FAST.f90/Output(), I removed INTEGER(4) PARAMETERs TFinCMom and TFinCPMz and added PARAMETERS TipClrnc1, TipClrnc2, and TipClrnc3. In SUBROUTINEs REQSUB_FAST.f90/REQSUB() and CalcOuts() I renumbered the shaft coordinate system MARKER from 2000 to 2150. In SUBROUTINEs REQSUB_FAST.f90/CalcOuts(), SFOSUB_FAST.f90/SFOSUB(), and VARSUB_FAST.f90/VARSUB() I changed the HSS connection to the nacelle from MARKER 2020 to 2050. In SUBROUTINE SFOSUB.f90/SFOSUB(), I renumbered the SFORCE for user-defined rotor teeter models from 4011 to 4010. In SFOSUB_FAST.f90/SFOSUB(), I added logic for the links to the user-defined rotor- and tail-furl spring/damper models (via SFORCE/2130 and 5040). In MODULE REQSUB_FAST.f90/FASTVars() and SUBROUTINEs REQSUB_FAST.f90/CalcOuts() and VFOSUB_FAST.f90/VFOSUB(), I added logic for computing the tail fin aerodynamic loads. In SUBROUTINE REQSUB_FAST.f90/CalcOuts(), I added computations of the new output parameters for furling machines as well as the tip-to-tower clearances. NOTE: ALL these changes were made to mimic changes made to FAST v5.00d-jmj. v12.16d-jmj, 03-Mar-2004 J. Jonkman In MODULE REQSUB_FAST.f90/Output(), I added PARAMETERS CThrstAzm and CThrstRad. In SUBROUTINE REQSUB_FAST.f90/CalcOuts(), I added computations of the output parameters for the estimated location of the rotor center of thurst. This change was made to mimic changes made to FAST v5.00e-jmj. v12.16, 12-Mar-2004 J. Jonkman I rolled up all the alpha changes into this new version. I eliminated all alpha comments. v12.17a-jmj, 26-Apr-2004 J. Jonkman I added yaw control to SUBROUTINE VARSUB_FAST.f90/VARSUB() to mimic changes made to FAST v5.10a-jmj. I removed argument TFInput and added arguments ElecPwr, HSS_Spd, and GBRatio to the user-defined routine PitchCntrl() since the pitch control routine itself now determines whether to control power (region 2) or speed (region 3). I also added argument BlPitch so that current blade pitch angles, BlPitch, are passed to routine PitchCntrl() independently of the command (demand) pitch angles, TFOutput, that are returned by the routine--this helped to greatly simplify the logic in SUBROUTINE VARSUB_FAST.f90/VARSUB(). This required minor changes to SUBROUTINE VARSUB_FAST.f90/VARSUB() and mimics changes made to FAST v5.10a-jmj. I made some additional changes to SUBROUTINE VARSUB_FAST.f90/VARSUB() in order to mimic changes to routine FAST.f90/Control() in FAST v5.10a-jmj. I moved the declaration of array AllOuts() from SUBROUTINE REQSUB_FAST.f90/CalcOuts() to MODULE REQSUB_FAST.f90/Output() so that all of the outputs can be accessed by user-defined control routines and to mimic changes made to FAST v5.10a-jmj. I moved the CALL to SUBROUTINE CalcOuts() from WrOutput() to a VARIABLE statement/VARSUB() routine so that array AllOuts() is updated after every time step (instead of every DecFact number of timesteps). This change was necessary to ensure array AllOuts() can be used in user-defined control routines and mimics changes made to FAST v5.10a-jmj. This improvement required extensive changes to SUBROUTINE REQSUB_FAST.f90/REQSUB(). I modified ZTime to equal the simulation time at the end of the last successful step using the TIMGET() utility subroutine of ADAMS. This change was necessary to ensure ZTime does not move backwards in time like it does when it is defined using ATIME. This change mimics changes made to FAST v5.10a-jmj. I also initialized ZTime to 0.0 in its variable declaration in MODULE REQSUB_FAST.f90/FASTVars() in order to make the declaration consistent with the equivalent variable in FAST. I renamed interal array FirstTHere with the more descriptive name BegPitMan to mimic changes made to FAST v5.10a-jmj. I eliminated the ramp-up in aerodynamic forces over the first 2.0 seconds of simulation in order to mimic changes made to FAST v5.10a-jmj. Besides it was not numerically necessary in ADAMS when using the FAST-to-ADAMS preprocessor. I removed uneeded varaiable REQUESTID from source file REQSUB_FAST.f90. I updated all of the source lines longer than 132 characters so that they are 132 characters or less (the standard freeform FORTRAN limit). Comments past 132 characters don't matter. I did not document these changes in the code. I fixed a bug in the computation of array BlPitch() in SUBROUTINE VARSUB_FAST.f90/VARSUB(). This bug would have only manifested itself for cases involving independent blade pitch control. v12.17b-jmj, 18-May-2004 J. Jonkman In SUBROUTINE GFOSUB.f90/GetRotorParams(), I replaced a CALL to an INFARY('UVZ',...) with a CALL to an INFARY('RDISP',...) and a CALL to an RCNVRT() with the 'EULER' and 'COSINES' parameters (these different CALLs yield virtually the same result). I made this change since 'UVZ' is only available in ADAMS v12.0.0 and later and that some users [who will remain nameless :-)] still use earlier versions of ADAMS. The rest of the logic in SUBROUTINE GFOSUB.f90/GetRotorParams() is identical and this change does not effect the results of ADAMS for those who got it to compile before. v12.17c-jmj, 13-Jul-2004 J. Jonkman I added compile option /assume:byterecl to CompileLinkA2AD.bat so that ADAMS can be used with TurbSim wind input files. v12.17d-jmj, 16-Sep-2004 J. Jonkman I modified CompileLinkA2AD.bat to work with ADAMS 2003 (the command to compile using ADAMS 12.0 is now commented out). I also added a commented out line (REM) in CompileLinkA2AD.bat, which can be used to compile ADAMS so that it works with source file BladedDLLInterface.f90. See the FAST User's Guide for details. I added ProgName ['A2AD'] and ProgVer ['(v12.17d-jmj, 29-Jul-2004)'] CHARCTER variables to MODULE REQSUB_FAST.f90/FASTVars(). I added these program identifications to the header of the primary output file in SUBROUTINE REQSUB_FAST.f90/WrOutHdr() and echoed the information to the screen in SUBROUTINE REQSUB_FAST.f90/REQSUB(). I removed SUBROUTINE WrFileNR() from, and added SUBROUTINE FindLine() to, source file REQSUB_FAST.f90. I was able to do this since I also added source files SysCVF.f90 and ModCVF.f90 to the list of FAST source files compiled with ADAMS in CompileLinkA2AD.bat. I made this change since I wanted to use additional SysCVF.f90 routines in the routines linked with ADAMS and I didn't want to add copies of these routines in REQSUB_FAST.f90. In SUBROUTINE SFOSUB_FAST.f90/SFOSUB(), I replaced local LOGICAL(1), SAVEd variable FirstPas with FirstPasG. In SUBROUTINE SFOSUB_FAST.f90/SFOSUB(), I added logic for SFORCE/3151 to make available a user-defined HSS brake model--i.e., the SFOSUB() calls user-defined routine UserHSSBr() if necessary. These changes were made in order to mimic changes made to FAST v5.10e-jmj. I moved the declaration of CHARACTER(99) variable RootName from SUBROUTINE REQSUB_FAST.f90/WrOutHdr() to MODULE REQSUB_FAST.f90/FASTVars() and moved the definition of this variable from WrOutHdr() to new SUBROUTINE REQSUB_FAST.f90/SetDirRoot(). I also added CHARACTER(1024) variable DirRoot to MODULE FASTVars(). This string stores the name of the root file including the full path to the current working directory and is now defined in SUBROUTINE SetDirRoot(). These changes were made in order to mimic changes made to FAST v5.10e-jmj. I add the number of blades, NumBl, to the list of parameters passed to user-defined SUBROUTINEs UserGen(), UserVSCont(), and UserYawCont(). I also added the time step, DT, to the list of parameters passed to user-defined SUBROUTINEs PitchCntrl() and UserYawCont(). I also added the name of the root file including the full path to the current working directory, DirRoot, to the list of parameters passed to ALL of the user-defined SUBROUTINEs. These changes were made in order to mimic changes made to FAST v5.10e-jmj. v12.17e-jmj, 29-Sep-2004 J. Jonkman I removed variable LastTime from SUBROUTINEs REQSUB_FAST.f90/REQSUB(), SFOSUB_FAST.f90/SFOSUB(), VARSUB_FAST.f90/VARSUB(), and VFOSUB_FAST.f90/VFOSUB() since the calculation of ZTime does not need it. I modified CompileLinkA2AD.bat to add the /stand compile option in order to catch nonstandard errors. With this change, I found and fixed a nonstandard warning in SUBROUTINE REQSUB_FAST.f90/CalcOuts() by using the REAL() function within MOD() functions. I also modified CompileLinkA2AD.bat so that it deletes all of the *.mod files. v12.17, 30-Sep-2004 J. Jonkman I rolled up all the alpha changes into this new version. I eliminated all alpha comments. v12.18a-jmj, 06-Jan-2005 J. Jonkman I modified the simple variable-speed control model to include Region 2 1/2 using the new variables available in FAST v6.00a-jmj. This required changes to SUBROUTINE SFOSUB_FAST.f90/SFOSUB() and mimics changes made to FAST v6.00a-jmj. I added the FAST REAL(ReKi), PARAMETER TwoPi to MODULE REQSUB_FAST.f90/FASTVars(). I also mimicked some changes made to FAST v6.00a-jmj in MODULE REQSUB_FAST.f90/Output(). I added SUBROUTINE AddOrSub2Pi() to source file REQSUB_FAST.f90. This routine is used to convert a NewAngle to an angle within 2*Pi of an OldAngle by adding or subtracting 2*Pi accordingly. I made use of new SUBROUTINE AddOrSub2Pi() in order to keep track of nacelle yaw and blade pitch angles that exceed the -Pi to Pi limits of ATAN2(). This required changes to SUBROUTINEs VARSUB_FAST.f90/VARSUB() and REQSUB_FAST.f90/CalcOuts(). I changed the declaration comment describing internal variable GenTrq (and several of its variations) from "Mechanical generator torque" to "Electrical generator torque", which is a more accurate description. This change mimics changes made to FAST v6.00a-jmj and does not effect any of the results. I modified CompileLinkA2AD.bat so that it deletes all of the .mod and .obj files it creates during the compiling and linking stage. v12.18b-jmj, 18-Mar-2005 J. Jonkman I renamed output channels WindVxt, WindVyt, and WindVzt to WindVxi, WindVyi, and WindVzi, respectively since the wind speeds relative to the inertia frame (i) are more important than the wind speeds relative to the tower-base frame (t), which can now move relative to the inertia frame. Without platform motion, WindVxi, WindVyi, and WindVzi will give the same results as WindVxt, WindVyt, and WindVzt use to give. This mimics changes made to FAST v6.00b-jmj. I also changed the blade tip accelerations outputs so that they are now in the local blade coordinate system instead of the undeflected coordinate system (this required that their names change). I also changed the tower-top / yaw bearing angular (rotational) velocity and acceleration outputs so that they are now in the tower-top / base-plate coordinate system instead of the tower base coordinate system (this also required that their names be changed). These changes were made so that the associated outputs are in coordinate systems that are easier to measure in the real world. This mimics changes made to FAST v6.00b-jmj. I added logic in SUBROUTINE VFOSUB.f90/VFOSUB() so that the tip brake drag forces are not included when CompAero is disabled. This mimics changes made to FAST v6.00b-jmj. I made FUNCTION VFOSUB.f90/TBFract() an internal procedure to SUBROUTINE VFOSUB() by using the CONTAINS statement. This change does not effect any of the results and mimics changes made to FAST v6.00b-jmj. I mimicked some additional, minor changes made to FAST v6.00b-jmj in SUBROUTINEs REQSUB_FAST.f90/CalcOuts(), VARSUB_FAST.f90/VARSUB() and VFOSUB_FAST.f90/VFOSUB() and MODULE REQSUB_FAST.f90/Output(). I added FAST2ADAMSStatements.xls, which is the spreadsheet that provides a complete listing of all of the ADAMS statements (PARTs, MARKERs, FIELDs, JOINTs, etc.) contained in ADAMS datasets that have been extracted from FAST, to the archive. This has been available on the website and I'm not sure why it was never placed in the archive. v12.18c-jmj, 15-Apr-2005 J. Jonkman I modified CompileLinkA2AD.bat to work with ADAMS 2005 (the command to compile using ADAMS 2003 is now commented out). I added output channels TipRDxbK and TipRDybK, which are the angular (rotational) roll and pitch deflections of the tip of blade K, respectively (where K = 1,2,3--the blade number) (relative to the undeflected position). This required minor changes to MODULE REQSUB_FAST.f90/Output() and SURBOUTINE REQSUB_FAST.f90/CalcOuts() and mimics changes made to FAST v6.00c-jmj. I implemented logic for the new nacelle IMU and tower strain gage outputs and platform motion functionality into source files REQSUB_FAST.f90, VARSUB_FAST.f90, VFOSUB_FAST.f90, VARSUB_FAST.f90, and GFOSUB.f90 in association with the changes made to FAST v6.00c-jmj. The changes to source file GFOSUB.f90 required that I add two new blocks of code that are only needed for ADAMS models created by the FAST-to-ADAMS preprocessor. Users of A2AD who don't use the FAST-to-ADAMS preprocessor (for example, ADAMS/WT users), must, in fact, delete these two new blocks of code. The change to source file GFOSUB.f90 required that I modify the argument order of the @COPY command in CompileLinkA2AD.bat (GFOSUB.f90 had to be moved after REQSUB_FAST.f90). I modified the rotational deflection outputs at the blade tip (TipRDxbK, TipRDybK, and TipRDzcK where K = 1,2,3--the blade number) and tower-top (YawBrRDxt, YawBrRDyt, and YawBrRDzt) so that they take advantage of the large displacement capabilities of ADAMS. To do this, I changed the calculations from using the 'AX', 'AY', and 'AZ' SYSFNC() utility routines to using the 'ROLL', 'PITCH', and 'YAW' SYSFNC() utility routines. So now, in ADAMS output, Euler angles are used to describe the rotational deflections. Before this change, the rotational displacement outputs could not be trusted in the presence of multiple, large rotations; now, the outputs are as correct as the ADAMS simulation. No change was made to the associated outputs in FAST. Even so, the rotational outputs should be similar between FAST and ADAMS when the blade and/or or tower deflections are small. Euler angles are also used when outputting the platform roll, pitch, and yaw displacements in ADAMS. This change required a minor modification to SUBROUTINE REQSUB_FAST.f90/CalcOuts(). I added the ADAMS2AD.pdf User's Guide to the archive per the request by Scott Larwood. v12.18, 10-Jun-2005 J. Jonkman I rolled up all the alpha changes into this new version. I eliminated all alpha comments. v12.19a-jmj, 29-Jul-2005 J. Jonkman I removed the /libs:dll Project compile Option from CompileLinkA2AD.bat in accordance with the changes made to FAST v6.01a-jmj. Also, the workaround that was needed when compiling A2AD with an interface to a Bladed-style master controller DLL (i.e., the modification required to cru.exe), is no longer needed with this change since the DLL is now loaded at runtime. Hooray! I added INTEGER(4), PARAMETER :: Time = 0 to MODULE REQSUB_FAST.f90/Output() so that one can access the Time output channel from the AllOuts() array. I made use of the new Time PARAMETER in place of 0 in SUBROUTINE REQSUB_FAST.f90/CalcOuts() and in place of ZTime in SUBROUTINE REQSUB_FAST.f90/WrOutput(). This change does not effect any of the results and mimics changes made to FAST v6.01a-jmj. I modified the comment in front of all calls to TIMGET(). This change does not effect any of the results. v12.19, 12-Aug-2005 J. Jonkman I added a MIN( 1.0, * ) to the calculation of output parameter CThrstRad in SUBROUTINE REQSUB_FAST.f90/CalcOuts() in order to limit the value betweeen 0.0 and 1.0 (inclusive). This change does not effect any of the results other than the value of CThrstRad and mimics changes made to FAST v6.01. I rolled up all the alpha changes into this new version. I eliminated all alpha comments. =================== END ====================