From 19dc800d030b9134f532a365c2cf5818b66bb7b2 Mon Sep 17 00:00:00 2001 From: Hannah Ross Date: Tue, 31 Jan 2023 12:05:56 -0700 Subject: [PATCH 1/2] Remove references to ADAMS coupling --- .../ElastoDyn/FASTLogicFlow.doc | Bin 25088 -> 27648 bytes modules/elastodyn/src/ED_UserSubs.f90 | 9 - modules/elastodyn/src/ElastoDyn.f90 | 185 ++---------- modules/elastodyn/src/ElastoDyn_IO.f90 | 185 +----------- modules/elastodyn/src/ElastoDyn_Registry.txt | 35 --- modules/icedyn/src/IceDyn.f90 | 2 +- .../src/interfaces/ADAMS/IceADAMS_VFOSUB.f90 | 264 ------------------ .../src/interfaces/Console/SysIVF_reduced.f90 | 4 +- modules/nwtc-library/src/SysGnuLinux.f90 | 2 +- modules/nwtc-library/src/SysGnuWin.f90 | 2 +- modules/nwtc-library/src/SysIFL.f90 | 2 +- modules/nwtc-library/src/SysIVF.f90 | 2 +- modules/nwtc-library/src/SysIVF_Labview.f90 | 2 +- .../nwtc-library/src/SysMatlabLinuxGnu.f90 | 2 +- .../nwtc-library/src/SysMatlabLinuxIntel.f90 | 2 +- modules/nwtc-library/src/SysMatlabWindows.f90 | 2 +- modules/openfast-library/src/FAST_Mods.f90 | 2 - modules/servodyn/src/PitchCntrl_ACH.f90 | 12 +- modules/servodyn/src/UserSubs.f90 | 16 +- reg_tests/r-test | 2 +- 20 files changed, 53 insertions(+), 679 deletions(-) delete mode 100644 modules/icefloe/src/interfaces/ADAMS/IceADAMS_VFOSUB.f90 diff --git a/docs/OtherSupporting/ElastoDyn/FASTLogicFlow.doc b/docs/OtherSupporting/ElastoDyn/FASTLogicFlow.doc index 8a7131579bf728a68bec0aa72d0e1fd9d673d838..360e13d3cb46edae106a632abc269a148f3462b6 100644 GIT binary patch literal 27648 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 NkBw(_>VHlH{{tW1J<$LF literal 25088 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 AbortErrLev ) RETURN @@ -304,7 +303,7 @@ SUBROUTINE ED_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, InitOut ! Print the summary file if requested: IF (InputFileData%SumPrint) THEN - CALL ED_PrintSum( p, OtherState, GetAdamsVals, ErrStat2, ErrMsg2 ) + CALL ED_PrintSum( p, OtherState, ErrStat2, ErrMsg2 ) CALL CheckError( ErrStat2, ErrMsg2 ) IF (ErrStat >= AbortErrLev) RETURN END IF @@ -2505,17 +2504,10 @@ SUBROUTINE SetBladeParameters( p, BladeInData, BladeMeshData, ErrStat, ErrMsg ) INTEGER(IntKi ) :: K ! Blade number INTEGER(IntKi ) :: J ! Index for the node arrays INTEGER(IntKi) :: InterpInd ! Index for the interpolation routine - LOGICAL :: SetAdmVals ! Logical to determine if Adams inputs should be set ! initialize variables ErrStat = ErrID_None ErrMsg = '' - - IF (p%BD4Blades) THEN - SetAdmVals = .FALSE. - ELSE - SetAdmVals = ALLOCATED( BladeInData(1)%GJStff ) - END IF ! .............................................................................................................................. @@ -2536,7 +2528,7 @@ SUBROUTINE SetBladeParameters( p, BladeInData, BladeMeshData, ErrStat, ErrMsg ) ! .......... Allocate arrays for the blade parameters being set in this routine ..........: - CALL Alloc_BladeParameters( p, SetAdmVals, ErrStat, ErrMsg ) + CALL Alloc_BladeParameters( p, ErrStat, ErrMsg ) IF ( ErrStat /= ErrID_None ) RETURN @@ -2597,17 +2589,6 @@ SUBROUTINE SetBladeParameters( p, BladeInData, BladeMeshData, ErrStat, ErrMsg ) ! BMassDen MassB Lineal mass density ! FlpStff StiffBF Flapwise stiffness ! EdgStff StiffBE Edgewise stiffness - ! GJStff StiffBGJ Blade torsional stiffness - ! EAStff StiffBEA Blade extensional stiffness - ! Alpha BAlpha Blade flap/twist coupling coefficient - ! FlpIner InerBFlp Blade flap (about local structural yb-axis) mass inertia per unit length - ! EdgIner InerBEdg Blade edge (about local structural xb-axis) mass inertia per unit length - ! PrecrvRef RefAxisxb Blade offset for defining the reference axis from the pitch axis for precurved blades (along xb-axis) - ! PreswpRef RefAxisyb Blade offset for defining the reference axis from the pitch axis for preswept blades (along yb-axis) - ! FlpcgOf cgOffBFlp Blade flap mass cg offset - ! EdgcgOf cgOffBEdg Blade edge mass cg offset - ! FlpEAOf EAOffBFlp Blade flap elastic axis offset - ! EdgEAOf EAOffBEdg Blade edge elastic axis offset ! Define RNodesNorm() which is common to all the blades: @@ -2649,30 +2630,8 @@ SUBROUTINE SetBladeParameters( p, BladeInData, BladeMeshData, ErrStat, ErrMsg ) p%StiffBF (K,J) = InterpAry( x, BladeInData(K)%FlpStff , InterpInd ) p%StiffBE (K,J) = InterpAry( x, BladeInData(K)%EdgStff , InterpInd ) - IF ( SetAdmVals ) THEN - p%StiffBGJ (K,J) = InterpAry( x, BladeInData(K)%GJStff , InterpInd ) - p%StiffBEA (K,J) = InterpAry( x, BladeInData(K)%EAStff , InterpInd ) - p%BAlpha (K,J) = InterpAry( x, BladeInData(K)%Alpha , InterpInd ) - p%InerBFlp (K,J) = InterpAry( x, BladeInData(K)%FlpIner , InterpInd ) - p%InerBEdg (K,J) = InterpAry( x, BladeInData(K)%EdgIner , InterpInd ) - p%RefAxisxb(K,J) = InterpAry( x, BladeInData(K)%PrecrvRef, InterpInd ) - p%RefAxisyb(K,J) = InterpAry( x, BladeInData(K)%PreswpRef, InterpInd ) - p%cgOffBFlp(K,J) = InterpAry( x, BladeInData(K)%FlpcgOf , InterpInd ) - p%cgOffBEdg(K,J) = InterpAry( x, BladeInData(K)%EdgcgOf , InterpInd ) - p%EAOffBFlp(K,J) = InterpAry( x, BladeInData(K)%FlpEAOf , InterpInd ) - p%EAOffBEdg(K,J) = InterpAry( x, BladeInData(K)%EdgEAOf , InterpInd ) - END IF - - - END DO ! J (Blade nodes) - IF ( SetAdmVals ) THEN - ! Set the valus for the tip node - p%RefAxisxb(K,p%TipNode) = BladeInData(K)%PrecrvRef( BladeInData(K)%NBlInpSt ) - p%RefAxisyb(K,p%TipNode) = BladeInData(K)%PreswpRef( BladeInData(K)%NBlInpSt ) - END IF - ! Set the blade damping and stiffness tuner p%BldFDamp(K,:) = BladeInData(K)%BldFlDmp @@ -2738,11 +2697,10 @@ END FUNCTION InterpAry END SUBROUTINE SetBladeParameters !---------------------------------------------------------------------------------------------------------------------------------- !> This routine allocates arrays for the blade parameters. -SUBROUTINE Alloc_BladeParameters( p, AllocAdams, ErrStat, ErrMsg ) +SUBROUTINE Alloc_BladeParameters( p, ErrStat, ErrMsg ) !.................................................................................................................................. TYPE(ED_ParameterType), INTENT(INOUT) :: p !< The parameters of the structural dynamics module - LOGICAL, INTENT(IN) :: AllocAdams !< Logical to determine if Adams inputs should be allocated INTEGER(IntKi), INTENT(OUT) :: ErrStat !< Error status CHARACTER(*), INTENT(OUT) :: ErrMsg !< Err msg @@ -2774,31 +2732,6 @@ SUBROUTINE Alloc_BladeParameters( p, AllocAdams, ErrStat, ErrMsg ) CALL AllocAry ( p%StiffBE, p%NumBl, p%BldNodes, 'StiffBE' , ErrStat, ErrMsg ); IF ( ErrStat /= ErrID_None ) RETURN - IF ( AllocAdams ) THEN - CALL AllocAry ( p%StiffBGJ, p%NumBl, p%BldNodes, 'StiffBGJ' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( p%StiffBEA, p%NumBl, p%BldNodes, 'StiffBEA' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( p%BAlpha, p%NumBl, p%BldNodes, 'BAlpha' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( p%InerBFlp, p%NumBl, p%BldNodes, 'InerBFlp' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( p%InerBEdg, p%NumBl, p%BldNodes, 'InerBEdg' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( p%RefAxisxb, p%NumBl, p%TipNode, 'RefAxisxb' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( p%RefAxisyb, p%NumBl, p%TipNode, 'RefAxisyb' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( p%cgOffBFlp, p%NumBl, p%BldNodes, 'cgOffBFlp' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( p%cgOffBEdg, p%NumBl, p%BldNodes, 'cgOffBEdg' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( p%EAOffBFlp, p%NumBl, p%BldNodes, 'EAOffBFlp' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( p%EAOffBEdg, p%NumBl, p%BldNodes, 'EAOffBEdg' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - END IF - CALL AllocAry ( p%BldEDamp, p%NumBl, NumBE, 'BldEDamp' , ErrStat, ErrMsg ) IF ( ErrStat /= ErrID_None ) RETURN CALL AllocAry ( p%BldFDamp, p%NumBl, NumBF, 'BldFDamp' , ErrStat, ErrMsg ) @@ -2820,11 +2753,10 @@ SUBROUTINE Alloc_BladeParameters( p, AllocAdams, ErrStat, ErrMsg ) END SUBROUTINE Alloc_BladeParameters !---------------------------------------------------------------------------------------------------------------------------------- !> This routine allocates arrays for the tower parameters. -SUBROUTINE Alloc_TowerParameters( p, AllocAdams, ErrStat, ErrMsg ) +SUBROUTINE Alloc_TowerParameters( p, ErrStat, ErrMsg ) !.................................................................................................................................. TYPE(ED_ParameterType), INTENT(INOUT) :: p !< The parameters of the structural dynamics module - LOGICAL, INTENT(IN) :: AllocAdams !< Logical to determine if Adams inputs should be allocated INTEGER(IntKi), INTENT(OUT) :: ErrStat !< Error status CHARACTER(*), INTENT(OUT) :: ErrMsg !< Err msg @@ -2845,20 +2777,6 @@ SUBROUTINE Alloc_TowerParameters( p, AllocAdams, ErrStat, ErrMsg ) CALL AllocAry ( p%StiffTSS, p%TwrNodes, 'StiffTSS' , ErrStat, ErrMsg ) IF ( ErrStat /= ErrID_None ) RETURN - IF ( AllocAdams ) THEN - CALL AllocAry ( p%StiffTGJ, p%TwrNodes, 'StiffTGJ' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( p%StiffTEA, p%TwrNodes, 'StiffTEA' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( p%InerTFA, p%TwrNodes, 'InerTFA' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( p%InerTSS, p%TwrNodes, 'InerTSS' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( p%cgOffTFA, p%TwrNodes, 'cgOffTFA' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( p%cgOffTSS, p%TwrNodes, 'cgOffTSS' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - END IF ! ! these are for HydroDyn? !CALL AllocAry ( p%DiamT, p%TwrNodes, 'DiamT' , ErrStat, ErrMsg ) @@ -3238,15 +3156,13 @@ SUBROUTINE SetTowerParameters( p, InputFileData, ErrStat, ErrMsg ) REAL(ReKi) :: x ! Fractional location between two points in linear interpolation INTEGER(IntKi ) :: J ! Index for the node arrays INTEGER(IntKi) :: InterpInd ! Index for the interpolation routine - LOGICAL :: SetAdmVals ! Logical to determine if Adams inputs should be set ! Initialize data ErrStat = ErrID_None ErrMsg = '' - SetAdmVals = ALLOCATED( InputFileData%TwGJStif ) - CALL Alloc_TowerParameters( p, SetAdmVals, ErrStat, ErrMsg ) + CALL Alloc_TowerParameters( p, ErrStat, ErrMsg ) IF ( ErrStat /= ErrID_None ) RETURN @@ -3279,12 +3195,6 @@ SUBROUTINE SetTowerParameters( p, InputFileData, ErrStat, ErrMsg ) ! TMassDen MassT Lineal mass density ! TwFAStif StiffTFA Tower fore-aft stiffness ! TwSSStif StiffTSS Tower side-to-side stiffness - ! TwGJStif StiffTGJ Tower torsional stiffness - ! TwEAStif StiffTEA Tower extensional stiffness - ! TwFAIner InerTFA Tower fore-aft (about yt-axis) mass inertia per unit length - ! TwSSIner InerTSS Tower side-to-side (about xt-axis) mass inertia per unit length - ! TwFAcgOf cgOffTFA Tower fore-aft mass cg offset - ! TwSScgOf cgOffTSS Tower side-to-side mass cg offset InterpInd = 1 @@ -3298,18 +3208,6 @@ SUBROUTINE SetTowerParameters( p, InputFileData, ErrStat, ErrMsg ) END DO ! J - IF ( SetAdmVals ) THEN ! An ADAMS model will be created; thus, read in all the cols. - DO J=1,p%TwrNodes - p%StiffTGJ (J) = InterpStp( p%HNodesNorm(J), InputFileData%HtFract, InputFileData%TwGJStif, InterpInd, InputFileData%NTwInpSt ) - p%StiffTEA (J) = InterpStp( p%HNodesNorm(J), InputFileData%HtFract, InputFileData%TwEAStif, InterpInd, InputFileData%NTwInpSt ) - p%InerTFA (J) = InterpStp( p%HNodesNorm(J), InputFileData%HtFract, InputFileData%TwFAIner, InterpInd, InputFileData%NTwInpSt ) - p%InerTSS (J) = InterpStp( p%HNodesNorm(J), InputFileData%HtFract, InputFileData%TwSSIner, InterpInd, InputFileData%NTwInpSt ) - p%cgOffTFA (J) = InterpStp( p%HNodesNorm(J), InputFileData%HtFract, InputFileData%TwFAcgOf, InterpInd, InputFileData%NTwInpSt ) - p%cgOffTSS (J) = InterpStp( p%HNodesNorm(J), InputFileData%HtFract, InputFileData%TwSScgOf, InterpInd, InputFileData%NTwInpSt ) - END DO ! J - END IF - - !............................................................................................................................... ! Set other tower parameters: !............................................................................................................................... @@ -9827,12 +9725,11 @@ END SUBROUTINE CheckError END SUBROUTINE ED_ABM4 !---------------------------------------------------------------------------------------------------------------------------------- !> This routine generates the summary file, which contains a regurgitation of the input data and interpolated flexible body data. -SUBROUTINE ED_PrintSum( p, OtherState, GenerateAdamsModel, ErrStat, ErrMsg ) +SUBROUTINE ED_PrintSum( p, OtherState, ErrStat, ErrMsg ) ! passed variables TYPE(ED_ParameterType), INTENT(IN ) :: p !< Parameters of the structural dynamics module TYPE(ED_OtherStateType), INTENT(IN ) :: OtherState !< Other states of the structural dynamics module - LOGICAL, INTENT(IN ) :: GenerateAdamsModel !< Logical to determine if Adams inputs were read/should be summarized INTEGER(IntKi), INTENT( OUT) :: ErrStat !< Error status of the operation CHARACTER(*), INTENT( OUT) :: ErrMsg !< Error message if ErrStat /= ErrID_None @@ -9972,30 +9869,14 @@ SUBROUTINE ED_PrintSum( p, OtherState, GenerateAdamsModel, ErrStat, ErrMsg ) ! Interpolated tower properties. WRITE (UnSu,"(//,'Interpolated tower properties:',/)") - IF ( GenerateAdamsModel ) THEN ! An ADAMS model will be created; thus, print out all the cols. - WRITE (UnSu,'(A)') 'Node TwFract HNodes DHNodes TMassDen FAStiff SSStiff'// & - ' GJStiff EAStiff FAIner SSIner FAcgOff SScgOff' - WRITE (UnSu,'(A)') ' (-) (-) (m) (m) (kg/m) (Nm^2) (Nm^2)'// & - ' (Nm^2) (N) (kg m) (kg m) (m) (m)' + WRITE (UnSu,'(A)') 'Node TwFract HNodes DHNodes TMassDen FAStiff SSStiff' + WRITE (UnSu,'(A)') ' (-) (-) (m) (m) (kg/m) (Nm^2) (Nm^2)' - DO I=1,p%TwrNodes - WRITE(UnSu,'(I4,3F9.3,F10.3,4ES11.3,2F10.3,2F9.3)') I, p%HNodesNorm(I), p%HNodes(I), p%DHNodes(I), p%MassT(I), & - p%StiffTFA(I), p%StiffTSS(I), p%StiffTGJ(I), p%StiffTEA(I), & - p%InerTFA(I), p%InerTSS(I), p%cgOffTFA(I), p%cgOffTSS(I) - ENDDO ! I - - ELSE ! Only FAST will be run; thus, only print out the necessary cols. - - WRITE (UnSu,'(A)') 'Node TwFract HNodes DHNodes TMassDen FAStiff SSStiff' - WRITE (UnSu,'(A)') ' (-) (-) (m) (m) (kg/m) (Nm^2) (Nm^2)' - - DO I=1,p%TwrNodes - WRITE(UnSu,'(I4,3F9.3,F10.3,2ES11.3)') I, p%HNodesNorm(I), p%HNodes(I), p%DHNodes(I), p%MassT(I), & - p%StiffTFA(I), p%StiffTSS(I) - ENDDO ! I - - ENDIF + DO I=1,p%TwrNodes + WRITE(UnSu,'(I4,3F9.3,F10.3,2ES11.3)') I, p%HNodesNorm(I), p%HNodes(I), p%DHNodes(I), p%MassT(I), & + p%StiffTFA(I), p%StiffTSS(I) + ENDDO ! I ! Interpolated blade properties. @@ -10004,39 +9885,15 @@ SUBROUTINE ED_PrintSum( p, OtherState, GenerateAdamsModel, ErrStat, ErrMsg ) DO K=1,p%NumBl WRITE (UnSu,'(//,A,I1,A,/)') 'Interpolated blade ', K, ' properties:' - IF ( GenerateAdamsModel ) THEN ! An ADAMS model will be created; thus, print out all the cols. - - WRITE (UnSu,'(A)') 'Node BlFract RNodes DRNodes PitchAxis StrcTwst BMassDen FlpStff EdgStff'// & - ' GJStff EAStff Alpha FlpIner EdgIner PrecrvRef PreswpRef FlpcgOf EdgcgOf'// & - ' FlpEAOf EdgEAOf' - WRITE (UnSu,'(A)') ' (-) (-) (m) (m) (-) (deg) (kg/m) (Nm^2) (Nm^2)'// & - ' (Nm^2) (Nm^2) (-) (kg m) (kg m) (m) (m) (m) (m)'// & - ' (m) (m)' - - DO I=1,p%BldNodes - - WRITE(UnSu,'(I4,3F9.3,3F10.3,4ES11.3,F9.3,4F10.3,4F9.3)') I, p%RNodesNorm(I), p%RNodes(I) + p%HubRad, p%DRNodes(I), & - p%PitchAxis(K,I), p%ThetaS(K,I)*R2D, p%MassB(K,I), & - p%StiffBF(K,I), p%StiffBE(K,I), & - p%StiffBGJ(K,I), p%StiffBEA(K,I), & - p%BAlpha(K,I), p%InerBFlp(K,I), p%InerBEdg(K,I), & - p%RefAxisxb(K,I), p%RefAxisyb(K,I), & - p%cgOffBFlp(K,I), p%cgOffBEdg(K,I), & - p%EAOffBFlp(K,I), p%EAOffBEdg(K,I) - ENDDO ! I - - ELSE ! Only FAST will be run; thus, only print out the necessary cols. - - WRITE (UnSu,'(A)') 'Node BlFract RNodes DRNodes PitchAxis StrcTwst BMassDen FlpStff EdgStff' - WRITE (UnSu,'(A)') ' (-) (-) (m) (m) (-) (deg) (kg/m) (Nm^2) (Nm^2)' - - DO I=1,p%BldNodes - WRITE(UnSu,'(I4,3F9.3,3F10.3,2ES11.3)') I, p%RNodesNorm(I), p%RNodes(I) + p%HubRad, p%DRNodes(I), & - p%PitchAxis(K,I),p%ThetaS(K,I)*R2D, p%MassB(K,I), & - p%StiffBF(K,I), p%StiffBE(K,I) - ENDDO ! I - ENDIF + WRITE (UnSu,'(A)') 'Node BlFract RNodes DRNodes PitchAxis StrcTwst BMassDen FlpStff EdgStff' + WRITE (UnSu,'(A)') ' (-) (-) (m) (m) (-) (deg) (kg/m) (Nm^2) (Nm^2)' + + DO I=1,p%BldNodes + WRITE(UnSu,'(I4,3F9.3,3F10.3,2ES11.3)') I, p%RNodesNorm(I), p%RNodes(I) + p%HubRad, p%DRNodes(I), & + p%PitchAxis(K,I),p%ThetaS(K,I)*R2D, p%MassB(K,I), & + p%StiffBF(K,I), p%StiffBE(K,I) + ENDDO ! I ENDDO ! K diff --git a/modules/elastodyn/src/ElastoDyn_IO.f90 b/modules/elastodyn/src/ElastoDyn_IO.f90 index 3a13e5e800..7e74a3325c 100644 --- a/modules/elastodyn/src/ElastoDyn_IO.f90 +++ b/modules/elastodyn/src/ElastoDyn_IO.f90 @@ -1276,7 +1276,7 @@ MODULE ElastoDyn_IO !---------------------------------------------------------------------------------------------------------------------------------- !> This subroutine reads the input file and stores all the data in the ED_InputFile structure. !! It does not perform data validation. -SUBROUTINE ED_ReadInput( InputFileName, MeshFile, InputFileData, ReadAdmVals, BD4Blades, Default_DT, OutFileRoot, ErrStat, ErrMsg ) +SUBROUTINE ED_ReadInput( InputFileName, MeshFile, InputFileData, BD4Blades, Default_DT, OutFileRoot, ErrStat, ErrMsg ) !.................................................................................................................................. ! Passed variables @@ -1289,7 +1289,6 @@ SUBROUTINE ED_ReadInput( InputFileName, MeshFile, InputFileData, ReadAdmVals, BD TYPE(ED_InputFile), INTENT(OUT) :: InputFileData !< Data stored in the module's input file INTEGER(IntKi), INTENT(OUT) :: ErrStat !< The error status code - LOGICAL, INTENT(IN) :: ReadAdmVals !< Determines if we should read the Adams-only values LOGICAL, INTENT(IN) :: BD4Blades !< Determines if we should read the blade values (true=don't read this file; use BeamDyn for blades instead) CHARACTER(*), INTENT(OUT) :: ErrMsg !< The error message, if an error occurred @@ -1377,7 +1376,7 @@ SUBROUTINE ED_ReadInput( InputFileName, MeshFile, InputFileData, ReadAdmVals, BD ! get the blade input-file data (from blade and mesh files) IF (.NOT. BD4Blades) THEN - CALL ReadBladeInputs ( BldFile, MeshFile, ReadAdmVals, InputFileData, UnEcho, ErrStat2, ErrMsg2 ) + CALL ReadBladeInputs ( BldFile, MeshFile, InputFileData, UnEcho, ErrStat2, ErrMsg2 ) call SetErrStat(ErrStat2,ErrMsg2,ErrStat,ErrMsg,RoutineName) if ( ErrStat >= AbortErrLev ) then call Cleanup() @@ -1387,7 +1386,7 @@ SUBROUTINE ED_ReadInput( InputFileName, MeshFile, InputFileData, ReadAdmVals, BD ! get the tower input-file data - CALL ReadTowerFile( TwrFile, InputFileData, ReadAdmVals, UnEcho, ErrStat2, ErrMsg2 ) + CALL ReadTowerFile( TwrFile, InputFileData, UnEcho, ErrStat2, ErrMsg2 ) call SetErrStat(ErrStat2,ErrMsg2,ErrStat,ErrMsg,RoutineName) if ( ErrStat >= AbortErrLev ) then call Cleanup() @@ -1463,7 +1462,7 @@ END SUBROUTINE ED_ValidateInput !---------------------------------------------------------------------------------------------------------------------------------- !> This routine reads the data from the blade and mesh inputs files. !! This routines assumes that InputFileData%NumBl has already been set. -SUBROUTINE ReadBladeInputs ( BldFile, MeshFile, ReadAdmVals, InputFileData, UnEc, ErrStat, ErrMsg ) +SUBROUTINE ReadBladeInputs ( BldFile, MeshFile, InputFileData, UnEc, ErrStat, ErrMsg ) !.................................................................................................................................. ! Passed variables: @@ -1475,7 +1474,6 @@ SUBROUTINE ReadBladeInputs ( BldFile, MeshFile, ReadAdmVals, InputFileData, UnEc INTEGER(IntKi), INTENT(OUT) :: ErrStat !< The error ID CHARACTER(*), INTENT(OUT) :: ErrMsg !< Message describing error - LOGICAL, INTENT(IN) :: ReadAdmVals !< Logical to determine if Adams inputs should be read from file ! Local variables: @@ -1527,7 +1525,7 @@ SUBROUTINE ReadBladeInputs ( BldFile, MeshFile, ReadAdmVals, InputFileData, UnEc WRITE (UnEc,'(//,A,/)') 'Blade '//TRIM( Num2LStr( K ) )//' input data from file "'//TRIM( BldFile(K) )//'":' END IF - CALL ReadBladeFile( BldFile(K), InputFileData%InpBl(K), ReadAdmVals, UnEc, ErrStat2, ErrMsg2 ) + CALL ReadBladeFile( BldFile(K), InputFileData%InpBl(K), UnEc, ErrStat2, ErrMsg2 ) call SetErrStat(ErrStat2,ErrMsg2,ErrStat,ErrMsg,RoutineName) IF ( ErrStat >= AbortErrLev ) RETURN @@ -1551,14 +1549,13 @@ SUBROUTINE ReadBladeInputs ( BldFile, MeshFile, ReadAdmVals, InputFileData, UnEc END SUBROUTINE ReadBladeInputs !---------------------------------------------------------------------------------------------------------------------------------- !> This routine reads a blade input file. -SUBROUTINE ReadBladeFile ( BldFile, BladeKInputFileData, ReadAdmVals, UnEc, ErrStat, ErrMsg ) +SUBROUTINE ReadBladeFile ( BldFile, BladeKInputFileData, UnEc, ErrStat, ErrMsg ) !.................................................................................................................................. ! Passed variables: TYPE(BladeInputData), INTENT(INOUT) :: BladeKInputFileData !< Data for Blade K stored in the module's input file CHARACTER(*), INTENT(IN) :: BldFile !< Name of the blade input file data - LOGICAL, INTENT(IN) :: ReadAdmVals !< Logical to determine if Adams inputs should be read from file INTEGER(IntKi), INTENT(IN) :: UnEc !< I/O unit for echo file. If present and > 0, write to UnEc INTEGER(IntKi), INTENT(OUT) :: ErrStat !< Error status @@ -1638,7 +1635,7 @@ SUBROUTINE ReadBladeFile ( BldFile, BladeKInputFileData, ReadAdmVals, UnEc, ErrS ! .......... Allocate the arrays based on this NBlInpSt input .......... - CALL Alloc_BladeInputProperties( BladeKInputFileData, ReadAdmVals, ErrStat2, ErrMsg2 ) + CALL Alloc_BladeInputProperties( BladeKInputFileData, ErrStat2, ErrMsg2 ) CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) IF ( ErrStat >= AbortErrLev ) THEN CALL Cleanup() @@ -1772,11 +1769,7 @@ SUBROUTINE ReadBladeFile ( BldFile, BladeKInputFileData, ReadAdmVals, UnEc, ErrS ! Read the table. - IF ( ReadAdmVals ) THEN - NInputCols = 17 - ELSE - NInputCols = 6 - END IF + NInputCols = 6 DO I=1,BladeKInputFileData%NBlInpSt @@ -1796,19 +1789,6 @@ SUBROUTINE ReadBladeFile ( BldFile, BladeKInputFileData, ReadAdmVals, UnEc, ErrS BladeKInputFileData%FlpStff( I) = TmpRAry(5)*AdjFlSt ! Apply the correction factors to the elemental data. BladeKInputFileData%EdgStff( I) = TmpRAry(6)*AdjEdSt ! Apply the correction factors to the elemental data. - IF ( NInputCols > 6 ) THEN - BladeKInputFileData%GJStff( I) = TmpRAry( 7) - BladeKInputFileData%EAStff( I) = TmpRAry( 8) - BladeKInputFileData%Alpha( I) = TmpRAry( 9) - BladeKInputFileData%FlpIner( I) = TmpRAry(10) - BladeKInputFileData%EdgIner( I) = TmpRAry(11) - BladeKInputFileData%PrecrvRef(I) = TmpRAry(12) - BladeKInputFileData%PreswpRef(I) = TmpRAry(13) - BladeKInputFileData%FlpcgOf( I) = TmpRAry(14) - BladeKInputFileData%EdgcgOf( I) = TmpRAry(15) - BladeKInputFileData%FlpEAOf( I) = TmpRAry(16) - BladeKInputFileData%EdgEAOf( I) = TmpRAry(17) - END IF ENDDO ! I @@ -2164,7 +2144,7 @@ end subroutine Fatal END SUBROUTINE ReadFurlFile !---------------------------------------------------------------------------------------------------------------------------------- !> This routine reads the tower file input. -SUBROUTINE ReadTowerFile( TwrFile, InputFileData, ReadAdmVals, UnEc, ErrStat, ErrMsg ) +SUBROUTINE ReadTowerFile( TwrFile, InputFileData, UnEc, ErrStat, ErrMsg ) !.................................................................................................................................. IMPLICIT NONE @@ -2173,7 +2153,6 @@ SUBROUTINE ReadTowerFile( TwrFile, InputFileData, ReadAdmVals, UnEc, ErrStat, Er INTEGER(IntKi), INTENT(OUT) :: ErrStat !< Error status INTEGER(IntKi), INTENT(IN) :: UnEc !< I/O unit for echo file. If present and > 0, write to UnEc - LOGICAL, INTENT(IN) :: ReadAdmVals !< Logical to determine if Adams inputs should be read from file CHARACTER(*), INTENT(OUT) :: ErrMsg !< Error message CHARACTER(*), INTENT(IN) :: TwrFile !< Name of the tower input file data TYPE(ED_InputFile), INTENT(INOUT) :: InputFileData !< All the data in the ElastoDyn input file @@ -2254,7 +2233,7 @@ SUBROUTINE ReadTowerFile( TwrFile, InputFileData, ReadAdmVals, UnEc, ErrStat, Er ! Allocate the input arrays based on this NTwInpSt input - CALL Alloc_TowerInputProperties( InputFileData, ReadAdmVals, ErrStat, ErrMsg ) + CALL Alloc_TowerInputProperties( InputFileData, ErrStat, ErrMsg ) CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName ) IF ( ErrStat >= AbortErrLev ) THEN CALL Cleanup() @@ -2402,12 +2381,8 @@ SUBROUTINE ReadTowerFile( TwrFile, InputFileData, ReadAdmVals, UnEc, ErrStat, Er ! Read the table. - - IF ( ReadAdmVals ) THEN - NInputCols = 10 - ELSE - NInputCols = 4 - END IF + + NInputCols = 4 DO I=1,InputFileData%NTwInpSt @@ -2425,15 +2400,6 @@ SUBROUTINE ReadTowerFile( TwrFile, InputFileData, ReadAdmVals, UnEc, ErrStat, Er InputFileData%TwFAStif(I) = TmpRAry(3)*AdjFASt ! Apply the correction factors to the elemental data. InputFileData%TwSSStif(I) = TmpRAry(4)*AdjSSSt ! Apply the correction factors to the elemental data. - IF ( NInputCols > 4 ) THEN - InputFileData%TwGJStif(I) = TmpRAry( 5) - InputFileData%TwEAStif(I) = TmpRAry( 6) - InputFileData%TwFAIner(I) = TmpRAry( 7) - InputFileData%TwSSIner(I) = TmpRAry( 8) - InputFileData%TwFAcgOf(I) = TmpRAry( 9) - InputFileData%TwSScgOf(I) = TmpRAry(10) - END IF - END DO ! I @@ -3702,11 +3668,10 @@ SUBROUTINE Alloc_BladeMeshInputProperties( BladeKInputFileMesh, ErrStat, ErrMsg END SUBROUTINE Alloc_BladeMeshInputProperties !---------------------------------------------------------------------------------------------------------------------------------- !> This routine allocates arrays for the blade properties from the input file. -SUBROUTINE Alloc_BladeInputProperties( BladeKInputFileData, AllocAdams, ErrStat, ErrMsg ) +SUBROUTINE Alloc_BladeInputProperties( BladeKInputFileData, ErrStat, ErrMsg ) !.................................................................................................................................. TYPE(BladeInputData), INTENT(INOUT) :: BladeKInputFileData !< Data for Blade K stored in the module's input file - LOGICAL, INTENT(IN) :: AllocAdams !< Logical to determine if we should allocate the arrays only used for Adams INTEGER(IntKi), INTENT(OUT) :: ErrStat !< Error status CHARACTER(*), INTENT(OUT) :: ErrMsg !< Err message @@ -3734,32 +3699,6 @@ SUBROUTINE Alloc_BladeInputProperties( BladeKInputFileData, AllocAdams, ErrStat, IF ( ErrStat /= ErrID_None ) RETURN - IF ( AllocAdams ) THEN - CALL AllocAry ( BladeKInputFileData%GJStff, BladeKInputFileData%NBlInpSt, 'GJStff' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( BladeKInputFileData%EAStff, BladeKInputFileData%NBlInpSt, 'EAStff' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( BladeKInputFileData%Alpha, BladeKInputFileData%NBlInpSt, 'Alpha' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( BladeKInputFileData%FlpIner, BladeKInputFileData%NBlInpSt, 'FlpIner' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( BladeKInputFileData%EdgIner, BladeKInputFileData%NBlInpSt, 'EdgIner' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( BladeKInputFileData%PrecrvRef,BladeKInputFileData%NBlInpSt, 'PrecrvRef', ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( BladeKInputFileData%PreswpRef,BladeKInputFileData%NBlInpSt, 'PreswpRef', ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( BladeKInputFileData%FlpcgOf, BladeKInputFileData%NBlInpSt, 'FlpcgOf' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( BladeKInputFileData%EdgcgOf, BladeKInputFileData%NBlInpSt, 'EdgcgOf' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( BladeKInputFileData%FlpEAOf, BladeKInputFileData%NBlInpSt, 'FlpEAOf' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( BladeKInputFileData%EdgEAOf, BladeKInputFileData%NBlInpSt, 'EdgEAOf' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - END IF - - ! BJJ: note that these used to be allocated 2:PolyOrd : CALL AllocAry ( BladeKInputFileData%BldFl1Sh, PolyOrd-1, 'BldFl1Sh' , ErrStat, ErrMsg ) @@ -3773,11 +3712,10 @@ SUBROUTINE Alloc_BladeInputProperties( BladeKInputFileData, AllocAdams, ErrStat, END SUBROUTINE Alloc_BladeInputProperties !---------------------------------------------------------------------------------------------------------------------------------- !> This routine allocates arrays for the tower properties from the input file. -SUBROUTINE Alloc_TowerInputProperties( InputFileData, AllocAdams, ErrStat, ErrMsg ) +SUBROUTINE Alloc_TowerInputProperties( InputFileData, ErrStat, ErrMsg ) !.................................................................................................................................. TYPE(ED_InputFile), INTENT(INOUT) :: InputFileData !< All the data in the ElastoDyn input file - LOGICAL, INTENT(IN) :: AllocAdams !< Determines if the columns for Adams data will be read INTEGER(IntKi), INTENT(OUT) :: ErrStat !< Error status CHARACTER(*), INTENT(OUT) :: ErrMsg !< Error message @@ -3800,21 +3738,6 @@ SUBROUTINE Alloc_TowerInputProperties( InputFileData, AllocAdams, ErrStat, ErrMs CALL AllocAry ( InputFileData%TwSSStif, InputFileData%NTwInpSt, 'TwSSStif' , ErrStat, ErrMsg ) IF ( ErrStat /= ErrID_None ) RETURN - IF ( AllocAdams ) THEN - CALL AllocAry ( InputFileData%TwGJStif, InputFileData%NTwInpSt, 'TwGJStif' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( InputFileData%TwEAStif, InputFileData%NTwInpSt, 'TwEAStif' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( InputFileData%TwFAIner, InputFileData%NTwInpSt, 'TwFAIner' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( InputFileData%TwSSIner, InputFileData%NTwInpSt, 'TwSSIner' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( InputFileData%TwFAcgOf, InputFileData%NTwInpSt, 'TwFAcgOf' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - CALL AllocAry ( InputFileData%TwSScgOf, InputFileData%NTwInpSt, 'TwSScgOf' , ErrStat, ErrMsg ) - IF ( ErrStat /= ErrID_None ) RETURN - END IF - ! BJJ: note that these used to be allocated 2:PolyOrd : CALL AllocAry ( InputFileData%TwFAM1Sh, PolyOrd-1, 'TwFAM1Sh' , ErrStat, ErrMsg ) @@ -3897,61 +3820,6 @@ SUBROUTINE ValidateBladeData ( BladeKInputFileData, ErrStat, ErrMsg ) END DO - ! Check values for Adams input - - IF ( ALLOCATED(BladeKInputFileData%GJStff) ) THEN ! We assume that if GJStff is allocated, we are using ADAMS inputs - - ! The reference axis must be coincident with the pitch axis at the blade root (I == 1): - IF ( .NOT. EqualRealNos( BladeKInputFileData%PrecrvRef(1), 0.0_ReKi ) .OR. & - .NOT. EqualRealNos( BladeKInputFileData%PreswpRef(1), 0.0_ReKi ) ) THEN - CALL SetErrStat( ErrID_Fatal,'Both PrecrvRef(1) and PreswpRef(1) must be zero '//& - '(the reference axis must be coincident with the pitch axis at the blade root).',ErrStat,ErrMsg,RoutineName) - END IF - - - DO I = 1,BladeKInputFileData%NBlInpSt - - ! Check that GJStff is contained in (0.0, inf): - IF ( BladeKInputFileData%GJStff(I) <= 0.0_ReKi ) THEN - CALL SetErrStat( ErrID_Fatal,'GJStff('//TRIM( Num2LStr( I ) )//') must be greater than zero.',ErrStat,ErrMsg,RoutineName) - END IF - - ! Check that EAStff is contained in (0.0, inf): - IF ( BladeKInputFileData%EAStff(I) <= 0.0_ReKi ) THEN - CALL SetErrStat( ErrID_Fatal,'EAStff('//TRIM( Num2LStr( I ) )//') must be greater than zero.',ErrStat,ErrMsg,RoutineName) - END IF - - ! Check that Alpha is contained in (-1.0, 1): - IF ( ( BladeKInputFileData%Alpha(I) <= -1.0_ReKi ) .OR. ( BladeKInputFileData%Alpha(I) >= 1.0_ReKi ) ) THEN - CALL SetErrStat( ErrID_Fatal,'Alpha('//TRIM( Num2LStr( I ) )//') (the blade flap/twist'// & - ' coupling coefficient) must be between -1 and 1 (exclusive).',ErrStat,ErrMsg,RoutineName) - END IF - - ! Check that FlpIner is contained in [0.0, inf): - IF ( BladeKInputFileData%FlpIner(I) < 0.0_ReKi ) THEN - CALL SetErrStat( ErrID_Fatal,'FlpIner('//TRIM( Num2LStr( I ) )//') must not be less than zero.',ErrStat,ErrMsg,RoutineName) - END IF - - ! Check that EdgIner is contained in [0.0, inf): - IF ( BladeKInputFileData%EdgIner(I) < 0.0_ReKi ) THEN - CALL SetErrStat( ErrID_Fatal,'EdgIner('//TRIM( Num2LStr( I ) )//') must not be less than zero.',ErrStat,ErrMsg,RoutineName) - END IF - - ! Check that PrecrvRef is 0.0 for Adams models: - IF ( .NOT. EqualRealNos( BladeKInputFileData%PrecrvRef(I), 0.0_ReKi) ) THEN - CALL SetErrStat( ErrID_Fatal,'PrecrvRef('//TRIM( Num2LStr( I ) )//') must be zero for Adams models.',ErrStat,ErrMsg,RoutineName) - END IF - - ! Check that GJStff is contained in (0.0, inf): - IF ( .NOT. EqualRealNos( BladeKInputFileData%PreswpRef(I), 0.0_ReKi) ) THEN - CALL SetErrStat( ErrID_Fatal,'PreswpRef('//TRIM( Num2LStr( I ) )//') must be zero for Adams models.',ErrStat,ErrMsg,RoutineName) - END IF - - END DO - - END IF ! check for Adams models - - ! Check that the blade damping is not negative: IF ( ANY( BladeKInputFileData%BldFlDmp < 0.0_ReKi ) ) CALL SetErrStat( ErrID_Fatal,'BldFlDmp must not be negative.',ErrStat,ErrMsg,RoutineName) @@ -4056,31 +3924,6 @@ SUBROUTINE ValidateTowerData ( InputFileData, ErrStat, ErrMsg ) END IF END DO - ! Check Adams inputs - - IF ( ALLOCATED( InputFileData%TwGJStif ) ) THEN ! Assume that all of the Adams tower data is allocated - - DO I = 1,InputFileData%NTwInpSt - IF ( InputFileData%TwGJStif(I) <= 0.0_ReKi ) THEN - CALL SetErrStat( ErrID_Fatal, 'TwGJStif('//TRIM(Num2LStr( I ))//') must be greater than zero.', ErrStat, ErrMsg, RoutineName) - END IF - - IF ( InputFileData%TwEAStif(I) <= 0.0_ReKi ) THEN - CALL SetErrStat( ErrID_Fatal, 'TwEAStif('//TRIM(Num2LStr( I ))//') must be greater than zero.', ErrStat, ErrMsg, RoutineName) - END IF - - IF ( InputFileData%TwFAIner(I) <= 0.0_ReKi ) THEN - CALL SetErrStat( ErrID_Fatal, 'TwFAIner('//TRIM(Num2LStr( I ))//') must be greater than zero.', ErrStat, ErrMsg, RoutineName) - END IF - - IF ( InputFileData%TwSSIner(I) <= 0.0_ReKi ) THEN - CALL SetErrStat( ErrID_Fatal, 'TwSSIner('//TRIM(Num2LStr( I ))//') must be greater than zero.', ErrStat, ErrMsg, RoutineName) - END IF - END DO - - END IF ! Check items for Adams - - ! Check that the tower damping (TwrFADmp) is contained in the range [0, 100]: diff --git a/modules/elastodyn/src/ElastoDyn_Registry.txt b/modules/elastodyn/src/ElastoDyn_Registry.txt index 8b867e55a0..e4a06cf6be 100644 --- a/modules/elastodyn/src/ElastoDyn_Registry.txt +++ b/modules/elastodyn/src/ElastoDyn_Registry.txt @@ -62,17 +62,6 @@ typedef ^ BladeInputData ReKi StrcTwst {:} - - "Structural twist for distributed typedef ^ BladeInputData ReKi BMassDen {:} - - "Blade mass density for distributed input data" typedef ^ BladeInputData ReKi FlpStff {:} - - "Blade flap stiffness for distributed input data" typedef ^ BladeInputData ReKi EdgStff {:} - - "Blade edge stiffness for distributed input data" -typedef ^ BladeInputData ReKi GJStff {:} - - "Blade torsional stiffness for a given input station" -typedef ^ BladeInputData ReKi EAStff {:} - - "Blade extensional stiffness for a given input station" -typedef ^ BladeInputData ReKi Alpha {:} - - "Blade coupling coefficient between flap and twist for a given input station" -typedef ^ BladeInputData ReKi FlpIner {:} - - "Blade flap (about local structural yb-axis) mass inertia per unit length for a given input station" -typedef ^ BladeInputData ReKi EdgIner {:} - - "Blade edge (about local structural xb-axis) mass inertia per unit length for a given input station" -typedef ^ BladeInputData ReKi PrecrvRef {:} - - "Offset for defining the reference axis from the pitch axis for precurved blades at a given input station" -typedef ^ BladeInputData ReKi PreswpRef {:} - - "Offset for defining the reference axis from the pitch axis for preswept blades at a given input station" -typedef ^ BladeInputData ReKi FlpcgOf {:} - - "Blade flap (along local aerodynamic xb-axis) mass cg offset for a given input station" -typedef ^ BladeInputData ReKi EdgcgOf {:} - - "Blade edge (along local aerodynamic yb-axis) mass cg offset for a given input station" -typedef ^ BladeInputData ReKi FlpEAOf {:} - - "Blade flap (along local aerodynamic xb-axis) elastic axis offset for a given input station" -typedef ^ BladeInputData ReKi EdgEAOf {:} - - "Blade edge (along local aerodynamic yb-axis) elastic axis offset for a given input station" typedef ^ BladeInputData ReKi BldFlDmp 2 - - "Blade structural damping ratios in flapwise direction" typedef ^ BladeInputData ReKi BldEdDmp 1 - - "Blade structural damping ratios in edgewise direction" typedef ^ BladeInputData ReKi FlStTunr 2 - - "Blade flapwise modal stiffness tuners (input)" @@ -204,13 +193,6 @@ typedef ^ ED_InputFile ReKi TwFAM1Sh {:} - - "Tower fore-aft mode-1 shape coeffi typedef ^ ED_InputFile ReKi TwFAM2Sh {:} - - "Tower fore-aft mode-2 shape coefficients" - typedef ^ ED_InputFile ReKi TwSSM1Sh {:} - - "Tower side-to-side mode-1 shape coefficients" - typedef ^ ED_InputFile ReKi TwSSM2Sh {:} - - "Tower side-to-side mode-2 shape coefficients" - -# ..... Tower Input file data (ADAMS only) ........................................................................................................... -typedef ^ ED_InputFile ReKi TwGJStif {:} - - "Tower torsional stiffness for a given input station" Nm^2 -typedef ^ ED_InputFile ReKi TwEAStif {:} - - "Tower extensional stiffness for a given input station" N -typedef ^ ED_InputFile ReKi TwFAIner {:} - - "Tower fore-aft (about yt-axis) mass inertia per unit length for a given input station" "kg m" -typedef ^ ED_InputFile ReKi TwSSIner {:} - - "Tower side-to-side (about xt-axis) mass inertia per unit length for a given input station" "kg m" -typedef ^ ED_InputFile ReKi TwFAcgOf {:} - - "Tower fore-aft (along the xt-axis) mass cg offset for a given input station" meters -typedef ^ ED_InputFile ReKi TwSScgOf {:} - - "Tower fore-aft (along the yt-axis) mass cg offset for a given input station" meters # ..... Furling Input file data ........................................................................................................... typedef ^ ED_InputFile LOGICAL RFrlDOF - - - "Rotor-furl DOF" - typedef ^ ED_InputFile LOGICAL TFrlDOF - - - "Tail-furl DOF" - @@ -641,13 +623,7 @@ typedef ^ ParameterType ReKi TwrFlexL - - - "Height / length of the flexible por typedef ^ ParameterType ReKi TwrSSSF {:}{:}{:} - - "Tower side-to-side shape functions" typedef ^ ParameterType IntKi TTopNode - - - "Index of the additional node located at the tower-top = TwrNodes + 1" typedef ^ ParameterType IntKi TwrNodes - - - "Number of tower nodes used in the analysis" -typedef ^ ParameterType ReKi InerTFA {:} - - "Interpolated tower fore-aft (about yt-axis) mass inertia per unit length" -typedef ^ ParameterType ReKi InerTSS {:} - - "Interpolated tower side-to-side (about xt-axis) mass inertia per unit length" -typedef ^ ParameterType ReKi StiffTGJ {:} - - "Interpolated tower torsional stiffness" -typedef ^ ParameterType ReKi StiffTEA {:} - - "Interpolated tower extensional stiffness" typedef ^ ParameterType ReKi StiffTFA {:} - - "Interpolated fore-aft tower stiffness" -typedef ^ ParameterType ReKi cgOffTFA {:} - - "Interpolated tower fore-aft mass cg offset" -typedef ^ ParameterType ReKi cgOffTSS {:} - - "Interpolated tower side-to-side mass cg offset" typedef ^ ParameterType ReKi AtfaIner - - - "Inertia of tail boom about the tail-furl axis whose origin is the tail boom center of mass" typedef ^ ParameterType ReKi BldCG {:} - - "Blade center of mass wrt the blade root" typedef ^ ParameterType ReKi BldMass {:} - - "Blade masses" @@ -680,37 +656,26 @@ typedef ^ ParameterType ReKi Gravity - - - "Gravitational acceleration" m/s^2 typedef ^ ParameterType ReKi PitchAxis {:}{:} - - "Pitch axis for analysis nodes" - typedef ^ ParameterType ReKi AeroTwst {:} - - "Aerodynamic twist of the blade at the analysis nodes" typedef ^ ParameterType ReKi AxRedBld {:}{:}{:}{:} - - "The axial-reduction terms of the blade shape function" -typedef ^ ParameterType ReKi BAlpha {:}{:} - - "Interpolated blade coupling coefficient between flap and twist" typedef ^ ParameterType ReKi BldEDamp {:}{:} - - "Blade edgewise damping coefficients" typedef ^ ParameterType ReKi BldFDamp {:}{:} - - "Blade flapwise damping coefficients" typedef ^ ParameterType ReKi BldFlexL - - - "Flexible blade length" typedef ^ ParameterType ReKi CAeroTwst {:} - - "Cosine of the aerodynamic twist of the blade at the analysis nodes" typedef ^ ParameterType ReKi CBE {:}{:}{:} - - "Generalized edgewise damping of the blades" typedef ^ ParameterType ReKi CBF {:}{:}{:} - - "Generalized flapwise damping of the blades" -typedef ^ ParameterType ReKi cgOffBEdg {:}{:} - - "Interpolated blade edge (along local aerodynamic yb-axis) mass cg offset" -typedef ^ ParameterType ReKi cgOffBFlp {:}{:} - - "Interpolated blade flap (along local aerodynamic xb-axis) mass cg offset" typedef ^ ParameterType ReKi Chord {:} - - "Chord of the blade at the analysis nodes" typedef ^ ParameterType R8Ki CThetaS {:}{:} - - "COS( ThetaS )" typedef ^ ParameterType ReKi DRNodes {:} - - "Length of variable-spaced blade elements" -typedef ^ ParameterType ReKi EAOffBEdg {:}{:} - - "Interpolated blade edge (along local aerodynamic yb-axis) elastic axis offset" -typedef ^ ParameterType ReKi EAOffBFlp {:}{:} - - "Interpolated blade flap (along local aerodynamic xb-axis) elastic axis offset" typedef ^ ParameterType ReKi FStTunr {:}{:} - - "Blade flapwise modal stiffness tuners (stored for all blades)" -typedef ^ ParameterType ReKi InerBEdg {:}{:} - - "Interpolated blade edge (about local structural xb-axis) mass inertia per unit length" -typedef ^ ParameterType ReKi InerBFlp {:}{:} - - "Interpolated blade flap (about local structural yb-axis) mass inertia per unit length" typedef ^ ParameterType ReKi KBE {:}{:}{:} - - "Generalized edgewise stiffness of the blades" typedef ^ ParameterType ReKi KBF {:}{:}{:} - - "Generalized flapwise stiffness of the blades" typedef ^ ParameterType ReKi MassB {:}{:} - - "Interpolated lineal blade mass density" -typedef ^ ParameterType ReKi RefAxisxb {:}{:} - - "Interpolated Offset for defining the reference axis from the pitch axis for precurved blades at a given input station (along xb-axis)" -typedef ^ ParameterType ReKi RefAxisyb {:}{:} - - "Interpolated Offset for defining the reference axis from the pitch axis for preswept blades at a given input station (along yb-axis)" typedef ^ ParameterType ReKi RNodes {:} - - "Radius to analysis nodes relative to hub ( 0 < RNodes(:) < BldFlexL )" typedef ^ ParameterType ReKi RNodesNorm {:} - - "Normalized radius to analysis nodes relative to hub ( 0 < RNodesNorm(:) < 1 )" typedef ^ ParameterType ReKi rSAerCenn1 {:}{:} - - "Distance from point S on a blade to the aerodynamic center in the n1 direction (m)" typedef ^ ParameterType ReKi rSAerCenn2 {:}{:} - - "Distance from point S on a blade to the aerodynamic center in the n2 direction (m)" typedef ^ ParameterType ReKi SAeroTwst {:} - - "Sine of the aerodynamic twist of the blade at the analysis nodes" typedef ^ ParameterType ReKi StiffBE {:}{:} - - "Interpolated edgewise blade stiffness" -typedef ^ ParameterType ReKi StiffBEA {:}{:} - - "Interpolated blade extensional stiffness" typedef ^ ParameterType ReKi StiffBF {:}{:} - - "Interpolated flapwise blade stiffness" -typedef ^ ParameterType ReKi StiffBGJ {:}{:} - - "Interpolated blade torsional stiffness" typedef ^ ParameterType R8Ki SThetaS {:}{:} - - "SIN( ThetaS )" typedef ^ ParameterType ReKi ThetaS {:}{:} - - "Structural twist for analysis nodes" radians typedef ^ ParameterType ReKi TwistedSF {:}{:}{:}{:}{:} - - "Interpolated lineal blade mass density" diff --git a/modules/icedyn/src/IceDyn.f90 b/modules/icedyn/src/IceDyn.f90 index 454777b03e..9abd548d9f 100644 --- a/modules/icedyn/src/IceDyn.f90 +++ b/modules/icedyn/src/IceDyn.f90 @@ -267,7 +267,7 @@ SUBROUTINE IceD_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, InitO ! ! Print the summary file if requested: ! IF (InputFileData%SumPrint) THEN - ! CALL IceD_PrintSum( p, OtherState, GetAdamsVals, ErrStat2, ErrMsg2 ) + ! CALL IceD_PrintSum( p, OtherState, ErrStat2, ErrMsg2 ) ! CALL CheckError( ErrStat2, ErrMsg2 ) ! IF (ErrStat >= AbortErrLev) RETURN ! END IF diff --git a/modules/icefloe/src/interfaces/ADAMS/IceADAMS_VFOSUB.f90 b/modules/icefloe/src/interfaces/ADAMS/IceADAMS_VFOSUB.f90 deleted file mode 100644 index 74ef791828..0000000000 --- a/modules/icefloe/src/interfaces/ADAMS/IceADAMS_VFOSUB.f90 +++ /dev/null @@ -1,264 +0,0 @@ -!********************************************************************************************************************************** -! LICENSING -! Copyright (C) 2014 DNV KEMA Renewables, Inc. -! -! This file is part of the IceFloe suite of subroutines -! -! Licensed under the Apache License, Version 2.0 (the "License"); -! you may not use this file except in compliance with the License. -! You may obtain a copy of the License at -! -! http://www.apache.org/licenses/LICENSE-2.0 -! -! Unless required by applicable law or agreed to in writing, software -! distributed under the License is distributed on an "AS IS" BASIS, -! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -! See the License for the specific language governing permissions and -! limitations under the License. -!************************************************************************ - -!********************************************************************************************************************************** -! File last committed: $Date: 2014-01-31 09:14:28 -0800 (Fri, 31 Jan 2014) $ -! (File) Revision #: $Rev: 131 $ -! URL: $HeadURL: http://sel1004.verit.dnv.com:8080/svn/LoadSimCtl_SurfaceIce/trunk/IceDyn_IntelFortran/HAWC2_DLL/HAWC2_DLL.f90 $ -!********************************************************************************************************************************** - -module IceADAMS - - use IceLog - use IceInputParams - use iceFloeBase - use IceCrushingISO - use IceCrushingIEC - use IceIntermittentCrushing - use IceFlexISO - use IceFlexIEC - use IceLockInCrushingISO - use randomCrushing - use IceCpldCrushing - use NWTC_IO, only : DispNVD, progdesc, curdate, curtime - - type(iceFloe_ParameterType), save :: icep ! Parameters, including precalculated time series - type(iceFloe_LoggingType), save :: theIceLog ! structure with message and error logging variables - -contains -!------------------------------------------------------------------------------------ - subroutine icefloe_init() - - implicit none - - ! locals - Real(ReKi) :: duration - INTEGER(IntKi) :: nSteps - INTEGER(IntKi) :: Err ! Error status of the operation - LOGICAL, SAVE :: bInit = .FALSE. ! Initialization flag - TYPE(ProgDesc), PARAMETER :: IceFloe_Ver = ProgDesc( 'IceFloe', 'v1.00.00', 'May-2014' ) - - ! More IceFloe types - type(iceInputType) :: iceInput ! hold list of input names and values from file - character(132) :: logFile ! File name for message logging - - ! Set up error logging - theIceLog%warnFlag = .false. - theIceLog%ErrID = ErrID_None - theIceLog%ErrMsg = "" - - ! Display the module information - - CALL DispNVD( IceFloe_Ver ) - - call openIceLog(theIceLog, 'IceFloe.log') - call logMessage(theIceLog, ' Running: '//trim(IceFloe_Ver%Name)//trim(IceFloe_Ver%Ver)//trim(IceFloe_Ver%Date)) - call logMessage(theIceLog, ' This run started on: '//curdate()//' at '//curtime()//newLine) - - call countIceInputs('testIce.inp', theIceLog, iceInput) - call readIceInputs(theIceLog, iceInput) - call logMessage(theIceLog, ' Input file read complete.'//newLine) - - ! call IceFloe initialization routine and get parameters back - ! not all parameters used by all ice floe types - call getIceInput(iceInput, 'iceType',icep%iceType, theIceLog, lowTypeLimit, hiTypeLimit) - if (theIceLog%ErrID >= AbortErrLev) then - return - endif - - ! Set the time step as the minimum of the suggested p%dt and the time step from the ice input file - call getIceInput(iceInput, 'timeStep',icep%dt, theIceLog, 0.0) - if (theIceLog%ErrID >= AbortErrLev) then - return - endif - - ! get the duration of the simulation - call getIceInput(iceInput, 'duration', duration, theIceLog, 0.0) - call logMessage(theIceLog, ' Load time series duration = '//TRIM(Num2LStr(duration))//' sec') - - ! get the number of legs on the support structure - call getIceInput(iceInput, 'numLegs', icep%numLegs, theIceLog, 1, 4) - if (theIceLog%ErrID >= AbortErrLev) then - return - endif - - ! allocate storage for load series - nSteps = ceiling(duration/icep%dt) + 1 ! + 1 for zero point - allocate(icep%loadSeries(nSteps, icep%numLegs), stat=err) - if (err /= 0) then - call iceErrorHndlr (theIceLog, ErrID_Fatal, 'Error in time series array allocation in IceFloe_init', 1) - return - endif - ! point internal iceFloe array to the saved load series - ! icep%loadSeries => loadseries - - ! allocate storage for the leg positions - allocate (icep%legX(icep%numLegs), stat=err) - allocate (icep%legY(icep%numLegs), stat=err) - allocate (icep%ks(icep%numLegs), stat=err) - if (err /= 0) then - call iceErrorHndlr (theIceLog, ErrID_Fatal, 'Error in allocation of leg data in parameters', 1) - return ! error in array allocation - endif - - iceType: select case (icep%iceType) - case (randomCrush) - call initRandomCrushing(iceInput, icep, theIceLog) - if (theIceLog%ErrID <= ErrID_Warn) & - call logMessage(theIceLog, newLine//' Random continuous ice crushing via ISO/Karna initialized'//newLine) - case (interCrush) - call initInterCrushing(iceInput, icep, theIceLog) - if (theIceLog%ErrID <= ErrID_Warn) & - call logMessage(theIceLog, newLine//' Intermittent ice crushing loads initialized'//newLine) - case (crushIEC) - call initCrushingIEC(iceInput, icep, theIceLog) - if (theIceLog%ErrID <= ErrID_Warn) & - call logMessage(theIceLog, newLine//' Ice crushing loads IEC/Korzhavin initialized'//newLine) - case (flexFailISO) - call initFlexISO(iceInput, icep, theIceLog) - if (theIceLog%ErrID <= ErrID_Warn) & - call logMessage(theIceLog, newLine//' ISO/Croasdale ice flexural failure loads initialized'//newLine) - case (flexFailIEC) - call initFlexIEC(iceInput, icep, theIceLog) - if (theIceLog%ErrID <= ErrID_Warn) & - call logMessage(theIceLog, newLine//' IEC/Ralston ice flexural failure loads initialized'//newLine) - case (lockInISO) - call initLockInCrushingISO(iceInput, icep, theIceLog) - if (theIceLog%ErrID <= ErrID_Warn) & - call logMessage(theIceLog, newLine//' Frequency lock-in ice crushing loads via ISO initialized'//newLine) - case (cpldCrush) - call initCpldCrushing(iceInput, icep, theIceLog) - if (theIceLog%ErrID <= ErrID_Warn) & - call logMessage(theIceLog, newLine//' Coupled crushing ice loads (Maattanen) initialized'//newLine) - case default - call iceErrorHndlr (theIceLog, ErrID_Fatal, 'Invalid ice floe type, ' & - //TRIM(Num2LStr(icep%IceType))//' is not a valid selection', 1) - end select iceType - - end subroutine icefloe_init - -!********************************************************************************************************************************** - SUBROUTINE icefloe_update(Time, Vels, Forces) - - implicit none - ! input - real(DbKi), intent(IN) :: Time - real(ReKi), intent(IN) :: Vels(3) - ! output - real(ReKi), intent(OUT) :: Forces(3) - - real(ReKi) :: loadVect(6,icep%numLegs) - real(ReKi) :: inVels(2,icep%numLegs) - integer(IntKi) :: nL - - ! reset up error logging - theIceLog%warnFlag = .false. - theIceLog%ErrID = ErrID_None - theIceLog%ErrMsg = "" - - ! Assign support structure velocities to local variables - ! CURRENTLY only monopile supported so NL should = 1 - inVels = 0.0 - do nL = 1, icep%numLegs - inVels(1,nL) = Vels(1) - inVels(2,nL) = Vels(2) - enddo - - ! get loads from IceFloe - iceType: select case (icep%iceType) - case (randomCrush) - loadVect = outputRandomCrushLoad(icep, theIceLog, time) - case (crushIEC) - loadVect = outputCrushLoadIEC(icep, theIceLog, time) - case (interCrush) - loadVect = outputInterCrushLoad(icep, theIceLog, time) - case (flexFailISO) - loadVect = outputFlexLoadISO(icep, theIceLog, time) - case (flexFailIEC) - loadVect = outputFlexLoadIEC(icep, theIceLog, time) - case (lockInISO) - loadVect = outputLockInLoadISO(icep, theIceLog, time) - case (cpldCrush) - loadVect = outputCpldCrushLoad(icep, theIceLog, inVels, time) - case default - call logFatal (theIceLog, 'Invalid Ice Floe Type Selection', 1) - end select iceType - - !Apply ramp for first 10 seconds - do nL = 1, icep%numLegs - Forces(1) = loadVect(1,nL)*min(1.0, 0.1*time) - Forces(2) = loadVect(2,nL)*min(1.0, 0.1*time) - Forces(3) = 0.0 - enddo - - end SUBROUTINE icefloe_update - -end module IceADAMS - -!********************************************************************************************************************************** - -SUBROUTINE VFOSUB ( ID, ATIME, PAR, NPAR, DFLAG, IFLAG, Forces ) - -! This routine is used to calculate the functional values for a VFORCE statement. -! Specifically to call the IceFloe routines for use in ADAMS - - use IceADAMS - - IMPLICIT NONE - -! Passed variables: - - INTEGER(4), INTENT(IN ) :: ID ! ID of the REQUEST statement calling this routine. - INTEGER(4), INTENT(IN ) :: NPAR ! Number of PARameters passed through PAR. - - REAL(8), INTENT(IN ) :: ATIME ! The current simimulation time. - REAL(8), INTENT(IN ) :: PAR(NPAR) ! The passeed PARameters. - REAL(8), INTENT(OUT) :: Forces(3) ! Values returned to ADAMS. - - LOGICAL, INTENT(IN) :: DFLAG ! Partial Derivative flag. - LOGICAL, INTENT(IN) :: IFLAG ! Initialization pass flag. - -! Local variables - LOGICAL, save :: initFlag = .true. - logical :: errFlg - integer(4) :: IPar3(3), NStates - REAL(4) :: IceForces(3) - REAL(8) :: States(3) - -! get the local velocity at the marker specified in PAR - IPar3(1) = int(PAR(1)) - IPar3(2) = 1 ! ground marker - IPar3(3) = 1 ! ground marker - call SYSARY('TVEL', IPar3, 3, States, NStates, errFlg ) - - IceForces = 0.0 - if (IFLAG .and. initFlag) then - call icefloe_init - initFlag = .false. - endif - - if (.not. initFlag) then -! Get the ice loads - call icefloe_update(atime, real(States, 4), IceForces) - endif - - Forces = real(IceForces, 8)/1000.0 - -END SUBROUTINE VFOSUB - diff --git a/modules/icefloe/src/interfaces/Console/SysIVF_reduced.f90 b/modules/icefloe/src/interfaces/Console/SysIVF_reduced.f90 index 0c31950cc7..db1d0814cb 100644 --- a/modules/icefloe/src/interfaces/Console/SysIVF_reduced.f90 +++ b/modules/icefloe/src/interfaces/Console/SysIVF_reduced.f90 @@ -56,7 +56,7 @@ MODULE SysSubs INTEGER, PARAMETER :: ConRecL = 120 ! The record length for console output. - INTEGER, PARAMETER :: CU = 6 ! The I/O unit for the console. Unit 6 causes ADAMS to crash. + INTEGER, PARAMETER :: CU = 6 ! The I/O unit for the console. INTEGER, PARAMETER :: MaxWrScrLen = 98 ! The maximum number of characters allowed to be written to a line in WrScr INTEGER, PARAMETER :: NL_Len = 2 ! The number of characters used for a new line. @@ -128,8 +128,6 @@ SUBROUTINE FlushOut ( Unit ) CALL FLUSH ( INT(Unit, B4Ki) ) -!bjj: ADAMS does not compile well with this, so I'll put it back to the subroutine form: -! FLUSH ( Unit ) RETURN diff --git a/modules/nwtc-library/src/SysGnuLinux.f90 b/modules/nwtc-library/src/SysGnuLinux.f90 index 02d8fbb68c..21a7a0f184 100644 --- a/modules/nwtc-library/src/SysGnuLinux.f90 +++ b/modules/nwtc-library/src/SysGnuLinux.f90 @@ -58,7 +58,7 @@ MODULE SysSubs END INTERFACE INTEGER, PARAMETER :: ConRecL = 120 ! The record length for console output. - INTEGER, PARAMETER :: CU = 6 ! The I/O unit for the console. Unit 6 causes ADAMS to crash. + INTEGER, PARAMETER :: CU = 6 ! The I/O unit for the console. INTEGER, PARAMETER :: MaxWrScrLen = 98 ! The maximum number of characters allowed to be written to a line in WrScr LOGICAL, PARAMETER :: KBInputOK = .TRUE. ! A flag to tell the program that keyboard input is allowed in the environment. CHARACTER(*), PARAMETER :: NewLine = ACHAR(10) ! The delimiter for New Lines [ Windows is CHAR(13)//CHAR(10); MAC is CHAR(13); Unix is CHAR(10) {CHAR(13)=\r is a line feed, CHAR(10)=\n is a new line}] diff --git a/modules/nwtc-library/src/SysGnuWin.f90 b/modules/nwtc-library/src/SysGnuWin.f90 index 30ee9473e6..17dfd0739a 100644 --- a/modules/nwtc-library/src/SysGnuWin.f90 +++ b/modules/nwtc-library/src/SysGnuWin.f90 @@ -58,7 +58,7 @@ MODULE SysSubs END INTERFACE INTEGER, PARAMETER :: ConRecL = 120 ! The record length for console output. - INTEGER, PARAMETER :: CU = 6 ! The I/O unit for the console. Unit 6 causes ADAMS to crash. + INTEGER, PARAMETER :: CU = 6 ! The I/O unit for the console. INTEGER, PARAMETER :: MaxWrScrLen = 98 ! The maximum number of characters allowed to be written to a line in WrScr LOGICAL, PARAMETER :: KBInputOK = .TRUE. ! A flag to tell the program that keyboard input is allowed in the environment. CHARACTER(*), PARAMETER :: NewLine = ACHAR(10) ! The delimiter for New Lines [ Windows is CHAR(13)//CHAR(10); MAC is CHAR(13); Unix is CHAR(10) {CHAR(13)=\r is a line feed, CHAR(10)=\n is a new line}] diff --git a/modules/nwtc-library/src/SysIFL.f90 b/modules/nwtc-library/src/SysIFL.f90 index 4752deb39e..f311fdfc0f 100644 --- a/modules/nwtc-library/src/SysIFL.f90 +++ b/modules/nwtc-library/src/SysIFL.f90 @@ -58,7 +58,7 @@ MODULE SysSubs END INTERFACE INTEGER, PARAMETER :: ConRecL = 120 ! The record length for console output. - INTEGER, PARAMETER :: CU = 6 ! The I/O unit for the console. Unit 6 causes ADAMS to crash. + INTEGER, PARAMETER :: CU = 6 ! The I/O unit for the console. INTEGER, PARAMETER :: MaxWrScrLen = 98 ! The maximum number of characters allowed to be written to a line in WrScr LOGICAL, PARAMETER :: KBInputOK = .TRUE. ! A flag to tell the program that keyboard input is allowed in the environment. CHARACTER(*), PARAMETER :: NewLine = ACHAR(10) ! The delimiter for New Lines [ Windows is CHAR(13)//CHAR(10); MAC is CHAR(13); Unix is CHAR(10) {CHAR(13)=\r is a line feed, CHAR(10)=\n is a new line}] diff --git a/modules/nwtc-library/src/SysIVF.f90 b/modules/nwtc-library/src/SysIVF.f90 index b05b5cccde..e074db42e7 100644 --- a/modules/nwtc-library/src/SysIVF.f90 +++ b/modules/nwtc-library/src/SysIVF.f90 @@ -58,7 +58,7 @@ MODULE SysSubs END INTERFACE INTEGER, PARAMETER :: ConRecL = 120 ! The record length for console output. - INTEGER, PARAMETER :: CU = 7 ! The I/O unit for the console. Unit 6 causes ADAMS to crash. + INTEGER, PARAMETER :: CU = 7 ! The I/O unit for the console. INTEGER, PARAMETER :: MaxWrScrLen = 98 ! The maximum number of characters allowed to be written to a line in WrScr LOGICAL, PARAMETER :: KBInputOK = .TRUE. ! A flag to tell the program that keyboard input is allowed in the environment. CHARACTER(*), PARAMETER :: NewLine = ACHAR(10) ! The delimiter for New Lines [ Windows is CHAR(13)//CHAR(10); MAC is CHAR(13); Unix is CHAR(10) {CHAR(13)=\r is a line feed, CHAR(10)=\n is a new line}]; Note: NewLine change to ACHAR(10) here on Windows to fix issues with C/Fortran interoperability using WrScr diff --git a/modules/nwtc-library/src/SysIVF_Labview.f90 b/modules/nwtc-library/src/SysIVF_Labview.f90 index 40b1600e9d..83377cebe5 100644 --- a/modules/nwtc-library/src/SysIVF_Labview.f90 +++ b/modules/nwtc-library/src/SysIVF_Labview.f90 @@ -75,7 +75,7 @@ MODULE SysSubs INTEGER, PARAMETER :: ConRecL = 120 ! The record length for console output. - INTEGER, PARAMETER :: CU = 7 ! The I/O unit for the console. Unit 6 causes ADAMS to crash. + INTEGER, PARAMETER :: CU = 7 ! The I/O unit for the console. INTEGER, PARAMETER :: MaxWrScrLen = 98 ! The maximum number of characters allowed to be written to a line in WrScr LOGICAL, PARAMETER :: KBInputOK = .FALSE. ! A flag to tell the program that keyboard input is allowed in the environment. diff --git a/modules/nwtc-library/src/SysMatlabLinuxGnu.f90 b/modules/nwtc-library/src/SysMatlabLinuxGnu.f90 index faee037394..6c50bc0a03 100644 --- a/modules/nwtc-library/src/SysMatlabLinuxGnu.f90 +++ b/modules/nwtc-library/src/SysMatlabLinuxGnu.f90 @@ -61,7 +61,7 @@ MODULE SysSubs END INTERFACE INTEGER, PARAMETER :: ConRecL = 120 ! The record length for console output. - INTEGER, PARAMETER :: CU = 6 ! The I/O unit for the console. Unit 6 causes ADAMS to crash. + INTEGER, PARAMETER :: CU = 6 ! The I/O unit for the console. INTEGER, PARAMETER :: MaxWrScrLen = 98 ! The maximum number of characters allowed to be written to a line in WrScr LOGICAL, PARAMETER :: KBInputOK = .FALSE. ! A flag to tell the program that keyboard input is allowed in the environment. CHARACTER(*), PARAMETER :: NewLine = ACHAR(10) ! The delimiter for New Lines [ Windows is CHAR(13)//CHAR(10); MAC is CHAR(13); Unix is CHAR(10) {CHAR(13)=\r is a line feed, CHAR(10)=\n is a new line}] diff --git a/modules/nwtc-library/src/SysMatlabLinuxIntel.f90 b/modules/nwtc-library/src/SysMatlabLinuxIntel.f90 index daa14592e5..44ebdff5f9 100644 --- a/modules/nwtc-library/src/SysMatlabLinuxIntel.f90 +++ b/modules/nwtc-library/src/SysMatlabLinuxIntel.f90 @@ -61,7 +61,7 @@ MODULE SysSubs END INTERFACE INTEGER, PARAMETER :: ConRecL = 120 ! The record length for console output. - INTEGER, PARAMETER :: CU = 6 ! The I/O unit for the console. Unit 6 causes ADAMS to crash. + INTEGER, PARAMETER :: CU = 6 ! The I/O unit for the console. INTEGER, PARAMETER :: MaxWrScrLen = 98 ! The maximum number of characters allowed to be written to a line in WrScr LOGICAL, PARAMETER :: KBInputOK = .FALSE. ! A flag to tell the program that keyboard input is allowed in the environment. CHARACTER(*), PARAMETER :: NewLine = ACHAR(10) ! The delimiter for New Lines [ Windows is CHAR(13)//CHAR(10); MAC is CHAR(13); Unix is CHAR(10) {CHAR(13)=\r is a line feed, CHAR(10)=\n is a new line}] diff --git a/modules/nwtc-library/src/SysMatlabWindows.f90 b/modules/nwtc-library/src/SysMatlabWindows.f90 index 07ecad85ec..5824a128b2 100644 --- a/modules/nwtc-library/src/SysMatlabWindows.f90 +++ b/modules/nwtc-library/src/SysMatlabWindows.f90 @@ -50,7 +50,7 @@ MODULE SysSubs INTEGER, PARAMETER :: ConRecL = 120 ! The record length for console output. - INTEGER, PARAMETER :: CU = 6 ! The I/O unit for the console. Unit 6 causes ADAMS to crash. + INTEGER, PARAMETER :: CU = 6 ! The I/O unit for the console. INTEGER, PARAMETER :: MaxWrScrLen = 98 ! The maximum number of characters allowed to be written to a line in WrScr LOGICAL, PARAMETER :: KBInputOK = .FALSE. ! A flag to tell the program that keyboard input is allowed in the environment. diff --git a/modules/openfast-library/src/FAST_Mods.f90 b/modules/openfast-library/src/FAST_Mods.f90 index c0215f53ad..a98e8d15b8 100644 --- a/modules/openfast-library/src/FAST_Mods.f90 +++ b/modules/openfast-library/src/FAST_Mods.f90 @@ -64,8 +64,6 @@ MODULE FAST_ModTypes INTEGER(IntKi), PARAMETER :: SizeJac_ED_HD = 12 - LOGICAL, PARAMETER :: GenerateAdamsModel = .FALSE. - LOGICAL, PARAMETER :: BD_Solve_Option1 = .TRUE. diff --git a/modules/servodyn/src/PitchCntrl_ACH.f90 b/modules/servodyn/src/PitchCntrl_ACH.f90 index 167851ce23..f1d9533963 100644 --- a/modules/servodyn/src/PitchCntrl_ACH.f90 +++ b/modules/servodyn/src/PitchCntrl_ACH.f90 @@ -11,15 +11,14 @@ SUBROUTINE PitchCntrl ( BlPitch, ElecPwr, LSS_Spd, TwrAccel, NB, ZTime, DT, DirR ! This routine reads a data file containing user specified transfer - ! function information to allow the use of control systems in FAST - ! and ADAMS. The parameters read in, and array dimensions may be - ! adjusted to suit the users need. + ! function information to allow the use of control systems in FAST. + ! The parameters read in, and array dimensions may be adjusted to + ! suit the users need. ! The transfer function coefficients are read in, then converted to ! state space form for integration using a fourth order Runge-Kutta ! integration scheme. ! This routine was originally written by C. Hansen in Fortran 77 for - ! use with FAST and ADAMS. It was converted to Modern Fortran by - ! J. Jonkman. + ! use with FAST. It was converted to Modern Fortran by J. Jonkman. USE NWTC_Library @@ -429,8 +428,7 @@ SUBROUTINE CTRL4 ( CNST, AC, BC, NORDER, MSZ, NSZ, & ! Now apply fourth transfer function to represent the actuator - ! (Do not use this actuator in ADAMS. If order of 4th - ! transfer function is zero, this transfer function is not applied) + ! (If order of 4th transfer function is zero, this transfer function is not applied) IF ( NORDER(4) == 0 ) THEN DO K=1,NB diff --git a/modules/servodyn/src/UserSubs.f90 b/modules/servodyn/src/UserSubs.f90 index 64c3501f65..7ac97a52f4 100644 --- a/modules/servodyn/src/UserSubs.f90 +++ b/modules/servodyn/src/UserSubs.f90 @@ -85,9 +85,6 @@ module UserSubs ! ! the DOF, respectively. Turning off the DOF forces the ! ! current RATE to remain fixed. If the rate is currently zero, ! ! the current POSITION will remain fixed as well. -! ! Note that this technique WILL NOT work for user-defined routines -! ! written for ADAMS datasets extracted using the FAST-to-ADAMS -! ! preprocessor. ! ! !USE Precision @@ -148,9 +145,6 @@ SUBROUTINE UserHSSBr ( GenTrq, ElecPwr, HSS_Spd, NumBl, ZTime, DT, DirRoot, HSSB ! the DOF, respectively. Turning off the DOF forces the ! current RATE to remain fixed. If the rate is currently zero, ! the current POSITION will remain fixed as well. - ! Note that this technique WILL NOT work for user-defined routines - ! written for ADAMS datasets extracted using the FAST-to-ADAMS - ! preprocessor. USE Precision @@ -174,7 +168,7 @@ SUBROUTINE UserHSSBr ( GenTrq, ElecPwr, HSS_Spd, NumBl, ZTime, DT, DirRoot, HSSB -HSSBrFrac = 0.0 ! NOTE: This must be specified as a real number between 0.0 (off - no brake torque) and 1.0 (full - max brake torque = HSSBrTqF); FAST/ADAMS will Abort otherwise. +HSSBrFrac = 0.0 ! NOTE: This must be specified as a real number between 0.0 (off - no brake torque) and 1.0 (full - max brake torque = HSSBrTqF); FAST will Abort otherwise. @@ -256,9 +250,6 @@ END SUBROUTINE UserTFin ! ! the DOF, respectively. Turning off the DOF forces the ! ! current RATE to remain fixed. If the rate is currently zero, ! ! the current POSITION will remain fixed as well. -! ! Note that this technique WILL NOT work for user-defined routines -! ! written for ADAMS datasets extracted using the FAST-to-ADAMS -! ! preprocessor. ! ! !USE Precision @@ -419,10 +410,7 @@ SUBROUTINE UserYawCont ( YawPos, YawRate, WindDir, YawError, NumBl, ZTime, DT, D ! setting YawDOF to False. ! This technique is useful, for example, if the yaw bearing has ! an electromagnetic latch that will unlock and relock the hinge under - ! certain specified conditions. - ! Note that this technique WILL NOT work for user-defined routines - ! written for ADAMS datasets extracted using the FAST-to-ADAMS - ! preprocessor. + ! certain specified conditions.. USE Precision diff --git a/reg_tests/r-test b/reg_tests/r-test index f3770bb2a4..2189f638b1 160000 --- a/reg_tests/r-test +++ b/reg_tests/r-test @@ -1 +1 @@ -Subproject commit f3770bb2a4fa546a4798be7d066094f73fbecb3e +Subproject commit 2189f638b1d32cf1752cac2224587017d222e3fe From 5265b13dbab434d1e9b7d10c189bb847a1a75d90 Mon Sep 17 00:00:00 2001 From: Hannah Ross Date: Tue, 31 Jan 2023 12:25:50 -0700 Subject: [PATCH 2/2] Update types files --- modules/elastodyn/src/ElastoDyn_Types.f90 | 2018 +-------------------- 1 file changed, 25 insertions(+), 1993 deletions(-) diff --git a/modules/elastodyn/src/ElastoDyn_Types.f90 b/modules/elastodyn/src/ElastoDyn_Types.f90 index 41e564bb9d..3bd4583b1e 100644 --- a/modules/elastodyn/src/ElastoDyn_Types.f90 +++ b/modules/elastodyn/src/ElastoDyn_Types.f90 @@ -84,17 +84,6 @@ MODULE ElastoDyn_Types REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: BMassDen !< Blade mass density for distributed input data [-] REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: FlpStff !< Blade flap stiffness for distributed input data [-] REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: EdgStff !< Blade edge stiffness for distributed input data [-] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: GJStff !< Blade torsional stiffness for a given input station [-] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: EAStff !< Blade extensional stiffness for a given input station [-] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: Alpha !< Blade coupling coefficient between flap and twist for a given input station [-] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: FlpIner !< Blade flap (about local structural yb-axis) mass inertia per unit length for a given input station [-] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: EdgIner !< Blade edge (about local structural xb-axis) mass inertia per unit length for a given input station [-] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: PrecrvRef !< Offset for defining the reference axis from the pitch axis for precurved blades at a given input station [-] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: PreswpRef !< Offset for defining the reference axis from the pitch axis for preswept blades at a given input station [-] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: FlpcgOf !< Blade flap (along local aerodynamic xb-axis) mass cg offset for a given input station [-] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: EdgcgOf !< Blade edge (along local aerodynamic yb-axis) mass cg offset for a given input station [-] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: FlpEAOf !< Blade flap (along local aerodynamic xb-axis) elastic axis offset for a given input station [-] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: EdgEAOf !< Blade edge (along local aerodynamic yb-axis) elastic axis offset for a given input station [-] REAL(ReKi) , DIMENSION(1:2) :: BldFlDmp !< Blade structural damping ratios in flapwise direction [-] REAL(ReKi) , DIMENSION(1:1) :: BldEdDmp !< Blade structural damping ratios in edgewise direction [-] REAL(ReKi) , DIMENSION(1:2) :: FlStTunr !< Blade flapwise modal stiffness tuners (input) [-] @@ -223,12 +212,6 @@ MODULE ElastoDyn_Types REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: TwFAM2Sh !< Tower fore-aft mode-2 shape coefficients [-] REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: TwSSM1Sh !< Tower side-to-side mode-1 shape coefficients [-] REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: TwSSM2Sh !< Tower side-to-side mode-2 shape coefficients [-] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: TwGJStif !< Tower torsional stiffness for a given input station [Nm^2] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: TwEAStif !< Tower extensional stiffness for a given input station [N] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: TwFAIner !< Tower fore-aft (about yt-axis) mass inertia per unit length for a given input station [kg m] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: TwSSIner !< Tower side-to-side (about xt-axis) mass inertia per unit length for a given input station [kg m] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: TwFAcgOf !< Tower fore-aft (along the xt-axis) mass cg offset for a given input station [meters] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: TwSScgOf !< Tower fore-aft (along the yt-axis) mass cg offset for a given input station [meters] LOGICAL :: RFrlDOF !< Rotor-furl DOF [-] LOGICAL :: TFrlDOF !< Tail-furl DOF [-] REAL(ReKi) :: RotFurl !< Initial or fixed rotor-furl angle [radians] @@ -649,13 +632,7 @@ MODULE ElastoDyn_Types REAL(ReKi) , DIMENSION(:,:,:), ALLOCATABLE :: TwrSSSF !< Tower side-to-side shape functions [-] INTEGER(IntKi) :: TTopNode !< Index of the additional node located at the tower-top = TwrNodes + 1 [-] INTEGER(IntKi) :: TwrNodes !< Number of tower nodes used in the analysis [-] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: InerTFA !< Interpolated tower fore-aft (about yt-axis) mass inertia per unit length [-] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: InerTSS !< Interpolated tower side-to-side (about xt-axis) mass inertia per unit length [-] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: StiffTGJ !< Interpolated tower torsional stiffness [-] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: StiffTEA !< Interpolated tower extensional stiffness [-] REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: StiffTFA !< Interpolated fore-aft tower stiffness [-] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: cgOffTFA !< Interpolated tower fore-aft mass cg offset [-] - REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: cgOffTSS !< Interpolated tower side-to-side mass cg offset [-] REAL(ReKi) :: AtfaIner !< Inertia of tail boom about the tail-furl axis whose origin is the tail boom center of mass [-] REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: BldCG !< Blade center of mass wrt the blade root [-] REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: BldMass !< Blade masses [-] @@ -687,37 +664,26 @@ MODULE ElastoDyn_Types REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: PitchAxis !< Pitch axis for analysis nodes [-] REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: AeroTwst !< Aerodynamic twist of the blade at the analysis nodes [-] REAL(ReKi) , DIMENSION(:,:,:,:), ALLOCATABLE :: AxRedBld !< The axial-reduction terms of the blade shape function [-] - REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: BAlpha !< Interpolated blade coupling coefficient between flap and twist [-] REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: BldEDamp !< Blade edgewise damping coefficients [-] REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: BldFDamp !< Blade flapwise damping coefficients [-] REAL(ReKi) :: BldFlexL !< Flexible blade length [-] REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: CAeroTwst !< Cosine of the aerodynamic twist of the blade at the analysis nodes [-] REAL(ReKi) , DIMENSION(:,:,:), ALLOCATABLE :: CBE !< Generalized edgewise damping of the blades [-] REAL(ReKi) , DIMENSION(:,:,:), ALLOCATABLE :: CBF !< Generalized flapwise damping of the blades [-] - REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: cgOffBEdg !< Interpolated blade edge (along local aerodynamic yb-axis) mass cg offset [-] - REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: cgOffBFlp !< Interpolated blade flap (along local aerodynamic xb-axis) mass cg offset [-] REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: Chord !< Chord of the blade at the analysis nodes [-] REAL(R8Ki) , DIMENSION(:,:), ALLOCATABLE :: CThetaS !< COS( ThetaS ) [-] REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: DRNodes !< Length of variable-spaced blade elements [-] - REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: EAOffBEdg !< Interpolated blade edge (along local aerodynamic yb-axis) elastic axis offset [-] - REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: EAOffBFlp !< Interpolated blade flap (along local aerodynamic xb-axis) elastic axis offset [-] REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: FStTunr !< Blade flapwise modal stiffness tuners (stored for all blades) [-] - REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: InerBEdg !< Interpolated blade edge (about local structural xb-axis) mass inertia per unit length [-] - REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: InerBFlp !< Interpolated blade flap (about local structural yb-axis) mass inertia per unit length [-] REAL(ReKi) , DIMENSION(:,:,:), ALLOCATABLE :: KBE !< Generalized edgewise stiffness of the blades [-] REAL(ReKi) , DIMENSION(:,:,:), ALLOCATABLE :: KBF !< Generalized flapwise stiffness of the blades [-] REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: MassB !< Interpolated lineal blade mass density [-] - REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: RefAxisxb !< Interpolated Offset for defining the reference axis from the pitch axis for precurved blades at a given input station (along xb-axis) [-] - REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: RefAxisyb !< Interpolated Offset for defining the reference axis from the pitch axis for preswept blades at a given input station (along yb-axis) [-] REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: RNodes !< Radius to analysis nodes relative to hub ( 0 < RNodes(:) < BldFlexL ) [-] REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: RNodesNorm !< Normalized radius to analysis nodes relative to hub ( 0 < RNodesNorm(:) < 1 ) [-] REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: rSAerCenn1 !< Distance from point S on a blade to the aerodynamic center in the n1 direction (m) [-] REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: rSAerCenn2 !< Distance from point S on a blade to the aerodynamic center in the n2 direction (m) [-] REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: SAeroTwst !< Sine of the aerodynamic twist of the blade at the analysis nodes [-] REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: StiffBE !< Interpolated edgewise blade stiffness [-] - REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: StiffBEA !< Interpolated blade extensional stiffness [-] REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: StiffBF !< Interpolated flapwise blade stiffness [-] - REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: StiffBGJ !< Interpolated blade torsional stiffness [-] REAL(R8Ki) , DIMENSION(:,:), ALLOCATABLE :: SThetaS !< SIN( ThetaS ) [-] REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: ThetaS !< Structural twist for analysis nodes [radians] REAL(ReKi) , DIMENSION(:,:,:,:,:), ALLOCATABLE :: TwistedSF !< Interpolated lineal blade mass density [-] @@ -2176,138 +2142,6 @@ SUBROUTINE ED_CopyBladeInputData( SrcBladeInputDataData, DstBladeInputDataData, END IF END IF DstBladeInputDataData%EdgStff = SrcBladeInputDataData%EdgStff -ENDIF -IF (ALLOCATED(SrcBladeInputDataData%GJStff)) THEN - i1_l = LBOUND(SrcBladeInputDataData%GJStff,1) - i1_u = UBOUND(SrcBladeInputDataData%GJStff,1) - IF (.NOT. ALLOCATED(DstBladeInputDataData%GJStff)) THEN - ALLOCATE(DstBladeInputDataData%GJStff(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstBladeInputDataData%GJStff.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstBladeInputDataData%GJStff = SrcBladeInputDataData%GJStff -ENDIF -IF (ALLOCATED(SrcBladeInputDataData%EAStff)) THEN - i1_l = LBOUND(SrcBladeInputDataData%EAStff,1) - i1_u = UBOUND(SrcBladeInputDataData%EAStff,1) - IF (.NOT. ALLOCATED(DstBladeInputDataData%EAStff)) THEN - ALLOCATE(DstBladeInputDataData%EAStff(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstBladeInputDataData%EAStff.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstBladeInputDataData%EAStff = SrcBladeInputDataData%EAStff -ENDIF -IF (ALLOCATED(SrcBladeInputDataData%Alpha)) THEN - i1_l = LBOUND(SrcBladeInputDataData%Alpha,1) - i1_u = UBOUND(SrcBladeInputDataData%Alpha,1) - IF (.NOT. ALLOCATED(DstBladeInputDataData%Alpha)) THEN - ALLOCATE(DstBladeInputDataData%Alpha(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstBladeInputDataData%Alpha.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstBladeInputDataData%Alpha = SrcBladeInputDataData%Alpha -ENDIF -IF (ALLOCATED(SrcBladeInputDataData%FlpIner)) THEN - i1_l = LBOUND(SrcBladeInputDataData%FlpIner,1) - i1_u = UBOUND(SrcBladeInputDataData%FlpIner,1) - IF (.NOT. ALLOCATED(DstBladeInputDataData%FlpIner)) THEN - ALLOCATE(DstBladeInputDataData%FlpIner(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstBladeInputDataData%FlpIner.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstBladeInputDataData%FlpIner = SrcBladeInputDataData%FlpIner -ENDIF -IF (ALLOCATED(SrcBladeInputDataData%EdgIner)) THEN - i1_l = LBOUND(SrcBladeInputDataData%EdgIner,1) - i1_u = UBOUND(SrcBladeInputDataData%EdgIner,1) - IF (.NOT. ALLOCATED(DstBladeInputDataData%EdgIner)) THEN - ALLOCATE(DstBladeInputDataData%EdgIner(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstBladeInputDataData%EdgIner.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstBladeInputDataData%EdgIner = SrcBladeInputDataData%EdgIner -ENDIF -IF (ALLOCATED(SrcBladeInputDataData%PrecrvRef)) THEN - i1_l = LBOUND(SrcBladeInputDataData%PrecrvRef,1) - i1_u = UBOUND(SrcBladeInputDataData%PrecrvRef,1) - IF (.NOT. ALLOCATED(DstBladeInputDataData%PrecrvRef)) THEN - ALLOCATE(DstBladeInputDataData%PrecrvRef(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstBladeInputDataData%PrecrvRef.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstBladeInputDataData%PrecrvRef = SrcBladeInputDataData%PrecrvRef -ENDIF -IF (ALLOCATED(SrcBladeInputDataData%PreswpRef)) THEN - i1_l = LBOUND(SrcBladeInputDataData%PreswpRef,1) - i1_u = UBOUND(SrcBladeInputDataData%PreswpRef,1) - IF (.NOT. ALLOCATED(DstBladeInputDataData%PreswpRef)) THEN - ALLOCATE(DstBladeInputDataData%PreswpRef(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstBladeInputDataData%PreswpRef.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstBladeInputDataData%PreswpRef = SrcBladeInputDataData%PreswpRef -ENDIF -IF (ALLOCATED(SrcBladeInputDataData%FlpcgOf)) THEN - i1_l = LBOUND(SrcBladeInputDataData%FlpcgOf,1) - i1_u = UBOUND(SrcBladeInputDataData%FlpcgOf,1) - IF (.NOT. ALLOCATED(DstBladeInputDataData%FlpcgOf)) THEN - ALLOCATE(DstBladeInputDataData%FlpcgOf(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstBladeInputDataData%FlpcgOf.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstBladeInputDataData%FlpcgOf = SrcBladeInputDataData%FlpcgOf -ENDIF -IF (ALLOCATED(SrcBladeInputDataData%EdgcgOf)) THEN - i1_l = LBOUND(SrcBladeInputDataData%EdgcgOf,1) - i1_u = UBOUND(SrcBladeInputDataData%EdgcgOf,1) - IF (.NOT. ALLOCATED(DstBladeInputDataData%EdgcgOf)) THEN - ALLOCATE(DstBladeInputDataData%EdgcgOf(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstBladeInputDataData%EdgcgOf.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstBladeInputDataData%EdgcgOf = SrcBladeInputDataData%EdgcgOf -ENDIF -IF (ALLOCATED(SrcBladeInputDataData%FlpEAOf)) THEN - i1_l = LBOUND(SrcBladeInputDataData%FlpEAOf,1) - i1_u = UBOUND(SrcBladeInputDataData%FlpEAOf,1) - IF (.NOT. ALLOCATED(DstBladeInputDataData%FlpEAOf)) THEN - ALLOCATE(DstBladeInputDataData%FlpEAOf(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstBladeInputDataData%FlpEAOf.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstBladeInputDataData%FlpEAOf = SrcBladeInputDataData%FlpEAOf -ENDIF -IF (ALLOCATED(SrcBladeInputDataData%EdgEAOf)) THEN - i1_l = LBOUND(SrcBladeInputDataData%EdgEAOf,1) - i1_u = UBOUND(SrcBladeInputDataData%EdgEAOf,1) - IF (.NOT. ALLOCATED(DstBladeInputDataData%EdgEAOf)) THEN - ALLOCATE(DstBladeInputDataData%EdgEAOf(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstBladeInputDataData%EdgEAOf.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstBladeInputDataData%EdgEAOf = SrcBladeInputDataData%EdgEAOf ENDIF DstBladeInputDataData%BldFlDmp = SrcBladeInputDataData%BldFlDmp DstBladeInputDataData%BldEdDmp = SrcBladeInputDataData%BldEdDmp @@ -2389,39 +2223,6 @@ SUBROUTINE ED_DestroyBladeInputData( BladeInputDataData, ErrStat, ErrMsg, DEALLO IF (ALLOCATED(BladeInputDataData%EdgStff)) THEN DEALLOCATE(BladeInputDataData%EdgStff) ENDIF -IF (ALLOCATED(BladeInputDataData%GJStff)) THEN - DEALLOCATE(BladeInputDataData%GJStff) -ENDIF -IF (ALLOCATED(BladeInputDataData%EAStff)) THEN - DEALLOCATE(BladeInputDataData%EAStff) -ENDIF -IF (ALLOCATED(BladeInputDataData%Alpha)) THEN - DEALLOCATE(BladeInputDataData%Alpha) -ENDIF -IF (ALLOCATED(BladeInputDataData%FlpIner)) THEN - DEALLOCATE(BladeInputDataData%FlpIner) -ENDIF -IF (ALLOCATED(BladeInputDataData%EdgIner)) THEN - DEALLOCATE(BladeInputDataData%EdgIner) -ENDIF -IF (ALLOCATED(BladeInputDataData%PrecrvRef)) THEN - DEALLOCATE(BladeInputDataData%PrecrvRef) -ENDIF -IF (ALLOCATED(BladeInputDataData%PreswpRef)) THEN - DEALLOCATE(BladeInputDataData%PreswpRef) -ENDIF -IF (ALLOCATED(BladeInputDataData%FlpcgOf)) THEN - DEALLOCATE(BladeInputDataData%FlpcgOf) -ENDIF -IF (ALLOCATED(BladeInputDataData%EdgcgOf)) THEN - DEALLOCATE(BladeInputDataData%EdgcgOf) -ENDIF -IF (ALLOCATED(BladeInputDataData%FlpEAOf)) THEN - DEALLOCATE(BladeInputDataData%FlpEAOf) -ENDIF -IF (ALLOCATED(BladeInputDataData%EdgEAOf)) THEN - DEALLOCATE(BladeInputDataData%EdgEAOf) -ENDIF IF (ALLOCATED(BladeInputDataData%BldFl1Sh)) THEN DEALLOCATE(BladeInputDataData%BldFl1Sh) ENDIF @@ -2498,61 +2299,6 @@ SUBROUTINE ED_PackBladeInputData( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, E IF ( ALLOCATED(InData%EdgStff) ) THEN Int_BufSz = Int_BufSz + 2*1 ! EdgStff upper/lower bounds for each dimension Re_BufSz = Re_BufSz + SIZE(InData%EdgStff) ! EdgStff - END IF - Int_BufSz = Int_BufSz + 1 ! GJStff allocated yes/no - IF ( ALLOCATED(InData%GJStff) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! GJStff upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%GJStff) ! GJStff - END IF - Int_BufSz = Int_BufSz + 1 ! EAStff allocated yes/no - IF ( ALLOCATED(InData%EAStff) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! EAStff upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%EAStff) ! EAStff - END IF - Int_BufSz = Int_BufSz + 1 ! Alpha allocated yes/no - IF ( ALLOCATED(InData%Alpha) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! Alpha upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%Alpha) ! Alpha - END IF - Int_BufSz = Int_BufSz + 1 ! FlpIner allocated yes/no - IF ( ALLOCATED(InData%FlpIner) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! FlpIner upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%FlpIner) ! FlpIner - END IF - Int_BufSz = Int_BufSz + 1 ! EdgIner allocated yes/no - IF ( ALLOCATED(InData%EdgIner) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! EdgIner upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%EdgIner) ! EdgIner - END IF - Int_BufSz = Int_BufSz + 1 ! PrecrvRef allocated yes/no - IF ( ALLOCATED(InData%PrecrvRef) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! PrecrvRef upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%PrecrvRef) ! PrecrvRef - END IF - Int_BufSz = Int_BufSz + 1 ! PreswpRef allocated yes/no - IF ( ALLOCATED(InData%PreswpRef) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! PreswpRef upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%PreswpRef) ! PreswpRef - END IF - Int_BufSz = Int_BufSz + 1 ! FlpcgOf allocated yes/no - IF ( ALLOCATED(InData%FlpcgOf) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! FlpcgOf upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%FlpcgOf) ! FlpcgOf - END IF - Int_BufSz = Int_BufSz + 1 ! EdgcgOf allocated yes/no - IF ( ALLOCATED(InData%EdgcgOf) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! EdgcgOf upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%EdgcgOf) ! EdgcgOf - END IF - Int_BufSz = Int_BufSz + 1 ! FlpEAOf allocated yes/no - IF ( ALLOCATED(InData%FlpEAOf) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! FlpEAOf upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%FlpEAOf) ! FlpEAOf - END IF - Int_BufSz = Int_BufSz + 1 ! EdgEAOf allocated yes/no - IF ( ALLOCATED(InData%EdgEAOf) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! EdgEAOf upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%EdgEAOf) ! EdgEAOf END IF Re_BufSz = Re_BufSz + SIZE(InData%BldFlDmp) ! BldFlDmp Re_BufSz = Re_BufSz + SIZE(InData%BldEdDmp) ! BldEdDmp @@ -2690,171 +2436,6 @@ SUBROUTINE ED_PackBladeInputData( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, E ReKiBuf(Re_Xferred) = InData%EdgStff(i1) Re_Xferred = Re_Xferred + 1 END DO - END IF - IF ( .NOT. ALLOCATED(InData%GJStff) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%GJStff,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%GJStff,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%GJStff,1), UBOUND(InData%GJStff,1) - ReKiBuf(Re_Xferred) = InData%GJStff(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%EAStff) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%EAStff,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%EAStff,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%EAStff,1), UBOUND(InData%EAStff,1) - ReKiBuf(Re_Xferred) = InData%EAStff(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%Alpha) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%Alpha,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%Alpha,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%Alpha,1), UBOUND(InData%Alpha,1) - ReKiBuf(Re_Xferred) = InData%Alpha(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%FlpIner) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%FlpIner,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%FlpIner,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%FlpIner,1), UBOUND(InData%FlpIner,1) - ReKiBuf(Re_Xferred) = InData%FlpIner(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%EdgIner) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%EdgIner,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%EdgIner,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%EdgIner,1), UBOUND(InData%EdgIner,1) - ReKiBuf(Re_Xferred) = InData%EdgIner(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%PrecrvRef) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%PrecrvRef,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%PrecrvRef,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%PrecrvRef,1), UBOUND(InData%PrecrvRef,1) - ReKiBuf(Re_Xferred) = InData%PrecrvRef(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%PreswpRef) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%PreswpRef,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%PreswpRef,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%PreswpRef,1), UBOUND(InData%PreswpRef,1) - ReKiBuf(Re_Xferred) = InData%PreswpRef(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%FlpcgOf) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%FlpcgOf,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%FlpcgOf,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%FlpcgOf,1), UBOUND(InData%FlpcgOf,1) - ReKiBuf(Re_Xferred) = InData%FlpcgOf(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%EdgcgOf) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%EdgcgOf,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%EdgcgOf,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%EdgcgOf,1), UBOUND(InData%EdgcgOf,1) - ReKiBuf(Re_Xferred) = InData%EdgcgOf(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%FlpEAOf) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%FlpEAOf,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%FlpEAOf,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%FlpEAOf,1), UBOUND(InData%FlpEAOf,1) - ReKiBuf(Re_Xferred) = InData%FlpEAOf(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%EdgEAOf) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%EdgEAOf,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%EdgEAOf,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%EdgEAOf,1), UBOUND(InData%EdgEAOf,1) - ReKiBuf(Re_Xferred) = InData%EdgEAOf(i1) - Re_Xferred = Re_Xferred + 1 - END DO END IF DO i1 = LBOUND(InData%BldFlDmp,1), UBOUND(InData%BldFlDmp,1) ReKiBuf(Re_Xferred) = InData%BldFlDmp(i1) @@ -3016,237 +2597,39 @@ SUBROUTINE ED_UnPackBladeInputData( ReKiBuf, DbKiBuf, IntKiBuf, Outdata, ErrStat Re_Xferred = Re_Xferred + 1 END DO END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! FlpStff not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%FlpStff)) DEALLOCATE(OutData%FlpStff) - ALLOCATE(OutData%FlpStff(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%FlpStff.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%FlpStff,1), UBOUND(OutData%FlpStff,1) - OutData%FlpStff(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! EdgStff not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%EdgStff)) DEALLOCATE(OutData%EdgStff) - ALLOCATE(OutData%EdgStff(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%EdgStff.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%EdgStff,1), UBOUND(OutData%EdgStff,1) - OutData%EdgStff(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! GJStff not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%GJStff)) DEALLOCATE(OutData%GJStff) - ALLOCATE(OutData%GJStff(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%GJStff.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%GJStff,1), UBOUND(OutData%GJStff,1) - OutData%GJStff(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! EAStff not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%EAStff)) DEALLOCATE(OutData%EAStff) - ALLOCATE(OutData%EAStff(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%EAStff.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%EAStff,1), UBOUND(OutData%EAStff,1) - OutData%EAStff(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! Alpha not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%Alpha)) DEALLOCATE(OutData%Alpha) - ALLOCATE(OutData%Alpha(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%Alpha.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%Alpha,1), UBOUND(OutData%Alpha,1) - OutData%Alpha(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! FlpIner not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%FlpIner)) DEALLOCATE(OutData%FlpIner) - ALLOCATE(OutData%FlpIner(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%FlpIner.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%FlpIner,1), UBOUND(OutData%FlpIner,1) - OutData%FlpIner(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! EdgIner not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%EdgIner)) DEALLOCATE(OutData%EdgIner) - ALLOCATE(OutData%EdgIner(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%EdgIner.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%EdgIner,1), UBOUND(OutData%EdgIner,1) - OutData%EdgIner(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! PrecrvRef not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%PrecrvRef)) DEALLOCATE(OutData%PrecrvRef) - ALLOCATE(OutData%PrecrvRef(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%PrecrvRef.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%PrecrvRef,1), UBOUND(OutData%PrecrvRef,1) - OutData%PrecrvRef(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! PreswpRef not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%PreswpRef)) DEALLOCATE(OutData%PreswpRef) - ALLOCATE(OutData%PreswpRef(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%PreswpRef.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%PreswpRef,1), UBOUND(OutData%PreswpRef,1) - OutData%PreswpRef(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! FlpcgOf not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%FlpcgOf)) DEALLOCATE(OutData%FlpcgOf) - ALLOCATE(OutData%FlpcgOf(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%FlpcgOf.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%FlpcgOf,1), UBOUND(OutData%FlpcgOf,1) - OutData%FlpcgOf(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! EdgcgOf not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%EdgcgOf)) DEALLOCATE(OutData%EdgcgOf) - ALLOCATE(OutData%EdgcgOf(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%EdgcgOf.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%EdgcgOf,1), UBOUND(OutData%EdgcgOf,1) - OutData%EdgcgOf(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! FlpEAOf not allocated + IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! FlpStff not allocated Int_Xferred = Int_Xferred + 1 ELSE Int_Xferred = Int_Xferred + 1 i1_l = IntKiBuf( Int_Xferred ) i1_u = IntKiBuf( Int_Xferred + 1) Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%FlpEAOf)) DEALLOCATE(OutData%FlpEAOf) - ALLOCATE(OutData%FlpEAOf(i1_l:i1_u),STAT=ErrStat2) + IF (ALLOCATED(OutData%FlpStff)) DEALLOCATE(OutData%FlpStff) + ALLOCATE(OutData%FlpStff(i1_l:i1_u),STAT=ErrStat2) IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%FlpEAOf.', ErrStat, ErrMsg,RoutineName) + CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%FlpStff.', ErrStat, ErrMsg,RoutineName) RETURN END IF - DO i1 = LBOUND(OutData%FlpEAOf,1), UBOUND(OutData%FlpEAOf,1) - OutData%FlpEAOf(i1) = ReKiBuf(Re_Xferred) + DO i1 = LBOUND(OutData%FlpStff,1), UBOUND(OutData%FlpStff,1) + OutData%FlpStff(i1) = ReKiBuf(Re_Xferred) Re_Xferred = Re_Xferred + 1 END DO END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! EdgEAOf not allocated + IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! EdgStff not allocated Int_Xferred = Int_Xferred + 1 ELSE Int_Xferred = Int_Xferred + 1 i1_l = IntKiBuf( Int_Xferred ) i1_u = IntKiBuf( Int_Xferred + 1) Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%EdgEAOf)) DEALLOCATE(OutData%EdgEAOf) - ALLOCATE(OutData%EdgEAOf(i1_l:i1_u),STAT=ErrStat2) + IF (ALLOCATED(OutData%EdgStff)) DEALLOCATE(OutData%EdgStff) + ALLOCATE(OutData%EdgStff(i1_l:i1_u),STAT=ErrStat2) IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%EdgEAOf.', ErrStat, ErrMsg,RoutineName) + CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%EdgStff.', ErrStat, ErrMsg,RoutineName) RETURN END IF - DO i1 = LBOUND(OutData%EdgEAOf,1), UBOUND(OutData%EdgEAOf,1) - OutData%EdgEAOf(i1) = ReKiBuf(Re_Xferred) + DO i1 = LBOUND(OutData%EdgStff,1), UBOUND(OutData%EdgStff,1) + OutData%EdgStff(i1) = ReKiBuf(Re_Xferred) Re_Xferred = Re_Xferred + 1 END DO END IF @@ -3908,78 +3291,6 @@ SUBROUTINE ED_CopyInputFile( SrcInputFileData, DstInputFileData, CtrlCode, ErrSt END IF END IF DstInputFileData%TwSSM2Sh = SrcInputFileData%TwSSM2Sh -ENDIF -IF (ALLOCATED(SrcInputFileData%TwGJStif)) THEN - i1_l = LBOUND(SrcInputFileData%TwGJStif,1) - i1_u = UBOUND(SrcInputFileData%TwGJStif,1) - IF (.NOT. ALLOCATED(DstInputFileData%TwGJStif)) THEN - ALLOCATE(DstInputFileData%TwGJStif(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstInputFileData%TwGJStif.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstInputFileData%TwGJStif = SrcInputFileData%TwGJStif -ENDIF -IF (ALLOCATED(SrcInputFileData%TwEAStif)) THEN - i1_l = LBOUND(SrcInputFileData%TwEAStif,1) - i1_u = UBOUND(SrcInputFileData%TwEAStif,1) - IF (.NOT. ALLOCATED(DstInputFileData%TwEAStif)) THEN - ALLOCATE(DstInputFileData%TwEAStif(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstInputFileData%TwEAStif.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstInputFileData%TwEAStif = SrcInputFileData%TwEAStif -ENDIF -IF (ALLOCATED(SrcInputFileData%TwFAIner)) THEN - i1_l = LBOUND(SrcInputFileData%TwFAIner,1) - i1_u = UBOUND(SrcInputFileData%TwFAIner,1) - IF (.NOT. ALLOCATED(DstInputFileData%TwFAIner)) THEN - ALLOCATE(DstInputFileData%TwFAIner(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstInputFileData%TwFAIner.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstInputFileData%TwFAIner = SrcInputFileData%TwFAIner -ENDIF -IF (ALLOCATED(SrcInputFileData%TwSSIner)) THEN - i1_l = LBOUND(SrcInputFileData%TwSSIner,1) - i1_u = UBOUND(SrcInputFileData%TwSSIner,1) - IF (.NOT. ALLOCATED(DstInputFileData%TwSSIner)) THEN - ALLOCATE(DstInputFileData%TwSSIner(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstInputFileData%TwSSIner.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstInputFileData%TwSSIner = SrcInputFileData%TwSSIner -ENDIF -IF (ALLOCATED(SrcInputFileData%TwFAcgOf)) THEN - i1_l = LBOUND(SrcInputFileData%TwFAcgOf,1) - i1_u = UBOUND(SrcInputFileData%TwFAcgOf,1) - IF (.NOT. ALLOCATED(DstInputFileData%TwFAcgOf)) THEN - ALLOCATE(DstInputFileData%TwFAcgOf(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstInputFileData%TwFAcgOf.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstInputFileData%TwFAcgOf = SrcInputFileData%TwFAcgOf -ENDIF -IF (ALLOCATED(SrcInputFileData%TwSScgOf)) THEN - i1_l = LBOUND(SrcInputFileData%TwSScgOf,1) - i1_u = UBOUND(SrcInputFileData%TwSScgOf,1) - IF (.NOT. ALLOCATED(DstInputFileData%TwSScgOf)) THEN - ALLOCATE(DstInputFileData%TwSScgOf(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstInputFileData%TwSScgOf.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstInputFileData%TwSScgOf = SrcInputFileData%TwSScgOf ENDIF DstInputFileData%RFrlDOF = SrcInputFileData%RFrlDOF DstInputFileData%TFrlDOF = SrcInputFileData%TFrlDOF @@ -4112,24 +3423,6 @@ SUBROUTINE ED_DestroyInputFile( InputFileData, ErrStat, ErrMsg, DEALLOCATEpointe IF (ALLOCATED(InputFileData%TwSSM2Sh)) THEN DEALLOCATE(InputFileData%TwSSM2Sh) ENDIF -IF (ALLOCATED(InputFileData%TwGJStif)) THEN - DEALLOCATE(InputFileData%TwGJStif) -ENDIF -IF (ALLOCATED(InputFileData%TwEAStif)) THEN - DEALLOCATE(InputFileData%TwEAStif) -ENDIF -IF (ALLOCATED(InputFileData%TwFAIner)) THEN - DEALLOCATE(InputFileData%TwFAIner) -ENDIF -IF (ALLOCATED(InputFileData%TwSSIner)) THEN - DEALLOCATE(InputFileData%TwSSIner) -ENDIF -IF (ALLOCATED(InputFileData%TwFAcgOf)) THEN - DEALLOCATE(InputFileData%TwFAcgOf) -ENDIF -IF (ALLOCATED(InputFileData%TwSScgOf)) THEN - DEALLOCATE(InputFileData%TwSScgOf) -ENDIF IF (ALLOCATED(InputFileData%BldNd_OutList)) THEN DEALLOCATE(InputFileData%BldNd_OutList) ENDIF @@ -4372,36 +3665,6 @@ SUBROUTINE ED_PackInputFile( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMsg IF ( ALLOCATED(InData%TwSSM2Sh) ) THEN Int_BufSz = Int_BufSz + 2*1 ! TwSSM2Sh upper/lower bounds for each dimension Re_BufSz = Re_BufSz + SIZE(InData%TwSSM2Sh) ! TwSSM2Sh - END IF - Int_BufSz = Int_BufSz + 1 ! TwGJStif allocated yes/no - IF ( ALLOCATED(InData%TwGJStif) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! TwGJStif upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%TwGJStif) ! TwGJStif - END IF - Int_BufSz = Int_BufSz + 1 ! TwEAStif allocated yes/no - IF ( ALLOCATED(InData%TwEAStif) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! TwEAStif upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%TwEAStif) ! TwEAStif - END IF - Int_BufSz = Int_BufSz + 1 ! TwFAIner allocated yes/no - IF ( ALLOCATED(InData%TwFAIner) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! TwFAIner upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%TwFAIner) ! TwFAIner - END IF - Int_BufSz = Int_BufSz + 1 ! TwSSIner allocated yes/no - IF ( ALLOCATED(InData%TwSSIner) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! TwSSIner upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%TwSSIner) ! TwSSIner - END IF - Int_BufSz = Int_BufSz + 1 ! TwFAcgOf allocated yes/no - IF ( ALLOCATED(InData%TwFAcgOf) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! TwFAcgOf upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%TwFAcgOf) ! TwFAcgOf - END IF - Int_BufSz = Int_BufSz + 1 ! TwSScgOf allocated yes/no - IF ( ALLOCATED(InData%TwSScgOf) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! TwSScgOf upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%TwSScgOf) ! TwSScgOf END IF Int_BufSz = Int_BufSz + 1 ! RFrlDOF Int_BufSz = Int_BufSz + 1 ! TFrlDOF @@ -4950,96 +4213,6 @@ SUBROUTINE ED_PackInputFile( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMsg ReKiBuf(Re_Xferred) = InData%TwSSM2Sh(i1) Re_Xferred = Re_Xferred + 1 END DO - END IF - IF ( .NOT. ALLOCATED(InData%TwGJStif) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%TwGJStif,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%TwGJStif,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%TwGJStif,1), UBOUND(InData%TwGJStif,1) - ReKiBuf(Re_Xferred) = InData%TwGJStif(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%TwEAStif) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%TwEAStif,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%TwEAStif,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%TwEAStif,1), UBOUND(InData%TwEAStif,1) - ReKiBuf(Re_Xferred) = InData%TwEAStif(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%TwFAIner) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%TwFAIner,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%TwFAIner,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%TwFAIner,1), UBOUND(InData%TwFAIner,1) - ReKiBuf(Re_Xferred) = InData%TwFAIner(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%TwSSIner) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%TwSSIner,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%TwSSIner,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%TwSSIner,1), UBOUND(InData%TwSSIner,1) - ReKiBuf(Re_Xferred) = InData%TwSSIner(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%TwFAcgOf) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%TwFAcgOf,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%TwFAcgOf,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%TwFAcgOf,1), UBOUND(InData%TwFAcgOf,1) - ReKiBuf(Re_Xferred) = InData%TwFAcgOf(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%TwSScgOf) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%TwSScgOf,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%TwSScgOf,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%TwSScgOf,1), UBOUND(InData%TwSScgOf,1) - ReKiBuf(Re_Xferred) = InData%TwSScgOf(i1) - Re_Xferred = Re_Xferred + 1 - END DO END IF IntKiBuf(Int_Xferred) = TRANSFER(InData%RFrlDOF, IntKiBuf(1)) Int_Xferred = Int_Xferred + 1 @@ -5738,114 +4911,6 @@ SUBROUTINE ED_UnPackInputFile( ReKiBuf, DbKiBuf, IntKiBuf, Outdata, ErrStat, Err OutData%TwSSM2Sh(i1) = ReKiBuf(Re_Xferred) Re_Xferred = Re_Xferred + 1 END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! TwGJStif not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%TwGJStif)) DEALLOCATE(OutData%TwGJStif) - ALLOCATE(OutData%TwGJStif(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%TwGJStif.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%TwGJStif,1), UBOUND(OutData%TwGJStif,1) - OutData%TwGJStif(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! TwEAStif not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%TwEAStif)) DEALLOCATE(OutData%TwEAStif) - ALLOCATE(OutData%TwEAStif(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%TwEAStif.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%TwEAStif,1), UBOUND(OutData%TwEAStif,1) - OutData%TwEAStif(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! TwFAIner not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%TwFAIner)) DEALLOCATE(OutData%TwFAIner) - ALLOCATE(OutData%TwFAIner(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%TwFAIner.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%TwFAIner,1), UBOUND(OutData%TwFAIner,1) - OutData%TwFAIner(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! TwSSIner not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%TwSSIner)) DEALLOCATE(OutData%TwSSIner) - ALLOCATE(OutData%TwSSIner(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%TwSSIner.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%TwSSIner,1), UBOUND(OutData%TwSSIner,1) - OutData%TwSSIner(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! TwFAcgOf not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%TwFAcgOf)) DEALLOCATE(OutData%TwFAcgOf) - ALLOCATE(OutData%TwFAcgOf(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%TwFAcgOf.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%TwFAcgOf,1), UBOUND(OutData%TwFAcgOf,1) - OutData%TwFAcgOf(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! TwSScgOf not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%TwSScgOf)) DEALLOCATE(OutData%TwSScgOf) - ALLOCATE(OutData%TwSScgOf(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%TwSScgOf.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%TwSScgOf,1), UBOUND(OutData%TwSScgOf,1) - OutData%TwSScgOf(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO END IF OutData%RFrlDOF = TRANSFER(IntKiBuf(Int_Xferred), OutData%RFrlDOF) Int_Xferred = Int_Xferred + 1 @@ -16700,54 +15765,6 @@ SUBROUTINE ED_CopyParam( SrcParamData, DstParamData, CtrlCode, ErrStat, ErrMsg ) ENDIF DstParamData%TTopNode = SrcParamData%TTopNode DstParamData%TwrNodes = SrcParamData%TwrNodes -IF (ALLOCATED(SrcParamData%InerTFA)) THEN - i1_l = LBOUND(SrcParamData%InerTFA,1) - i1_u = UBOUND(SrcParamData%InerTFA,1) - IF (.NOT. ALLOCATED(DstParamData%InerTFA)) THEN - ALLOCATE(DstParamData%InerTFA(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%InerTFA.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstParamData%InerTFA = SrcParamData%InerTFA -ENDIF -IF (ALLOCATED(SrcParamData%InerTSS)) THEN - i1_l = LBOUND(SrcParamData%InerTSS,1) - i1_u = UBOUND(SrcParamData%InerTSS,1) - IF (.NOT. ALLOCATED(DstParamData%InerTSS)) THEN - ALLOCATE(DstParamData%InerTSS(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%InerTSS.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstParamData%InerTSS = SrcParamData%InerTSS -ENDIF -IF (ALLOCATED(SrcParamData%StiffTGJ)) THEN - i1_l = LBOUND(SrcParamData%StiffTGJ,1) - i1_u = UBOUND(SrcParamData%StiffTGJ,1) - IF (.NOT. ALLOCATED(DstParamData%StiffTGJ)) THEN - ALLOCATE(DstParamData%StiffTGJ(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%StiffTGJ.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstParamData%StiffTGJ = SrcParamData%StiffTGJ -ENDIF -IF (ALLOCATED(SrcParamData%StiffTEA)) THEN - i1_l = LBOUND(SrcParamData%StiffTEA,1) - i1_u = UBOUND(SrcParamData%StiffTEA,1) - IF (.NOT. ALLOCATED(DstParamData%StiffTEA)) THEN - ALLOCATE(DstParamData%StiffTEA(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%StiffTEA.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstParamData%StiffTEA = SrcParamData%StiffTEA -ENDIF IF (ALLOCATED(SrcParamData%StiffTFA)) THEN i1_l = LBOUND(SrcParamData%StiffTFA,1) i1_u = UBOUND(SrcParamData%StiffTFA,1) @@ -16759,30 +15776,6 @@ SUBROUTINE ED_CopyParam( SrcParamData, DstParamData, CtrlCode, ErrStat, ErrMsg ) END IF END IF DstParamData%StiffTFA = SrcParamData%StiffTFA -ENDIF -IF (ALLOCATED(SrcParamData%cgOffTFA)) THEN - i1_l = LBOUND(SrcParamData%cgOffTFA,1) - i1_u = UBOUND(SrcParamData%cgOffTFA,1) - IF (.NOT. ALLOCATED(DstParamData%cgOffTFA)) THEN - ALLOCATE(DstParamData%cgOffTFA(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%cgOffTFA.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstParamData%cgOffTFA = SrcParamData%cgOffTFA -ENDIF -IF (ALLOCATED(SrcParamData%cgOffTSS)) THEN - i1_l = LBOUND(SrcParamData%cgOffTSS,1) - i1_u = UBOUND(SrcParamData%cgOffTSS,1) - IF (.NOT. ALLOCATED(DstParamData%cgOffTSS)) THEN - ALLOCATE(DstParamData%cgOffTSS(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%cgOffTSS.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstParamData%cgOffTSS = SrcParamData%cgOffTSS ENDIF DstParamData%AtfaIner = SrcParamData%AtfaIner IF (ALLOCATED(SrcParamData%BldCG)) THEN @@ -16911,20 +15904,6 @@ SUBROUTINE ED_CopyParam( SrcParamData, DstParamData, CtrlCode, ErrStat, ErrMsg ) END IF DstParamData%AxRedBld = SrcParamData%AxRedBld ENDIF -IF (ALLOCATED(SrcParamData%BAlpha)) THEN - i1_l = LBOUND(SrcParamData%BAlpha,1) - i1_u = UBOUND(SrcParamData%BAlpha,1) - i2_l = LBOUND(SrcParamData%BAlpha,2) - i2_u = UBOUND(SrcParamData%BAlpha,2) - IF (.NOT. ALLOCATED(DstParamData%BAlpha)) THEN - ALLOCATE(DstParamData%BAlpha(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%BAlpha.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstParamData%BAlpha = SrcParamData%BAlpha -ENDIF IF (ALLOCATED(SrcParamData%BldEDamp)) THEN i1_l = LBOUND(SrcParamData%BldEDamp,1) i1_u = UBOUND(SrcParamData%BldEDamp,1) @@ -16998,34 +15977,6 @@ SUBROUTINE ED_CopyParam( SrcParamData, DstParamData, CtrlCode, ErrStat, ErrMsg ) END IF DstParamData%CBF = SrcParamData%CBF ENDIF -IF (ALLOCATED(SrcParamData%cgOffBEdg)) THEN - i1_l = LBOUND(SrcParamData%cgOffBEdg,1) - i1_u = UBOUND(SrcParamData%cgOffBEdg,1) - i2_l = LBOUND(SrcParamData%cgOffBEdg,2) - i2_u = UBOUND(SrcParamData%cgOffBEdg,2) - IF (.NOT. ALLOCATED(DstParamData%cgOffBEdg)) THEN - ALLOCATE(DstParamData%cgOffBEdg(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%cgOffBEdg.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstParamData%cgOffBEdg = SrcParamData%cgOffBEdg -ENDIF -IF (ALLOCATED(SrcParamData%cgOffBFlp)) THEN - i1_l = LBOUND(SrcParamData%cgOffBFlp,1) - i1_u = UBOUND(SrcParamData%cgOffBFlp,1) - i2_l = LBOUND(SrcParamData%cgOffBFlp,2) - i2_u = UBOUND(SrcParamData%cgOffBFlp,2) - IF (.NOT. ALLOCATED(DstParamData%cgOffBFlp)) THEN - ALLOCATE(DstParamData%cgOffBFlp(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%cgOffBFlp.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstParamData%cgOffBFlp = SrcParamData%cgOffBFlp -ENDIF IF (ALLOCATED(SrcParamData%Chord)) THEN i1_l = LBOUND(SrcParamData%Chord,1) i1_u = UBOUND(SrcParamData%Chord,1) @@ -17064,75 +16015,19 @@ SUBROUTINE ED_CopyParam( SrcParamData, DstParamData, CtrlCode, ErrStat, ErrMsg ) END IF DstParamData%DRNodes = SrcParamData%DRNodes ENDIF -IF (ALLOCATED(SrcParamData%EAOffBEdg)) THEN - i1_l = LBOUND(SrcParamData%EAOffBEdg,1) - i1_u = UBOUND(SrcParamData%EAOffBEdg,1) - i2_l = LBOUND(SrcParamData%EAOffBEdg,2) - i2_u = UBOUND(SrcParamData%EAOffBEdg,2) - IF (.NOT. ALLOCATED(DstParamData%EAOffBEdg)) THEN - ALLOCATE(DstParamData%EAOffBEdg(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%EAOffBEdg.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstParamData%EAOffBEdg = SrcParamData%EAOffBEdg -ENDIF -IF (ALLOCATED(SrcParamData%EAOffBFlp)) THEN - i1_l = LBOUND(SrcParamData%EAOffBFlp,1) - i1_u = UBOUND(SrcParamData%EAOffBFlp,1) - i2_l = LBOUND(SrcParamData%EAOffBFlp,2) - i2_u = UBOUND(SrcParamData%EAOffBFlp,2) - IF (.NOT. ALLOCATED(DstParamData%EAOffBFlp)) THEN - ALLOCATE(DstParamData%EAOffBFlp(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%EAOffBFlp.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstParamData%EAOffBFlp = SrcParamData%EAOffBFlp -ENDIF IF (ALLOCATED(SrcParamData%FStTunr)) THEN i1_l = LBOUND(SrcParamData%FStTunr,1) i1_u = UBOUND(SrcParamData%FStTunr,1) i2_l = LBOUND(SrcParamData%FStTunr,2) - i2_u = UBOUND(SrcParamData%FStTunr,2) - IF (.NOT. ALLOCATED(DstParamData%FStTunr)) THEN - ALLOCATE(DstParamData%FStTunr(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%FStTunr.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstParamData%FStTunr = SrcParamData%FStTunr -ENDIF -IF (ALLOCATED(SrcParamData%InerBEdg)) THEN - i1_l = LBOUND(SrcParamData%InerBEdg,1) - i1_u = UBOUND(SrcParamData%InerBEdg,1) - i2_l = LBOUND(SrcParamData%InerBEdg,2) - i2_u = UBOUND(SrcParamData%InerBEdg,2) - IF (.NOT. ALLOCATED(DstParamData%InerBEdg)) THEN - ALLOCATE(DstParamData%InerBEdg(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%InerBEdg.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstParamData%InerBEdg = SrcParamData%InerBEdg -ENDIF -IF (ALLOCATED(SrcParamData%InerBFlp)) THEN - i1_l = LBOUND(SrcParamData%InerBFlp,1) - i1_u = UBOUND(SrcParamData%InerBFlp,1) - i2_l = LBOUND(SrcParamData%InerBFlp,2) - i2_u = UBOUND(SrcParamData%InerBFlp,2) - IF (.NOT. ALLOCATED(DstParamData%InerBFlp)) THEN - ALLOCATE(DstParamData%InerBFlp(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) + i2_u = UBOUND(SrcParamData%FStTunr,2) + IF (.NOT. ALLOCATED(DstParamData%FStTunr)) THEN + ALLOCATE(DstParamData%FStTunr(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%InerBFlp.', ErrStat, ErrMsg,RoutineName) + CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%FStTunr.', ErrStat, ErrMsg,RoutineName) RETURN END IF END IF - DstParamData%InerBFlp = SrcParamData%InerBFlp + DstParamData%FStTunr = SrcParamData%FStTunr ENDIF IF (ALLOCATED(SrcParamData%KBE)) THEN i1_l = LBOUND(SrcParamData%KBE,1) @@ -17180,34 +16075,6 @@ SUBROUTINE ED_CopyParam( SrcParamData, DstParamData, CtrlCode, ErrStat, ErrMsg ) END IF DstParamData%MassB = SrcParamData%MassB ENDIF -IF (ALLOCATED(SrcParamData%RefAxisxb)) THEN - i1_l = LBOUND(SrcParamData%RefAxisxb,1) - i1_u = UBOUND(SrcParamData%RefAxisxb,1) - i2_l = LBOUND(SrcParamData%RefAxisxb,2) - i2_u = UBOUND(SrcParamData%RefAxisxb,2) - IF (.NOT. ALLOCATED(DstParamData%RefAxisxb)) THEN - ALLOCATE(DstParamData%RefAxisxb(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%RefAxisxb.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstParamData%RefAxisxb = SrcParamData%RefAxisxb -ENDIF -IF (ALLOCATED(SrcParamData%RefAxisyb)) THEN - i1_l = LBOUND(SrcParamData%RefAxisyb,1) - i1_u = UBOUND(SrcParamData%RefAxisyb,1) - i2_l = LBOUND(SrcParamData%RefAxisyb,2) - i2_u = UBOUND(SrcParamData%RefAxisyb,2) - IF (.NOT. ALLOCATED(DstParamData%RefAxisyb)) THEN - ALLOCATE(DstParamData%RefAxisyb(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%RefAxisyb.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstParamData%RefAxisyb = SrcParamData%RefAxisyb -ENDIF IF (ALLOCATED(SrcParamData%RNodes)) THEN i1_l = LBOUND(SrcParamData%RNodes,1) i1_u = UBOUND(SrcParamData%RNodes,1) @@ -17286,20 +16153,6 @@ SUBROUTINE ED_CopyParam( SrcParamData, DstParamData, CtrlCode, ErrStat, ErrMsg ) END IF DstParamData%StiffBE = SrcParamData%StiffBE ENDIF -IF (ALLOCATED(SrcParamData%StiffBEA)) THEN - i1_l = LBOUND(SrcParamData%StiffBEA,1) - i1_u = UBOUND(SrcParamData%StiffBEA,1) - i2_l = LBOUND(SrcParamData%StiffBEA,2) - i2_u = UBOUND(SrcParamData%StiffBEA,2) - IF (.NOT. ALLOCATED(DstParamData%StiffBEA)) THEN - ALLOCATE(DstParamData%StiffBEA(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%StiffBEA.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstParamData%StiffBEA = SrcParamData%StiffBEA -ENDIF IF (ALLOCATED(SrcParamData%StiffBF)) THEN i1_l = LBOUND(SrcParamData%StiffBF,1) i1_u = UBOUND(SrcParamData%StiffBF,1) @@ -17314,20 +16167,6 @@ SUBROUTINE ED_CopyParam( SrcParamData, DstParamData, CtrlCode, ErrStat, ErrMsg ) END IF DstParamData%StiffBF = SrcParamData%StiffBF ENDIF -IF (ALLOCATED(SrcParamData%StiffBGJ)) THEN - i1_l = LBOUND(SrcParamData%StiffBGJ,1) - i1_u = UBOUND(SrcParamData%StiffBGJ,1) - i2_l = LBOUND(SrcParamData%StiffBGJ,2) - i2_u = UBOUND(SrcParamData%StiffBGJ,2) - IF (.NOT. ALLOCATED(DstParamData%StiffBGJ)) THEN - ALLOCATE(DstParamData%StiffBGJ(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%StiffBGJ.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - END IF - DstParamData%StiffBGJ = SrcParamData%StiffBGJ -ENDIF IF (ALLOCATED(SrcParamData%SThetaS)) THEN i1_l = LBOUND(SrcParamData%SThetaS,1) i1_u = UBOUND(SrcParamData%SThetaS,1) @@ -17658,27 +16497,9 @@ SUBROUTINE ED_DestroyParam( ParamData, ErrStat, ErrMsg, DEALLOCATEpointers ) IF (ALLOCATED(ParamData%TwrSSSF)) THEN DEALLOCATE(ParamData%TwrSSSF) ENDIF -IF (ALLOCATED(ParamData%InerTFA)) THEN - DEALLOCATE(ParamData%InerTFA) -ENDIF -IF (ALLOCATED(ParamData%InerTSS)) THEN - DEALLOCATE(ParamData%InerTSS) -ENDIF -IF (ALLOCATED(ParamData%StiffTGJ)) THEN - DEALLOCATE(ParamData%StiffTGJ) -ENDIF -IF (ALLOCATED(ParamData%StiffTEA)) THEN - DEALLOCATE(ParamData%StiffTEA) -ENDIF IF (ALLOCATED(ParamData%StiffTFA)) THEN DEALLOCATE(ParamData%StiffTFA) ENDIF -IF (ALLOCATED(ParamData%cgOffTFA)) THEN - DEALLOCATE(ParamData%cgOffTFA) -ENDIF -IF (ALLOCATED(ParamData%cgOffTSS)) THEN - DEALLOCATE(ParamData%cgOffTSS) -ENDIF IF (ALLOCATED(ParamData%BldCG)) THEN DEALLOCATE(ParamData%BldCG) ENDIF @@ -17703,9 +16524,6 @@ SUBROUTINE ED_DestroyParam( ParamData, ErrStat, ErrMsg, DEALLOCATEpointers ) IF (ALLOCATED(ParamData%AxRedBld)) THEN DEALLOCATE(ParamData%AxRedBld) ENDIF -IF (ALLOCATED(ParamData%BAlpha)) THEN - DEALLOCATE(ParamData%BAlpha) -ENDIF IF (ALLOCATED(ParamData%BldEDamp)) THEN DEALLOCATE(ParamData%BldEDamp) ENDIF @@ -17721,12 +16539,6 @@ SUBROUTINE ED_DestroyParam( ParamData, ErrStat, ErrMsg, DEALLOCATEpointers ) IF (ALLOCATED(ParamData%CBF)) THEN DEALLOCATE(ParamData%CBF) ENDIF -IF (ALLOCATED(ParamData%cgOffBEdg)) THEN - DEALLOCATE(ParamData%cgOffBEdg) -ENDIF -IF (ALLOCATED(ParamData%cgOffBFlp)) THEN - DEALLOCATE(ParamData%cgOffBFlp) -ENDIF IF (ALLOCATED(ParamData%Chord)) THEN DEALLOCATE(ParamData%Chord) ENDIF @@ -17736,21 +16548,9 @@ SUBROUTINE ED_DestroyParam( ParamData, ErrStat, ErrMsg, DEALLOCATEpointers ) IF (ALLOCATED(ParamData%DRNodes)) THEN DEALLOCATE(ParamData%DRNodes) ENDIF -IF (ALLOCATED(ParamData%EAOffBEdg)) THEN - DEALLOCATE(ParamData%EAOffBEdg) -ENDIF -IF (ALLOCATED(ParamData%EAOffBFlp)) THEN - DEALLOCATE(ParamData%EAOffBFlp) -ENDIF IF (ALLOCATED(ParamData%FStTunr)) THEN DEALLOCATE(ParamData%FStTunr) ENDIF -IF (ALLOCATED(ParamData%InerBEdg)) THEN - DEALLOCATE(ParamData%InerBEdg) -ENDIF -IF (ALLOCATED(ParamData%InerBFlp)) THEN - DEALLOCATE(ParamData%InerBFlp) -ENDIF IF (ALLOCATED(ParamData%KBE)) THEN DEALLOCATE(ParamData%KBE) ENDIF @@ -17760,12 +16560,6 @@ SUBROUTINE ED_DestroyParam( ParamData, ErrStat, ErrMsg, DEALLOCATEpointers ) IF (ALLOCATED(ParamData%MassB)) THEN DEALLOCATE(ParamData%MassB) ENDIF -IF (ALLOCATED(ParamData%RefAxisxb)) THEN - DEALLOCATE(ParamData%RefAxisxb) -ENDIF -IF (ALLOCATED(ParamData%RefAxisyb)) THEN - DEALLOCATE(ParamData%RefAxisyb) -ENDIF IF (ALLOCATED(ParamData%RNodes)) THEN DEALLOCATE(ParamData%RNodes) ENDIF @@ -17784,15 +16578,9 @@ SUBROUTINE ED_DestroyParam( ParamData, ErrStat, ErrMsg, DEALLOCATEpointers ) IF (ALLOCATED(ParamData%StiffBE)) THEN DEALLOCATE(ParamData%StiffBE) ENDIF -IF (ALLOCATED(ParamData%StiffBEA)) THEN - DEALLOCATE(ParamData%StiffBEA) -ENDIF IF (ALLOCATED(ParamData%StiffBF)) THEN DEALLOCATE(ParamData%StiffBF) ENDIF -IF (ALLOCATED(ParamData%StiffBGJ)) THEN - DEALLOCATE(ParamData%StiffBGJ) -ENDIF IF (ALLOCATED(ParamData%SThetaS)) THEN DEALLOCATE(ParamData%SThetaS) ENDIF @@ -18075,40 +16863,10 @@ SUBROUTINE ED_PackParam( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMsg, Si END IF Int_BufSz = Int_BufSz + 1 ! TTopNode Int_BufSz = Int_BufSz + 1 ! TwrNodes - Int_BufSz = Int_BufSz + 1 ! InerTFA allocated yes/no - IF ( ALLOCATED(InData%InerTFA) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! InerTFA upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%InerTFA) ! InerTFA - END IF - Int_BufSz = Int_BufSz + 1 ! InerTSS allocated yes/no - IF ( ALLOCATED(InData%InerTSS) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! InerTSS upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%InerTSS) ! InerTSS - END IF - Int_BufSz = Int_BufSz + 1 ! StiffTGJ allocated yes/no - IF ( ALLOCATED(InData%StiffTGJ) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! StiffTGJ upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%StiffTGJ) ! StiffTGJ - END IF - Int_BufSz = Int_BufSz + 1 ! StiffTEA allocated yes/no - IF ( ALLOCATED(InData%StiffTEA) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! StiffTEA upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%StiffTEA) ! StiffTEA - END IF Int_BufSz = Int_BufSz + 1 ! StiffTFA allocated yes/no IF ( ALLOCATED(InData%StiffTFA) ) THEN Int_BufSz = Int_BufSz + 2*1 ! StiffTFA upper/lower bounds for each dimension Re_BufSz = Re_BufSz + SIZE(InData%StiffTFA) ! StiffTFA - END IF - Int_BufSz = Int_BufSz + 1 ! cgOffTFA allocated yes/no - IF ( ALLOCATED(InData%cgOffTFA) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! cgOffTFA upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%cgOffTFA) ! cgOffTFA - END IF - Int_BufSz = Int_BufSz + 1 ! cgOffTSS allocated yes/no - IF ( ALLOCATED(InData%cgOffTSS) ) THEN - Int_BufSz = Int_BufSz + 2*1 ! cgOffTSS upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%cgOffTSS) ! cgOffTSS END IF Re_BufSz = Re_BufSz + 1 ! AtfaIner Int_BufSz = Int_BufSz + 1 ! BldCG allocated yes/no @@ -18173,11 +16931,6 @@ SUBROUTINE ED_PackParam( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMsg, Si Int_BufSz = Int_BufSz + 2*4 ! AxRedBld upper/lower bounds for each dimension Re_BufSz = Re_BufSz + SIZE(InData%AxRedBld) ! AxRedBld END IF - Int_BufSz = Int_BufSz + 1 ! BAlpha allocated yes/no - IF ( ALLOCATED(InData%BAlpha) ) THEN - Int_BufSz = Int_BufSz + 2*2 ! BAlpha upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%BAlpha) ! BAlpha - END IF Int_BufSz = Int_BufSz + 1 ! BldEDamp allocated yes/no IF ( ALLOCATED(InData%BldEDamp) ) THEN Int_BufSz = Int_BufSz + 2*2 ! BldEDamp upper/lower bounds for each dimension @@ -18204,16 +16957,6 @@ SUBROUTINE ED_PackParam( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMsg, Si Int_BufSz = Int_BufSz + 2*3 ! CBF upper/lower bounds for each dimension Re_BufSz = Re_BufSz + SIZE(InData%CBF) ! CBF END IF - Int_BufSz = Int_BufSz + 1 ! cgOffBEdg allocated yes/no - IF ( ALLOCATED(InData%cgOffBEdg) ) THEN - Int_BufSz = Int_BufSz + 2*2 ! cgOffBEdg upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%cgOffBEdg) ! cgOffBEdg - END IF - Int_BufSz = Int_BufSz + 1 ! cgOffBFlp allocated yes/no - IF ( ALLOCATED(InData%cgOffBFlp) ) THEN - Int_BufSz = Int_BufSz + 2*2 ! cgOffBFlp upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%cgOffBFlp) ! cgOffBFlp - END IF Int_BufSz = Int_BufSz + 1 ! Chord allocated yes/no IF ( ALLOCATED(InData%Chord) ) THEN Int_BufSz = Int_BufSz + 2*1 ! Chord upper/lower bounds for each dimension @@ -18229,31 +16972,11 @@ SUBROUTINE ED_PackParam( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMsg, Si Int_BufSz = Int_BufSz + 2*1 ! DRNodes upper/lower bounds for each dimension Re_BufSz = Re_BufSz + SIZE(InData%DRNodes) ! DRNodes END IF - Int_BufSz = Int_BufSz + 1 ! EAOffBEdg allocated yes/no - IF ( ALLOCATED(InData%EAOffBEdg) ) THEN - Int_BufSz = Int_BufSz + 2*2 ! EAOffBEdg upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%EAOffBEdg) ! EAOffBEdg - END IF - Int_BufSz = Int_BufSz + 1 ! EAOffBFlp allocated yes/no - IF ( ALLOCATED(InData%EAOffBFlp) ) THEN - Int_BufSz = Int_BufSz + 2*2 ! EAOffBFlp upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%EAOffBFlp) ! EAOffBFlp - END IF Int_BufSz = Int_BufSz + 1 ! FStTunr allocated yes/no IF ( ALLOCATED(InData%FStTunr) ) THEN Int_BufSz = Int_BufSz + 2*2 ! FStTunr upper/lower bounds for each dimension Re_BufSz = Re_BufSz + SIZE(InData%FStTunr) ! FStTunr END IF - Int_BufSz = Int_BufSz + 1 ! InerBEdg allocated yes/no - IF ( ALLOCATED(InData%InerBEdg) ) THEN - Int_BufSz = Int_BufSz + 2*2 ! InerBEdg upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%InerBEdg) ! InerBEdg - END IF - Int_BufSz = Int_BufSz + 1 ! InerBFlp allocated yes/no - IF ( ALLOCATED(InData%InerBFlp) ) THEN - Int_BufSz = Int_BufSz + 2*2 ! InerBFlp upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%InerBFlp) ! InerBFlp - END IF Int_BufSz = Int_BufSz + 1 ! KBE allocated yes/no IF ( ALLOCATED(InData%KBE) ) THEN Int_BufSz = Int_BufSz + 2*3 ! KBE upper/lower bounds for each dimension @@ -18269,16 +16992,6 @@ SUBROUTINE ED_PackParam( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMsg, Si Int_BufSz = Int_BufSz + 2*2 ! MassB upper/lower bounds for each dimension Re_BufSz = Re_BufSz + SIZE(InData%MassB) ! MassB END IF - Int_BufSz = Int_BufSz + 1 ! RefAxisxb allocated yes/no - IF ( ALLOCATED(InData%RefAxisxb) ) THEN - Int_BufSz = Int_BufSz + 2*2 ! RefAxisxb upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%RefAxisxb) ! RefAxisxb - END IF - Int_BufSz = Int_BufSz + 1 ! RefAxisyb allocated yes/no - IF ( ALLOCATED(InData%RefAxisyb) ) THEN - Int_BufSz = Int_BufSz + 2*2 ! RefAxisyb upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%RefAxisyb) ! RefAxisyb - END IF Int_BufSz = Int_BufSz + 1 ! RNodes allocated yes/no IF ( ALLOCATED(InData%RNodes) ) THEN Int_BufSz = Int_BufSz + 2*1 ! RNodes upper/lower bounds for each dimension @@ -18309,21 +17022,11 @@ SUBROUTINE ED_PackParam( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMsg, Si Int_BufSz = Int_BufSz + 2*2 ! StiffBE upper/lower bounds for each dimension Re_BufSz = Re_BufSz + SIZE(InData%StiffBE) ! StiffBE END IF - Int_BufSz = Int_BufSz + 1 ! StiffBEA allocated yes/no - IF ( ALLOCATED(InData%StiffBEA) ) THEN - Int_BufSz = Int_BufSz + 2*2 ! StiffBEA upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%StiffBEA) ! StiffBEA - END IF Int_BufSz = Int_BufSz + 1 ! StiffBF allocated yes/no IF ( ALLOCATED(InData%StiffBF) ) THEN Int_BufSz = Int_BufSz + 2*2 ! StiffBF upper/lower bounds for each dimension Re_BufSz = Re_BufSz + SIZE(InData%StiffBF) ! StiffBF END IF - Int_BufSz = Int_BufSz + 1 ! StiffBGJ allocated yes/no - IF ( ALLOCATED(InData%StiffBGJ) ) THEN - Int_BufSz = Int_BufSz + 2*2 ! StiffBGJ upper/lower bounds for each dimension - Re_BufSz = Re_BufSz + SIZE(InData%StiffBGJ) ! StiffBGJ - END IF Int_BufSz = Int_BufSz + 1 ! SThetaS allocated yes/no IF ( ALLOCATED(InData%SThetaS) ) THEN Int_BufSz = Int_BufSz + 2*2 ! SThetaS upper/lower bounds for each dimension @@ -19021,66 +17724,6 @@ SUBROUTINE ED_PackParam( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMsg, Si Int_Xferred = Int_Xferred + 1 IntKiBuf(Int_Xferred) = InData%TwrNodes Int_Xferred = Int_Xferred + 1 - IF ( .NOT. ALLOCATED(InData%InerTFA) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%InerTFA,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%InerTFA,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%InerTFA,1), UBOUND(InData%InerTFA,1) - ReKiBuf(Re_Xferred) = InData%InerTFA(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%InerTSS) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%InerTSS,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%InerTSS,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%InerTSS,1), UBOUND(InData%InerTSS,1) - ReKiBuf(Re_Xferred) = InData%InerTSS(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%StiffTGJ) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%StiffTGJ,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%StiffTGJ,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%StiffTGJ,1), UBOUND(InData%StiffTGJ,1) - ReKiBuf(Re_Xferred) = InData%StiffTGJ(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%StiffTEA) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%StiffTEA,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%StiffTEA,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%StiffTEA,1), UBOUND(InData%StiffTEA,1) - ReKiBuf(Re_Xferred) = InData%StiffTEA(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF IF ( .NOT. ALLOCATED(InData%StiffTFA) ) THEN IntKiBuf( Int_Xferred ) = 0 Int_Xferred = Int_Xferred + 1 @@ -19095,36 +17738,6 @@ SUBROUTINE ED_PackParam( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMsg, Si ReKiBuf(Re_Xferred) = InData%StiffTFA(i1) Re_Xferred = Re_Xferred + 1 END DO - END IF - IF ( .NOT. ALLOCATED(InData%cgOffTFA) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%cgOffTFA,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%cgOffTFA,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%cgOffTFA,1), UBOUND(InData%cgOffTFA,1) - ReKiBuf(Re_Xferred) = InData%cgOffTFA(i1) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( .NOT. ALLOCATED(InData%cgOffTSS) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%cgOffTSS,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%cgOffTSS,1) - Int_Xferred = Int_Xferred + 2 - - DO i1 = LBOUND(InData%cgOffTSS,1), UBOUND(InData%cgOffTSS,1) - ReKiBuf(Re_Xferred) = InData%cgOffTSS(i1) - Re_Xferred = Re_Xferred + 1 - END DO END IF ReKiBuf(Re_Xferred) = InData%AtfaIner Re_Xferred = Re_Xferred + 1 @@ -19312,26 +17925,6 @@ SUBROUTINE ED_PackParam( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMsg, Si END DO END DO END IF - IF ( .NOT. ALLOCATED(InData%BAlpha) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%BAlpha,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%BAlpha,1) - Int_Xferred = Int_Xferred + 2 - IntKiBuf( Int_Xferred ) = LBOUND(InData%BAlpha,2) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%BAlpha,2) - Int_Xferred = Int_Xferred + 2 - - DO i2 = LBOUND(InData%BAlpha,2), UBOUND(InData%BAlpha,2) - DO i1 = LBOUND(InData%BAlpha,1), UBOUND(InData%BAlpha,1) - ReKiBuf(Re_Xferred) = InData%BAlpha(i1,i2) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF IF ( .NOT. ALLOCATED(InData%BldEDamp) ) THEN IntKiBuf( Int_Xferred ) = 0 Int_Xferred = Int_Xferred + 1 @@ -19439,46 +18032,6 @@ SUBROUTINE ED_PackParam( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMsg, Si END DO END DO END IF - IF ( .NOT. ALLOCATED(InData%cgOffBEdg) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%cgOffBEdg,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%cgOffBEdg,1) - Int_Xferred = Int_Xferred + 2 - IntKiBuf( Int_Xferred ) = LBOUND(InData%cgOffBEdg,2) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%cgOffBEdg,2) - Int_Xferred = Int_Xferred + 2 - - DO i2 = LBOUND(InData%cgOffBEdg,2), UBOUND(InData%cgOffBEdg,2) - DO i1 = LBOUND(InData%cgOffBEdg,1), UBOUND(InData%cgOffBEdg,1) - ReKiBuf(Re_Xferred) = InData%cgOffBEdg(i1,i2) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF - IF ( .NOT. ALLOCATED(InData%cgOffBFlp) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%cgOffBFlp,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%cgOffBFlp,1) - Int_Xferred = Int_Xferred + 2 - IntKiBuf( Int_Xferred ) = LBOUND(InData%cgOffBFlp,2) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%cgOffBFlp,2) - Int_Xferred = Int_Xferred + 2 - - DO i2 = LBOUND(InData%cgOffBFlp,2), UBOUND(InData%cgOffBFlp,2) - DO i1 = LBOUND(InData%cgOffBFlp,1), UBOUND(InData%cgOffBFlp,1) - ReKiBuf(Re_Xferred) = InData%cgOffBFlp(i1,i2) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF IF ( .NOT. ALLOCATED(InData%Chord) ) THEN IntKiBuf( Int_Xferred ) = 0 Int_Xferred = Int_Xferred + 1 @@ -19529,46 +18082,6 @@ SUBROUTINE ED_PackParam( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMsg, Si Re_Xferred = Re_Xferred + 1 END DO END IF - IF ( .NOT. ALLOCATED(InData%EAOffBEdg) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%EAOffBEdg,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%EAOffBEdg,1) - Int_Xferred = Int_Xferred + 2 - IntKiBuf( Int_Xferred ) = LBOUND(InData%EAOffBEdg,2) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%EAOffBEdg,2) - Int_Xferred = Int_Xferred + 2 - - DO i2 = LBOUND(InData%EAOffBEdg,2), UBOUND(InData%EAOffBEdg,2) - DO i1 = LBOUND(InData%EAOffBEdg,1), UBOUND(InData%EAOffBEdg,1) - ReKiBuf(Re_Xferred) = InData%EAOffBEdg(i1,i2) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF - IF ( .NOT. ALLOCATED(InData%EAOffBFlp) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%EAOffBFlp,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%EAOffBFlp,1) - Int_Xferred = Int_Xferred + 2 - IntKiBuf( Int_Xferred ) = LBOUND(InData%EAOffBFlp,2) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%EAOffBFlp,2) - Int_Xferred = Int_Xferred + 2 - - DO i2 = LBOUND(InData%EAOffBFlp,2), UBOUND(InData%EAOffBFlp,2) - DO i1 = LBOUND(InData%EAOffBFlp,1), UBOUND(InData%EAOffBFlp,1) - ReKiBuf(Re_Xferred) = InData%EAOffBFlp(i1,i2) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF IF ( .NOT. ALLOCATED(InData%FStTunr) ) THEN IntKiBuf( Int_Xferred ) = 0 Int_Xferred = Int_Xferred + 1 @@ -19589,46 +18102,6 @@ SUBROUTINE ED_PackParam( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMsg, Si END DO END DO END IF - IF ( .NOT. ALLOCATED(InData%InerBEdg) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%InerBEdg,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%InerBEdg,1) - Int_Xferred = Int_Xferred + 2 - IntKiBuf( Int_Xferred ) = LBOUND(InData%InerBEdg,2) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%InerBEdg,2) - Int_Xferred = Int_Xferred + 2 - - DO i2 = LBOUND(InData%InerBEdg,2), UBOUND(InData%InerBEdg,2) - DO i1 = LBOUND(InData%InerBEdg,1), UBOUND(InData%InerBEdg,1) - ReKiBuf(Re_Xferred) = InData%InerBEdg(i1,i2) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF - IF ( .NOT. ALLOCATED(InData%InerBFlp) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%InerBFlp,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%InerBFlp,1) - Int_Xferred = Int_Xferred + 2 - IntKiBuf( Int_Xferred ) = LBOUND(InData%InerBFlp,2) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%InerBFlp,2) - Int_Xferred = Int_Xferred + 2 - - DO i2 = LBOUND(InData%InerBFlp,2), UBOUND(InData%InerBFlp,2) - DO i1 = LBOUND(InData%InerBFlp,1), UBOUND(InData%InerBFlp,1) - ReKiBuf(Re_Xferred) = InData%InerBFlp(i1,i2) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF IF ( .NOT. ALLOCATED(InData%KBE) ) THEN IntKiBuf( Int_Xferred ) = 0 Int_Xferred = Int_Xferred + 1 @@ -19699,46 +18172,6 @@ SUBROUTINE ED_PackParam( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMsg, Si END DO END DO END IF - IF ( .NOT. ALLOCATED(InData%RefAxisxb) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%RefAxisxb,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%RefAxisxb,1) - Int_Xferred = Int_Xferred + 2 - IntKiBuf( Int_Xferred ) = LBOUND(InData%RefAxisxb,2) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%RefAxisxb,2) - Int_Xferred = Int_Xferred + 2 - - DO i2 = LBOUND(InData%RefAxisxb,2), UBOUND(InData%RefAxisxb,2) - DO i1 = LBOUND(InData%RefAxisxb,1), UBOUND(InData%RefAxisxb,1) - ReKiBuf(Re_Xferred) = InData%RefAxisxb(i1,i2) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF - IF ( .NOT. ALLOCATED(InData%RefAxisyb) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%RefAxisyb,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%RefAxisyb,1) - Int_Xferred = Int_Xferred + 2 - IntKiBuf( Int_Xferred ) = LBOUND(InData%RefAxisyb,2) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%RefAxisyb,2) - Int_Xferred = Int_Xferred + 2 - - DO i2 = LBOUND(InData%RefAxisyb,2), UBOUND(InData%RefAxisyb,2) - DO i1 = LBOUND(InData%RefAxisyb,1), UBOUND(InData%RefAxisyb,1) - ReKiBuf(Re_Xferred) = InData%RefAxisyb(i1,i2) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF IF ( .NOT. ALLOCATED(InData%RNodes) ) THEN IntKiBuf( Int_Xferred ) = 0 Int_Xferred = Int_Xferred + 1 @@ -19844,62 +18277,22 @@ SUBROUTINE ED_PackParam( ReKiBuf, DbKiBuf, IntKiBuf, Indata, ErrStat, ErrMsg, Si END DO END DO END IF - IF ( .NOT. ALLOCATED(InData%StiffBEA) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%StiffBEA,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%StiffBEA,1) - Int_Xferred = Int_Xferred + 2 - IntKiBuf( Int_Xferred ) = LBOUND(InData%StiffBEA,2) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%StiffBEA,2) - Int_Xferred = Int_Xferred + 2 - - DO i2 = LBOUND(InData%StiffBEA,2), UBOUND(InData%StiffBEA,2) - DO i1 = LBOUND(InData%StiffBEA,1), UBOUND(InData%StiffBEA,1) - ReKiBuf(Re_Xferred) = InData%StiffBEA(i1,i2) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF - IF ( .NOT. ALLOCATED(InData%StiffBF) ) THEN - IntKiBuf( Int_Xferred ) = 0 - Int_Xferred = Int_Xferred + 1 - ELSE - IntKiBuf( Int_Xferred ) = 1 - Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%StiffBF,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%StiffBF,1) - Int_Xferred = Int_Xferred + 2 - IntKiBuf( Int_Xferred ) = LBOUND(InData%StiffBF,2) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%StiffBF,2) - Int_Xferred = Int_Xferred + 2 - - DO i2 = LBOUND(InData%StiffBF,2), UBOUND(InData%StiffBF,2) - DO i1 = LBOUND(InData%StiffBF,1), UBOUND(InData%StiffBF,1) - ReKiBuf(Re_Xferred) = InData%StiffBF(i1,i2) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF - IF ( .NOT. ALLOCATED(InData%StiffBGJ) ) THEN + IF ( .NOT. ALLOCATED(InData%StiffBF) ) THEN IntKiBuf( Int_Xferred ) = 0 Int_Xferred = Int_Xferred + 1 ELSE IntKiBuf( Int_Xferred ) = 1 Int_Xferred = Int_Xferred + 1 - IntKiBuf( Int_Xferred ) = LBOUND(InData%StiffBGJ,1) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%StiffBGJ,1) + IntKiBuf( Int_Xferred ) = LBOUND(InData%StiffBF,1) + IntKiBuf( Int_Xferred + 1) = UBOUND(InData%StiffBF,1) Int_Xferred = Int_Xferred + 2 - IntKiBuf( Int_Xferred ) = LBOUND(InData%StiffBGJ,2) - IntKiBuf( Int_Xferred + 1) = UBOUND(InData%StiffBGJ,2) + IntKiBuf( Int_Xferred ) = LBOUND(InData%StiffBF,2) + IntKiBuf( Int_Xferred + 1) = UBOUND(InData%StiffBF,2) Int_Xferred = Int_Xferred + 2 - DO i2 = LBOUND(InData%StiffBGJ,2), UBOUND(InData%StiffBGJ,2) - DO i1 = LBOUND(InData%StiffBGJ,1), UBOUND(InData%StiffBGJ,1) - ReKiBuf(Re_Xferred) = InData%StiffBGJ(i1,i2) + DO i2 = LBOUND(InData%StiffBF,2), UBOUND(InData%StiffBF,2) + DO i1 = LBOUND(InData%StiffBF,1), UBOUND(InData%StiffBF,1) + ReKiBuf(Re_Xferred) = InData%StiffBF(i1,i2) Re_Xferred = Re_Xferred + 1 END DO END DO @@ -20987,78 +19380,6 @@ SUBROUTINE ED_UnPackParam( ReKiBuf, DbKiBuf, IntKiBuf, Outdata, ErrStat, ErrMsg Int_Xferred = Int_Xferred + 1 OutData%TwrNodes = IntKiBuf(Int_Xferred) Int_Xferred = Int_Xferred + 1 - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! InerTFA not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%InerTFA)) DEALLOCATE(OutData%InerTFA) - ALLOCATE(OutData%InerTFA(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%InerTFA.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%InerTFA,1), UBOUND(OutData%InerTFA,1) - OutData%InerTFA(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! InerTSS not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%InerTSS)) DEALLOCATE(OutData%InerTSS) - ALLOCATE(OutData%InerTSS(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%InerTSS.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%InerTSS,1), UBOUND(OutData%InerTSS,1) - OutData%InerTSS(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! StiffTGJ not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%StiffTGJ)) DEALLOCATE(OutData%StiffTGJ) - ALLOCATE(OutData%StiffTGJ(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%StiffTGJ.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%StiffTGJ,1), UBOUND(OutData%StiffTGJ,1) - OutData%StiffTGJ(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! StiffTEA not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%StiffTEA)) DEALLOCATE(OutData%StiffTEA) - ALLOCATE(OutData%StiffTEA(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%StiffTEA.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%StiffTEA,1), UBOUND(OutData%StiffTEA,1) - OutData%StiffTEA(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! StiffTFA not allocated Int_Xferred = Int_Xferred + 1 ELSE @@ -21076,42 +19397,6 @@ SUBROUTINE ED_UnPackParam( ReKiBuf, DbKiBuf, IntKiBuf, Outdata, ErrStat, ErrMsg OutData%StiffTFA(i1) = ReKiBuf(Re_Xferred) Re_Xferred = Re_Xferred + 1 END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! cgOffTFA not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%cgOffTFA)) DEALLOCATE(OutData%cgOffTFA) - ALLOCATE(OutData%cgOffTFA(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%cgOffTFA.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%cgOffTFA,1), UBOUND(OutData%cgOffTFA,1) - OutData%cgOffTFA(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! cgOffTSS not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%cgOffTSS)) DEALLOCATE(OutData%cgOffTSS) - ALLOCATE(OutData%cgOffTSS(i1_l:i1_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%cgOffTSS.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i1 = LBOUND(OutData%cgOffTSS,1), UBOUND(OutData%cgOffTSS,1) - OutData%cgOffTSS(i1) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO END IF OutData%AtfaIner = ReKiBuf(Re_Xferred) Re_Xferred = Re_Xferred + 1 @@ -21323,29 +19608,6 @@ SUBROUTINE ED_UnPackParam( ReKiBuf, DbKiBuf, IntKiBuf, Outdata, ErrStat, ErrMsg END DO END DO END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! BAlpha not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - i2_l = IntKiBuf( Int_Xferred ) - i2_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%BAlpha)) DEALLOCATE(OutData%BAlpha) - ALLOCATE(OutData%BAlpha(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%BAlpha.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i2 = LBOUND(OutData%BAlpha,2), UBOUND(OutData%BAlpha,2) - DO i1 = LBOUND(OutData%BAlpha,1), UBOUND(OutData%BAlpha,1) - OutData%BAlpha(i1,i2) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! BldEDamp not allocated Int_Xferred = Int_Xferred + 1 ELSE @@ -21468,52 +19730,6 @@ SUBROUTINE ED_UnPackParam( ReKiBuf, DbKiBuf, IntKiBuf, Outdata, ErrStat, ErrMsg END DO END DO END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! cgOffBEdg not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - i2_l = IntKiBuf( Int_Xferred ) - i2_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%cgOffBEdg)) DEALLOCATE(OutData%cgOffBEdg) - ALLOCATE(OutData%cgOffBEdg(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%cgOffBEdg.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i2 = LBOUND(OutData%cgOffBEdg,2), UBOUND(OutData%cgOffBEdg,2) - DO i1 = LBOUND(OutData%cgOffBEdg,1), UBOUND(OutData%cgOffBEdg,1) - OutData%cgOffBEdg(i1,i2) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! cgOffBFlp not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - i2_l = IntKiBuf( Int_Xferred ) - i2_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%cgOffBFlp)) DEALLOCATE(OutData%cgOffBFlp) - ALLOCATE(OutData%cgOffBFlp(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%cgOffBFlp.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i2 = LBOUND(OutData%cgOffBFlp,2), UBOUND(OutData%cgOffBFlp,2) - DO i1 = LBOUND(OutData%cgOffBFlp,1), UBOUND(OutData%cgOffBFlp,1) - OutData%cgOffBFlp(i1,i2) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! Chord not allocated Int_Xferred = Int_Xferred + 1 ELSE @@ -21573,52 +19789,6 @@ SUBROUTINE ED_UnPackParam( ReKiBuf, DbKiBuf, IntKiBuf, Outdata, ErrStat, ErrMsg Re_Xferred = Re_Xferred + 1 END DO END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! EAOffBEdg not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - i2_l = IntKiBuf( Int_Xferred ) - i2_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%EAOffBEdg)) DEALLOCATE(OutData%EAOffBEdg) - ALLOCATE(OutData%EAOffBEdg(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%EAOffBEdg.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i2 = LBOUND(OutData%EAOffBEdg,2), UBOUND(OutData%EAOffBEdg,2) - DO i1 = LBOUND(OutData%EAOffBEdg,1), UBOUND(OutData%EAOffBEdg,1) - OutData%EAOffBEdg(i1,i2) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! EAOffBFlp not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - i2_l = IntKiBuf( Int_Xferred ) - i2_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%EAOffBFlp)) DEALLOCATE(OutData%EAOffBFlp) - ALLOCATE(OutData%EAOffBFlp(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%EAOffBFlp.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i2 = LBOUND(OutData%EAOffBFlp,2), UBOUND(OutData%EAOffBFlp,2) - DO i1 = LBOUND(OutData%EAOffBFlp,1), UBOUND(OutData%EAOffBFlp,1) - OutData%EAOffBFlp(i1,i2) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! FStTunr not allocated Int_Xferred = Int_Xferred + 1 ELSE @@ -21642,52 +19812,6 @@ SUBROUTINE ED_UnPackParam( ReKiBuf, DbKiBuf, IntKiBuf, Outdata, ErrStat, ErrMsg END DO END DO END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! InerBEdg not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - i2_l = IntKiBuf( Int_Xferred ) - i2_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%InerBEdg)) DEALLOCATE(OutData%InerBEdg) - ALLOCATE(OutData%InerBEdg(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%InerBEdg.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i2 = LBOUND(OutData%InerBEdg,2), UBOUND(OutData%InerBEdg,2) - DO i1 = LBOUND(OutData%InerBEdg,1), UBOUND(OutData%InerBEdg,1) - OutData%InerBEdg(i1,i2) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! InerBFlp not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - i2_l = IntKiBuf( Int_Xferred ) - i2_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%InerBFlp)) DEALLOCATE(OutData%InerBFlp) - ALLOCATE(OutData%InerBFlp(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%InerBFlp.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i2 = LBOUND(OutData%InerBFlp,2), UBOUND(OutData%InerBFlp,2) - DO i1 = LBOUND(OutData%InerBFlp,1), UBOUND(OutData%InerBFlp,1) - OutData%InerBFlp(i1,i2) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! KBE not allocated Int_Xferred = Int_Xferred + 1 ELSE @@ -21767,52 +19891,6 @@ SUBROUTINE ED_UnPackParam( ReKiBuf, DbKiBuf, IntKiBuf, Outdata, ErrStat, ErrMsg END DO END DO END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! RefAxisxb not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - i2_l = IntKiBuf( Int_Xferred ) - i2_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%RefAxisxb)) DEALLOCATE(OutData%RefAxisxb) - ALLOCATE(OutData%RefAxisxb(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%RefAxisxb.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i2 = LBOUND(OutData%RefAxisxb,2), UBOUND(OutData%RefAxisxb,2) - DO i1 = LBOUND(OutData%RefAxisxb,1), UBOUND(OutData%RefAxisxb,1) - OutData%RefAxisxb(i1,i2) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! RefAxisyb not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - i2_l = IntKiBuf( Int_Xferred ) - i2_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%RefAxisyb)) DEALLOCATE(OutData%RefAxisyb) - ALLOCATE(OutData%RefAxisyb(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%RefAxisyb.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i2 = LBOUND(OutData%RefAxisyb,2), UBOUND(OutData%RefAxisyb,2) - DO i1 = LBOUND(OutData%RefAxisyb,1), UBOUND(OutData%RefAxisyb,1) - OutData%RefAxisyb(i1,i2) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! RNodes not allocated Int_Xferred = Int_Xferred + 1 ELSE @@ -21936,29 +20014,6 @@ SUBROUTINE ED_UnPackParam( ReKiBuf, DbKiBuf, IntKiBuf, Outdata, ErrStat, ErrMsg END DO END DO END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! StiffBEA not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - i2_l = IntKiBuf( Int_Xferred ) - i2_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%StiffBEA)) DEALLOCATE(OutData%StiffBEA) - ALLOCATE(OutData%StiffBEA(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%StiffBEA.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i2 = LBOUND(OutData%StiffBEA,2), UBOUND(OutData%StiffBEA,2) - DO i1 = LBOUND(OutData%StiffBEA,1), UBOUND(OutData%StiffBEA,1) - OutData%StiffBEA(i1,i2) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! StiffBF not allocated Int_Xferred = Int_Xferred + 1 ELSE @@ -21982,29 +20037,6 @@ SUBROUTINE ED_UnPackParam( ReKiBuf, DbKiBuf, IntKiBuf, Outdata, ErrStat, ErrMsg END DO END DO END IF - IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! StiffBGJ not allocated - Int_Xferred = Int_Xferred + 1 - ELSE - Int_Xferred = Int_Xferred + 1 - i1_l = IntKiBuf( Int_Xferred ) - i1_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - i2_l = IntKiBuf( Int_Xferred ) - i2_u = IntKiBuf( Int_Xferred + 1) - Int_Xferred = Int_Xferred + 2 - IF (ALLOCATED(OutData%StiffBGJ)) DEALLOCATE(OutData%StiffBGJ) - ALLOCATE(OutData%StiffBGJ(i1_l:i1_u,i2_l:i2_u),STAT=ErrStat2) - IF (ErrStat2 /= 0) THEN - CALL SetErrStat(ErrID_Fatal, 'Error allocating OutData%StiffBGJ.', ErrStat, ErrMsg,RoutineName) - RETURN - END IF - DO i2 = LBOUND(OutData%StiffBGJ,2), UBOUND(OutData%StiffBGJ,2) - DO i1 = LBOUND(OutData%StiffBGJ,1), UBOUND(OutData%StiffBGJ,1) - OutData%StiffBGJ(i1,i2) = ReKiBuf(Re_Xferred) - Re_Xferred = Re_Xferred + 1 - END DO - END DO - END IF IF ( IntKiBuf( Int_Xferred ) == 0 ) THEN ! SThetaS not allocated Int_Xferred = Int_Xferred + 1 ELSE