Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
446 changes: 258 additions & 188 deletions modules/aerodyn/src/AeroDyn.f90

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion modules/aerodyn/src/AeroDyn_Driver_Registry.txt
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,8 @@ typedef ^ ^ TwrData twr
typedef ^ ^ IntKi numBlades - - - "" -
typedef ^ ^ logical basicHAWTFormat - - - "If true simply input HubRad/Pitch/Overhang/Cone, otherwise all turbine inputs" -
typedef ^ ^ logical hasTower - - - "" -
typedef ^ ^ IntKi projMod - - - "If true simply input HubRad/Pitch/Overhang/Cone, otherwise all turbine inputs" -
typedef ^ ^ IntKi projMod - - - "If true simply input HubRad/Pitch/Overhang/Cone, otherwise all turbine inputs" -
typedef ^ ^ IntKi BEM_Mod - - - "Switch for different BEM implementations" -
typedef ^ ^ logical HAWTprojection - - - "" -
typedef ^ ^ IntKi motionType - - - "" -
typedef ^ ^ ReKi motion :: - - "" "-"
Expand Down
20 changes: 14 additions & 6 deletions modules/aerodyn/src/AeroDyn_Driver_Subs.f90
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ subroutine Dvr_InitCase(iCase, dvr, ADI, FED, errStat, errMsg )
else
! Should never happen
endif
dvr%numSteps = ceiling(dvr%tMax/dvr%dt)
dvr%numSteps = ceiling(dvr%tMax/dvr%dt) ! TODO I believe we need a plus one here

! Validate the inputs
call ValidateInputs(dvr, errStat2, errMsg2) ; if(Failed()) return
Expand Down Expand Up @@ -429,11 +429,16 @@ subroutine Init_ADI_ForDriver(iCase, ADI, dvr, FED, dt, errStat, errMsg)
else
! UA does not like changes of dt between cases
if ( .not. EqualRealNos(ADI%p%AD%DT, dt) ) then
call WrScr('Info: dt is changing between cases, AeroDyn will be re-initialized')
call ADI_End( ADI%u(1:1), ADI%p, ADI%x, ADI%xd, ADI%z, ADI%OtherState, ADI%y, ADI%m, errStat2, errMsg2); call SetErrStat(errStat2, errMsg2, errStat, errMsg, 'Init_ADI_ForDriver'); if(Failed()) return
!call AD_Dvr_DestroyAeroDyn_Data (AD , errStat2, errMsg2); call SetErrStat(errStat2, errMsg2, errStat, errMsg, RoutineName)
call WrScr('[INFO] dt is changing between cases, AeroDyn will be re-initialized')
needInit=.true.
endif
if (ADI%p%AD%WakeMod == WakeMod_FVW) then
call WrScr('[INFO] OLAF is used, AeroDyn will be re-initialized')
needInit=.true.
endif
if (needInit) then
call ADI_End( ADI%u(1:1), ADI%p, ADI%x, ADI%xd, ADI%z, ADI%OtherState, ADI%y, ADI%m, errStat2, errMsg2); call SetErrStat(errStat2, errMsg2, errStat, errMsg, 'Init_ADI_ForDriver'); if(Failed()) return
endif
endif

if (needInit) then
Expand Down Expand Up @@ -484,7 +489,8 @@ subroutine Init_ADI_ForDriver(iCase, ADI, dvr, FED, dt, errStat, errMsg)
else
InitInp%AD%rotors(iWT)%AeroProjMod = wt%projMod
endif
!call WrScr('>>> Using projection method '//trim(num2lstr(InitInp%AD%rotors(iWT)%AeroProjMod)))
InitInp%AD%rotors(iWT)%AeroBEM_Mod = wt%BEM_Mod
!call WrScr(' Driver: projMod: '//trim(num2lstr(InitInp%AD%rotors(iWT)%AeroProjMod))//', BEM_Mod:'//trim(num2lstr(InitInp%AD%rotors(iWT)%AeroBEM_Mod)))
InitInp%AD%rotors(iWT)%HubPosition = y_ED%HubPtMotion%Position(:,1)
InitInp%AD%rotors(iWT)%HubOrientation = y_ED%HubPtMotion%RefOrientation(:,:,1)
InitInp%AD%rotors(iWT)%NacellePosition = y_ED%NacelleMotion%Position(:,1)
Expand All @@ -503,6 +509,7 @@ subroutine Init_ADI_ForDriver(iCase, ADI, dvr, FED, dt, errStat, errMsg)
endif
else
! --- Reinit
! TODO change rootname, but that's a parameter..
call ADI_ReInit(ADI%p, ADI%x, ADI%xd, ADI%z, ADI%OtherState, ADI%m, dt, errStat2, errMsg2); if(Failed()) return
endif

Expand Down Expand Up @@ -973,8 +980,9 @@ subroutine Dvr_ReadInputFile(fileName, dvr, errStat, errMsg )
call ParseVar(FileInfo_In, CurLine, 'ProjMod'//sWT , wt%projMod , errStat2, errMsg2, unEc);
if (errStat2==ErrID_Fatal) then
wt%projMod = -1
wt%BEM_Mod = -1
else
call WrScr('>>> ProjMod is present in AeroDyn driver input file. ProjMod: '//trim(num2lstr(wt%projMod)))
call ParseVar(FileInfo_In, CurLine, 'BEM_Mod'//sWT , wt%BEM_Mod , errStat2, errMsg2, unEc); if(Failed()) return
endif
call ParseVar(FileInfo_In, CurLine, 'BasicHAWTFormat'//sWT , wt%basicHAWTFormat , errStat2, errMsg2, unEc); if(Failed()) return

Expand Down
7 changes: 7 additions & 0 deletions modules/aerodyn/src/AeroDyn_Driver_Types.f90
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ MODULE AeroDyn_Driver_Types
LOGICAL :: basicHAWTFormat !< If true simply input HubRad/Pitch/Overhang/Cone, otherwise all turbine inputs [-]
LOGICAL :: hasTower !< [-]
INTEGER(IntKi) :: projMod !< If true simply input HubRad/Pitch/Overhang/Cone, otherwise all turbine inputs [-]
INTEGER(IntKi) :: BEM_Mod !< Switch for different BEM implementations [-]
LOGICAL :: HAWTprojection !< [-]
INTEGER(IntKi) :: motionType !< [-]
REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: motion !< [-]
Expand Down Expand Up @@ -2395,6 +2396,7 @@ SUBROUTINE AD_Dvr_CopyWTData( SrcWTDataData, DstWTDataData, CtrlCode, ErrStat, E
DstWTDataData%basicHAWTFormat = SrcWTDataData%basicHAWTFormat
DstWTDataData%hasTower = SrcWTDataData%hasTower
DstWTDataData%projMod = SrcWTDataData%projMod
DstWTDataData%BEM_Mod = SrcWTDataData%BEM_Mod
DstWTDataData%HAWTprojection = SrcWTDataData%HAWTprojection
DstWTDataData%motionType = SrcWTDataData%motionType
IF (ALLOCATED(SrcWTDataData%motion)) THEN
Expand Down Expand Up @@ -2690,6 +2692,7 @@ SUBROUTINE AD_Dvr_PackWTData( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMs
Int_BufSz = Int_BufSz + 1 ! basicHAWTFormat
Int_BufSz = Int_BufSz + 1 ! hasTower
Int_BufSz = Int_BufSz + 1 ! projMod
Int_BufSz = Int_BufSz + 1 ! BEM_Mod
Int_BufSz = Int_BufSz + 1 ! HAWTprojection
Int_BufSz = Int_BufSz + 1 ! motionType
Int_BufSz = Int_BufSz + 1 ! motion allocated yes/no
Expand Down Expand Up @@ -3005,6 +3008,8 @@ SUBROUTINE AD_Dvr_PackWTData( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMs
Int_Xferred = Int_Xferred + 1
IntKiBuf(Int_Xferred) = InData%projMod
Int_Xferred = Int_Xferred + 1
IntKiBuf(Int_Xferred) = InData%BEM_Mod
Int_Xferred = Int_Xferred + 1
IntKiBuf(Int_Xferred) = TRANSFER(InData%HAWTprojection, IntKiBuf(1))
Int_Xferred = Int_Xferred + 1
IntKiBuf(Int_Xferred) = InData%motionType
Expand Down Expand Up @@ -3473,6 +3478,8 @@ SUBROUTINE AD_Dvr_UnPackWTData( ReKiBuf, DbKiBuf, IntKiBuf, Outdata, ErrStat, Er
Int_Xferred = Int_Xferred + 1
OutData%projMod = IntKiBuf(Int_Xferred)
Int_Xferred = Int_Xferred + 1
OutData%BEM_Mod = IntKiBuf(Int_Xferred)
Int_Xferred = Int_Xferred + 1
OutData%HAWTprojection = TRANSFER(IntKiBuf(Int_Xferred), OutData%HAWTprojection)
Int_Xferred = Int_Xferred + 1
OutData%motionType = IntKiBuf(Int_Xferred)
Expand Down
5 changes: 0 additions & 5 deletions modules/aerodyn/src/AeroDyn_IO.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2098,11 +2098,6 @@ subroutine calcCantAngle(f, xi,stencilSize,n,cantAngle)
real(ReKi) :: cx(stencilSize), cf(stencilSize), xiIn(stencilSize)
real(ReKi) :: fIn(stencilSize), cPrime(n), fPrime(n), xiAbs(n)
real(ReKi), intent(inout) :: cantAngle(n)

!dimension :: f(n),xi(n), sortInd(n), cx(stencilSize),cf(stencilSize), xiIn(stencilSize)
!dimension :: cantAngle(n), fIn(stencilSize), cPrime(n), fPrime(n), indexIn(stencilSize), xiAbs(n)



do i = 1,size(xi)

Expand Down
12 changes: 10 additions & 2 deletions modules/aerodyn/src/AeroDyn_Inflow.f90
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ module AeroDyn_Inflow
use NWTC_Library
use AeroDyn_Inflow_Types
use AeroDyn_Types
use AeroDyn, only: AD_Init, AD_ReInit, AD_CalcOutput, AD_UpdateStates
use AeroDyn, only: AD_Init, AD_ReInit, AD_CalcOutput, AD_UpdateStates, AD_End
use AeroDyn, only: AD_NumWindPoints, AD_GetExternalWind, AD_SetExternalWindPositions
use AeroDyn_IO, only: AD_SetVTKSurface
use InflowWind, only: InflowWind_Init, InflowWind_CalcOutput
use InflowWind, only: InflowWind_Init, InflowWind_CalcOutput, InflowWind_End

implicit none

Expand Down Expand Up @@ -168,6 +168,10 @@ subroutine ADI_End( u, p, x, xd, z, OtherState, y, m, errStat, errMsg )
errStat = ErrID_None
errMsg = ""

! End modules
call AD_End(u(1)%AD, p%AD, x%AD, xd%AD, z%AD, OtherState%AD, y%AD, m%AD, ErrStat, ErrMsg)
call InflowWind_End(m%IW%u, m%IW%p, m%IW%x, m%IW%xd, m%IW%z, m%IW%OtherSt, m%IW%y, m%IW%m, ErrStat, ErrMsg)

! Destroy the input data:
!if (allocated(u)) then
do i=1,size(u)
Expand Down Expand Up @@ -472,12 +476,16 @@ subroutine ADI_CalcOutput_IW(t, u_IfW, IW, errStat, errMsg)
call InflowWind_CalcOutput(t, u_IfW, IW%p, IW%x, IW%xd, IW%z, IW%OtherSt, IW%y, IW%m, errStat2, errMsg2)
call SetErrStat(errStat2, errMsg2, errStat, errMsg, 'ADI_CalcOutput_IW')
else
!$OMP PARALLEL DEFAULT(SHARED)
!$OMP DO PRIVATE(j,z) schedule(runtime)
do j=1,size(u_IfW%PositionXYZ,2)
z = u_IfW%PositionXYZ(3,j)
IW%y%VelocityUVW(1,j) = IW%HWindSpeed*(z/IW%RefHt)**IW%PLExp
IW%y%VelocityUVW(2,j) = 0.0_ReKi !V
IW%y%VelocityUVW(3,j) = 0.0_ReKi !W
end do
!$OMP END DO
!$OMP END PARALLEL
endif
end subroutine ADI_CalcOutput_IW
!----------------------------------------------------------------------------------------------------------------------------------
Expand Down
5 changes: 4 additions & 1 deletion modules/aerodyn/src/AeroDyn_Registry.txt
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ typedef ^ RotInitInputType R8Ki BladeRootOrientation {:}{:}{:} - - "DCM referenc
typedef ^ RotInitInputType R8Ki NacellePosition {3} - - "X-Y-Z reference position of nacelle" m
typedef ^ RotInitInputType R8Ki NacelleOrientation {3}{3} - - "DCM reference orientation of nacelle" -
typedef ^ RotInitInputType IntKi AeroProjMod - 1 - "Flag to switch between different projection models" -
typedef ^ RotInitInputType IntKi AeroBEM_Mod - -1 - "Flag to switch between different BEM Model" -

typedef ^ InitInputType RotInitInputType rotors {:} - - "Init Input Types for rotors" -
typedef ^ InitInputType CHARACTER(1024) InputFile - - - "Name of the input file" -
Expand Down Expand Up @@ -302,7 +303,8 @@ typedef ^ RotMiscVarType MeshType TwrBuoyLoadPoint - - - "point mesh for lumped
typedef ^ RotMiscVarType MeshType TwrBuoyLoad - - - "line mesh for per unit length buoyant tower loads" -
typedef ^ RotMiscVarType MeshMapType T_P_2_T_L - - - "mapping data structure to map buoyant tower point loads (m%TwrBuoyLoadPoint) to buoyant tower line loads (m%TwrBuoyLoad)"
typedef ^ RotMiscVarType Logical FirstWarn_TowerStrike - - - "flag to avoid printing tower strike multiple times" -
typedef ^ RotMiscVarType ReKi AvgDiskVel {3} - - "disk-averaged U,V,W" m/s
typedef ^ RotMiscVarType ReKi AvgDiskVel {3} - - "disk-averaged U,V,W (undisturbed)" m/s
typedef ^ RotMiscVarType ReKi AvgDiskVelDist {3} - - "disk-averaged U,V,W (disturbed)" m/s
# TailFin
typedef ^ RotMiscVarType ReKi TFinAlpha - - - "Angle of attack for tailfin"
typedef ^ RotMiscVarType ReKi TFinRe - - - "Reynolds number for tailfin"
Expand Down Expand Up @@ -370,6 +372,7 @@ typedef ^ RotParameterType ReKi Pvap - - - "Vapour pressure" P
typedef ^ RotParameterType ReKi WtrDpth - - - "Water depth" m
typedef ^ RotParameterType ReKi MSL2SWL - - - "Offset between still-water level and mean sea level" m
typedef ^ RotParameterType IntKi AeroProjMod - 1 - "Flag to switch between different projection models" -
typedef ^ RotParameterType IntKi AeroBEM_Mod - -1 - "Flag to switch between different BEM Model" -
# parameters for output
typedef ^ RotParameterType IntKi NumOuts - - - "Number of parameters in the output list (number of outputs requested)" -
typedef ^ RotParameterType CHARACTER(1024) RootName - - - "RootName for writing output files" -
Expand Down
29 changes: 28 additions & 1 deletion modules/aerodyn/src/AeroDyn_Types.f90
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ MODULE AeroDyn_Types
REAL(R8Ki) , DIMENSION(1:3) :: NacellePosition !< X-Y-Z reference position of nacelle [m]
REAL(R8Ki) , DIMENSION(1:3,1:3) :: NacelleOrientation !< DCM reference orientation of nacelle [-]
INTEGER(IntKi) :: AeroProjMod = 1 !< Flag to switch between different projection models [-]
INTEGER(IntKi) :: AeroBEM_Mod = -1 !< Flag to switch between different BEM Model [-]
END TYPE RotInitInputType
! =======================
! ========= AD_InitInputType =======
Expand Down Expand Up @@ -342,7 +343,8 @@ MODULE AeroDyn_Types
TYPE(MeshType) :: TwrBuoyLoad !< line mesh for per unit length buoyant tower loads [-]
TYPE(MeshMapType) :: T_P_2_T_L !< mapping data structure to map buoyant tower point loads (m%TwrBuoyLoadPoint) to buoyant tower line loads (m%TwrBuoyLoad) [-]
LOGICAL :: FirstWarn_TowerStrike !< flag to avoid printing tower strike multiple times [-]
REAL(ReKi) , DIMENSION(1:3) :: AvgDiskVel !< disk-averaged U,V,W [m/s]
REAL(ReKi) , DIMENSION(1:3) :: AvgDiskVel !< disk-averaged U,V,W (undisturbed) [m/s]
REAL(ReKi) , DIMENSION(1:3) :: AvgDiskVelDist !< disk-averaged U,V,W (disturbed) [m/s]
REAL(ReKi) :: TFinAlpha !< Angle of attack for tailfin [-]
REAL(ReKi) :: TFinRe !< Reynolds number for tailfin [-]
REAL(ReKi) :: TFinVrel !< Orthogonal relative velocity nrom at the reference point [-]
Expand Down Expand Up @@ -409,6 +411,7 @@ MODULE AeroDyn_Types
REAL(ReKi) :: WtrDpth !< Water depth [m]
REAL(ReKi) :: MSL2SWL !< Offset between still-water level and mean sea level [m]
INTEGER(IntKi) :: AeroProjMod = 1 !< Flag to switch between different projection models [-]
INTEGER(IntKi) :: AeroBEM_Mod = -1 !< Flag to switch between different BEM Model [-]
INTEGER(IntKi) :: NumOuts !< Number of parameters in the output list (number of outputs requested) [-]
CHARACTER(1024) :: RootName !< RootName for writing output files [-]
TYPE(OutParmType) , DIMENSION(:), ALLOCATABLE :: OutParam !< Names and units (and other characteristics) of all requested output parameters [-]
Expand Down Expand Up @@ -1429,6 +1432,7 @@ SUBROUTINE AD_CopyRotInitInputType( SrcRotInitInputTypeData, DstRotInitInputType
DstRotInitInputTypeData%NacellePosition = SrcRotInitInputTypeData%NacellePosition
DstRotInitInputTypeData%NacelleOrientation = SrcRotInitInputTypeData%NacelleOrientation
DstRotInitInputTypeData%AeroProjMod = SrcRotInitInputTypeData%AeroProjMod
DstRotInitInputTypeData%AeroBEM_Mod = SrcRotInitInputTypeData%AeroBEM_Mod
END SUBROUTINE AD_CopyRotInitInputType

SUBROUTINE AD_DestroyRotInitInputType( RotInitInputTypeData, ErrStat, ErrMsg, DEALLOCATEpointers )
Expand Down Expand Up @@ -1511,6 +1515,7 @@ SUBROUTINE AD_PackRotInitInputType( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat,
Db_BufSz = Db_BufSz + SIZE(InData%NacellePosition) ! NacellePosition
Db_BufSz = Db_BufSz + SIZE(InData%NacelleOrientation) ! NacelleOrientation
Int_BufSz = Int_BufSz + 1 ! AeroProjMod
Int_BufSz = Int_BufSz + 1 ! AeroBEM_Mod
IF ( Re_BufSz .GT. 0 ) THEN
ALLOCATE( ReKiBuf( Re_BufSz ), STAT=ErrStat2 )
IF (ErrStat2 /= 0) THEN
Expand Down Expand Up @@ -1607,6 +1612,8 @@ SUBROUTINE AD_PackRotInitInputType( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat,
END DO
IntKiBuf(Int_Xferred) = InData%AeroProjMod
Int_Xferred = Int_Xferred + 1
IntKiBuf(Int_Xferred) = InData%AeroBEM_Mod
Int_Xferred = Int_Xferred + 1
END SUBROUTINE AD_PackRotInitInputType

SUBROUTINE AD_UnPackRotInitInputType( ReKiBuf, DbKiBuf, IntKiBuf, Outdata, ErrStat, ErrMsg )
Expand Down Expand Up @@ -1725,6 +1732,8 @@ SUBROUTINE AD_UnPackRotInitInputType( ReKiBuf, DbKiBuf, IntKiBuf, Outdata, ErrSt
END DO
OutData%AeroProjMod = IntKiBuf(Int_Xferred)
Int_Xferred = Int_Xferred + 1
OutData%AeroBEM_Mod = IntKiBuf(Int_Xferred)
Int_Xferred = Int_Xferred + 1
END SUBROUTINE AD_UnPackRotInitInputType

SUBROUTINE AD_CopyInitInput( SrcInitInputData, DstInitInputData, CtrlCode, ErrStat, ErrMsg )
Expand Down Expand Up @@ -9330,6 +9339,7 @@ SUBROUTINE AD_CopyRotMiscVarType( SrcRotMiscVarTypeData, DstRotMiscVarTypeData,
IF (ErrStat>=AbortErrLev) RETURN
DstRotMiscVarTypeData%FirstWarn_TowerStrike = SrcRotMiscVarTypeData%FirstWarn_TowerStrike
DstRotMiscVarTypeData%AvgDiskVel = SrcRotMiscVarTypeData%AvgDiskVel
DstRotMiscVarTypeData%AvgDiskVelDist = SrcRotMiscVarTypeData%AvgDiskVelDist
DstRotMiscVarTypeData%TFinAlpha = SrcRotMiscVarTypeData%TFinAlpha
DstRotMiscVarTypeData%TFinRe = SrcRotMiscVarTypeData%TFinRe
DstRotMiscVarTypeData%TFinVrel = SrcRotMiscVarTypeData%TFinVrel
Expand Down Expand Up @@ -9996,6 +10006,7 @@ SUBROUTINE AD_PackRotMiscVarType( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, E
END IF
Int_BufSz = Int_BufSz + 1 ! FirstWarn_TowerStrike
Re_BufSz = Re_BufSz + SIZE(InData%AvgDiskVel) ! AvgDiskVel
Re_BufSz = Re_BufSz + SIZE(InData%AvgDiskVelDist) ! AvgDiskVelDist
Re_BufSz = Re_BufSz + 1 ! TFinAlpha
Re_BufSz = Re_BufSz + 1 ! TFinRe
Re_BufSz = Re_BufSz + 1 ! TFinVrel
Expand Down Expand Up @@ -11096,6 +11107,10 @@ SUBROUTINE AD_PackRotMiscVarType( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, E
ReKiBuf(Re_Xferred) = InData%AvgDiskVel(i1)
Re_Xferred = Re_Xferred + 1
END DO
DO i1 = LBOUND(InData%AvgDiskVelDist,1), UBOUND(InData%AvgDiskVelDist,1)
ReKiBuf(Re_Xferred) = InData%AvgDiskVelDist(i1)
Re_Xferred = Re_Xferred + 1
END DO
ReKiBuf(Re_Xferred) = InData%TFinAlpha
Re_Xferred = Re_Xferred + 1
ReKiBuf(Re_Xferred) = InData%TFinRe
Expand Down Expand Up @@ -12519,6 +12534,12 @@ SUBROUTINE AD_UnPackRotMiscVarType( ReKiBuf, DbKiBuf, IntKiBuf, Outdata, ErrStat
OutData%AvgDiskVel(i1) = ReKiBuf(Re_Xferred)
Re_Xferred = Re_Xferred + 1
END DO
i1_l = LBOUND(OutData%AvgDiskVelDist,1)
i1_u = UBOUND(OutData%AvgDiskVelDist,1)
DO i1 = LBOUND(OutData%AvgDiskVelDist,1), UBOUND(OutData%AvgDiskVelDist,1)
OutData%AvgDiskVelDist(i1) = ReKiBuf(Re_Xferred)
Re_Xferred = Re_Xferred + 1
END DO
OutData%TFinAlpha = ReKiBuf(Re_Xferred)
Re_Xferred = Re_Xferred + 1
OutData%TFinRe = ReKiBuf(Re_Xferred)
Expand Down Expand Up @@ -13442,6 +13463,7 @@ SUBROUTINE AD_CopyRotParameterType( SrcRotParameterTypeData, DstRotParameterType
DstRotParameterTypeData%WtrDpth = SrcRotParameterTypeData%WtrDpth
DstRotParameterTypeData%MSL2SWL = SrcRotParameterTypeData%MSL2SWL
DstRotParameterTypeData%AeroProjMod = SrcRotParameterTypeData%AeroProjMod
DstRotParameterTypeData%AeroBEM_Mod = SrcRotParameterTypeData%AeroBEM_Mod
DstRotParameterTypeData%NumOuts = SrcRotParameterTypeData%NumOuts
DstRotParameterTypeData%RootName = SrcRotParameterTypeData%RootName
IF (ALLOCATED(SrcRotParameterTypeData%OutParam)) THEN
Expand Down Expand Up @@ -13786,6 +13808,7 @@ SUBROUTINE AD_PackRotParameterType( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat,
Re_BufSz = Re_BufSz + 1 ! WtrDpth
Re_BufSz = Re_BufSz + 1 ! MSL2SWL
Int_BufSz = Int_BufSz + 1 ! AeroProjMod
Int_BufSz = Int_BufSz + 1 ! AeroBEM_Mod
Int_BufSz = Int_BufSz + 1 ! NumOuts
Int_BufSz = Int_BufSz + 1*LEN(InData%RootName) ! RootName
Int_BufSz = Int_BufSz + 1 ! OutParam allocated yes/no
Expand Down Expand Up @@ -14309,6 +14332,8 @@ SUBROUTINE AD_PackRotParameterType( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat,
Re_Xferred = Re_Xferred + 1
IntKiBuf(Int_Xferred) = InData%AeroProjMod
Int_Xferred = Int_Xferred + 1
IntKiBuf(Int_Xferred) = InData%AeroBEM_Mod
Int_Xferred = Int_Xferred + 1
IntKiBuf(Int_Xferred) = InData%NumOuts
Int_Xferred = Int_Xferred + 1
DO I = 1, LEN(InData%RootName)
Expand Down Expand Up @@ -14988,6 +15013,8 @@ SUBROUTINE AD_UnPackRotParameterType( ReKiBuf, DbKiBuf, IntKiBuf, Outdata, ErrSt
Re_Xferred = Re_Xferred + 1
OutData%AeroProjMod = IntKiBuf(Int_Xferred)
Int_Xferred = Int_Xferred + 1
OutData%AeroBEM_Mod = IntKiBuf(Int_Xferred)
Int_Xferred = Int_Xferred + 1
OutData%NumOuts = IntKiBuf(Int_Xferred)
Int_Xferred = Int_Xferred + 1
DO I = 1, LEN(OutData%RootName)
Expand Down
Loading