diff --git a/modules/extptfm/src/ExtPtfm_MCKF.f90 b/modules/extptfm/src/ExtPtfm_MCKF.f90
index 9676887c1b..86f78e2f35 100644
--- a/modules/extptfm/src/ExtPtfm_MCKF.f90
+++ b/modules/extptfm/src/ExtPtfm_MCKF.f90
@@ -29,7 +29,7 @@
MODULE ExtPtfm_MCKF
USE ExtPtfm_MCKF_Types
- USE ExtPtfm_MCKF_Parameters ! ID_*, N_INPUTS, N_OUTPUTS
+ USE ExtPtfm_MCKF_Parameters ! ID_*
USE NWTC_Library
USE NWTC_LAPACK
@@ -123,7 +123,7 @@ SUBROUTINE ExtPtfm_Init( InitInp, u, p, x, xd, z, OtherState, y, m, dt_gluecode,
p%nTot = -1
p%nCB = -1
- call ReadPrimaryFile(InitInp%InputFile, p, InitInp%RootName, InputFileData, ErrStat, ErrMsg); if(Failed()) return
+ call ReadPrimaryFile(InitInp%InputFile, InitInp, p, InitInp%RootName, InputFileData, ErrStat, ErrMsg); if(Failed()) return
! --- Setting Params from Input file data
p%IntMethod = InputFileData%IntMethod
@@ -132,6 +132,9 @@ SUBROUTINE ExtPtfm_Init( InitInp, u, p, x, xd, z, OtherState, y, m, dt_gluecode,
else
p%EP_DeltaT = InputFileData%DT
endif
+ ! Switch for modeling rigid-body modes
+ p%RBMod = InputFileData%RBMod
+ p%hasRBMode = InputFileData%hasRBMode
! Setting p%OutParam from OutList
call SetOutParam(InputFileData%OutList, InputFileData%NumOuts, p, ErrStat, ErrMsg); if(Failed()) return
! Set the constant state matrices A,B,C,D
@@ -177,19 +180,37 @@ SUBROUTINE ExtPtfm_Init( InitInp, u, p, x, xd, z, OtherState, y, m, dt_gluecode,
!m%EquilStart = InputFileData%EquilStart
m%EquilStart = .False. ! Feature not yet implemented
- m%Indx = 1 ! used to optimize interpolation of loads in time
- call AllocAry( m%F_at_t, p%nTot,'Loads at t', ErrStat,ErrMsg); if(Failed()) return
- do I=1,p%nTot; m%F_at_t(I)=0; end do
+ m%Indx_UsrModeF = 1 ! used to optimize interpolation of loads in time
+ m%Indx_UsrConnF = 1 ! used to optimize interpolation of loads in time
+ call AllocAry( m%F_at_t, p%nTot,'User-defined modal loads at t', ErrStat,ErrMsg); if(Failed()) return
+ call AllocAry( m%FConn_at_t, 3*p%nConn,'User-defined connection loads at t', ErrStat,ErrMsg); if(Failed()) return
+ call AllocAry( m%F1, 6,'Interface/rigid-body mode forcing', ErrStat,ErrMsg); if(Failed()) return
+ call AllocAry( m%F2, p%nCB,'Internal elastic mode forcing', ErrStat,ErrMsg); if(Failed()) return
+ call AllocAry( m%Weight, p%nTot,'Structure self-weight', ErrStat,ErrMsg); if(Failed()) return
+ call AllocAry( m%DConn, 3_IntKi*p%nConn, 'Connection point displacement', ErrStat,ErrMsg); if(Failed()) return
+ call AllocAry( m%VConn, 3_IntKi*p%nConn, 'Connection point velocity', ErrStat,ErrMsg); if(Failed()) return
+ call AllocAry( m%AConn, 3_IntKi*p%nConn, 'Connection point acceleration', ErrStat,ErrMsg); if(Failed()) return
+ call AllocAry( m%FConn, 3_IntKi*p%nConn, 'Connection force vector', ErrStat,ErrMsg); if(Failed()) return
+ call AllocAry( m%FConnCB, p%nTot, 'Connection force vector', ErrStat,ErrMsg); if(Failed()) return
call AllocAry( m%xFlat, 2*p%nCB,'xFlat', ErrStat,ErrMsg); if(Failed()) return
- do I=1,2*p%nCB; m%xFlat(I)=0; end do
- do I=1,N_INPUTS; m%uFlat(I)=0; end do
+ m%xFlat=0.0_ReKi
+ m%uFlat=0.0_ReKi
! Define initial guess (set up mesh first) for the system inputs here:
- call Init_meshes(u, y, InitInp, ErrStat, ErrMsg); if(Failed()) return
+ call Init_meshes(u, p, y, InitInp, ErrStat, ErrMsg); if(Failed()) return
+ call AllocAry( u%Fm, p%nCB, 'Internal elastic mode forcing', ErrStat,ErrMsg); if(Failed()) return
+ u%Fm = 0.0_ReKi
! --- Outputs
- CALL AllocAry( m%AllOuts, ID_QStart+3*p%nCBFull-1, "ExtPtfm AllOut", ErrStat,ErrMsg ); if(Failed()) return
- m%AllOuts(1:ID_QStart+3*p%nCBFull-1) = 0.0
+ call AllocAry( y%qm, p%nCB, 'Internal elastic mode displacement', ErrStat,ErrMsg); if(Failed()) return
+ call AllocAry( y%qmdot, p%nCB, 'Internal elastic mode velocity', ErrStat,ErrMsg); if(Failed()) return
+ call AllocAry( y%qmdotdot, p%nCB, 'Internal elastic mode acceleration', ErrStat,ErrMsg); if(Failed()) return
+ y%qm = x%qm
+ y%qmdot = x%qmdot
+ y%qmdotdot = 0.0_ReKi
+
+ CALL AllocAry( m%AllOuts, ID_QStart+4*p%nCBFull-1, "ExtPtfm AllOut", ErrStat,ErrMsg ); if(Failed()) return
+ m%AllOuts(1:ID_QStart+4*p%nCBFull-1) = 0.0
call AllocAry( y%WriteOutput, p%NumOuts,'WriteOutput', ErrStat,ErrMsg); if(Failed()) return
call AllocAry(InitOut%WriteOutputHdr,p%NumOuts,'WriteOutputHdr',ErrStat,ErrMsg); if(Failed()) return
call AllocAry(InitOut%WriteOutputUnt,p%NumOuts,'WriteOutputUnt',ErrStat,ErrMsg); if(Failed()) return
@@ -238,6 +259,10 @@ subroutine ExtPtfm_InitVars(u, p, x, y, m, Vars, InputFileData, Linearize, ErrSt
ErrStat = ErrID_None
ErrMsg = ""
+ ScaleLength = 100
+ MaxThrust = 490.0_R8Ki * pi_D / 9.0_R8Ki * ScaleLength**2
+ MaxTorque = 122.5_R8Ki * pi_D / 27.0_R8Ki * ScaleLength**3
+
! Clear module variables type
call NWTC_Library_DestroyModVarsType(Vars, ErrStat2, ErrMsg2); if (Failed()) return
@@ -248,13 +273,17 @@ subroutine ExtPtfm_InitVars(u, p, x, y, m, Vars, InputFileData, Linearize, ErrSt
do i = 1, p%nCB
call MV_AddVar(Vars%x, "Mode"//trim(Num2LStr(p%ActiveCBDOF(i))), FieldTransDisp, &
DL=DatLoc(ExtPtfm_x_qm), iAry=i, &
+ DerivOrder=0, &
+ Perturb=2.0_ReKi*D2R_D, &
LinNames=['Mode '//trim(Num2LStr(p%ActiveCBDOF(i)))//' displacement, -'])
end do
do i = 1, p%nCB
call MV_AddVar(Vars%x, "Mode"//trim(Num2LStr(p%ActiveCBDOF(i))), FieldTransVel, &
- DL=DatLoc(ExtPtfm_x_qm), iAry=i, &
- LinNames=['Mode '//trim(Num2LStr(p%ActiveCBDOF(i)))//' velocity, -'])
+ DL=DatLoc(ExtPtfm_x_qmdot), iAry=i, &
+ DerivOrder=1, &
+ Perturb=2.0_ReKi*D2R_D, &
+ LinNames=['Mode '//trim(Num2LStr(p%ActiveCBDOF(i)))//' velocity, -/s'])
end do
!---------------------------------------------------------------------------
@@ -264,8 +293,37 @@ subroutine ExtPtfm_InitVars(u, p, x, y, m, Vars, InputFileData, Linearize, ErrSt
call MV_AddMeshVar(Vars%u, 'Interface node', MotionFields, &
DatLoc(ExtPtfm_u_PtfmMesh), &
Mesh=u%PtfmMesh, &
+ Perturbs=[2.0_R8Ki*D2R_D, & ! TranslationDisp
+ 2.0_R8Ki*D2R_D, & ! Orientation
+ 2.0_R8Ki*D2R_D, & ! TranslationVel
+ 2.0_R8Ki*D2R_D, & ! RotationVel
+ 2.0_R8Ki*D2R_D, & ! TranslationAcc
+ 2.0_R8Ki*D2R_D],& ! RotationalAcc
Flags=VF_SmallAngle)
+ call MV_AddMeshVar(Vars%u, 'Rigid-body load mesh', LoadFields, &
+ DatLoc(ExtPtfm_u_FBMesh), &
+ Mesh=u%FBMesh, &
+ Perturbs=[MaxThrust/100.0_R8Ki, & ! Force
+ MaxTorque/100.0_R8Ki]) ! Moment
+
+ if ( p%nConn > 0_IntKi ) then
+ call MV_AddMeshVar(Vars%u, 'Connection load mesh', LoadFields, &
+ DatLoc(ExtPtfm_u_ConnLDMesh), &
+ Mesh=u%ConnLdMesh, &
+ PerTurbs=[MaxThrust/100.0_R8Ki, & ! Force
+ MaxTorque/100.0_R8Ki]) ! Moment
+ end if
+
+ if ( p%nCB > 0_IntKi ) then
+ call MV_AddVar(Vars%u, 'Fm', FieldScalar, &
+ DL=DatLoc(ExtPtfm_u_Fm), &
+ Num=size(u%Fm), &
+ Flags = VF_Linearize, &
+ Perturb = 2.0_R8Ki*D2R_D, & ! The inertias of Craig-Bampton modes are normalized to O(1)
+ LinNames=[('Follower mode '//trim(num2lstr(i))//' forcing, -', i=1,size(u%Fm))])
+ end if
+
!---------------------------------------------------------------------------
! Output variables
!---------------------------------------------------------------------------
@@ -274,11 +332,40 @@ subroutine ExtPtfm_InitVars(u, p, x, y, m, Vars, InputFileData, Linearize, ErrSt
DL=DatLoc(ExtPtfm_y_PtfmMesh), &
Mesh=y%PtfmMesh)
- call MV_AddVar(Vars%y, p%OutParam(i)%Name, FieldScalar, &
- DL=DatLoc(ExtPtfm_y_WriteOutput), &
- Num=p%NumOuts, &
- Flags=VF_WriteOut, &
- LinNames=[(WriteOutLinName(i), i=1, p%NumOuts)])
+ call MV_AddMeshVar(Vars%y, "Rigid-body motion mesh", MotionFields, &
+ DL=DatLoc(ExtPtfm_y_FBMesh), &
+ Mesh=y%FBMesh)
+
+ if ( p%nConn > 0_IntKi ) then
+ call MV_AddMeshVar(Vars%y, 'Connection point mesh', MotionFields, &
+ DL=DatLoc(ExtPtfm_y_ConnMesh), &
+ Mesh=y%ConnMesh)
+ end if
+
+ if ( p%nCB>0_IntKi ) then
+ call MV_AddVar(Vars%y, "qm", FieldScalar, &
+ DL=DatLoc(ExtPtfm_y_qm), &
+ Num=size(y%qm), &
+ LinNames=[('Follower mode '//trim(num2lstr(i))//' displacement, -', i=1,size(y%qm))])
+
+ call MV_AddVar(Vars%y, "qmdot", FieldScalar, &
+ DL=DatLoc(ExtPtfm_y_qmdot), &
+ Num=size(y%qmdot), &
+ LinNames=[('Follower mode '//trim(num2lstr(i))//' velocity, -/s', i=1,size(y%qmdot))])
+
+ call MV_AddVar(Vars%y, "qmdotdot", FieldScalar, &
+ DL=DatLoc(ExtPtfm_y_qmdotdot), &
+ Num=size(y%qmdotdot), &
+ LinNames=[('Follower mode '//trim(num2lstr(i))//' acceleration, -/s^2', i=1,size(y%qmdotdot))])
+ end if
+
+ if ( p%NumOuts > 0_IntKi ) then
+ call MV_AddVar(Vars%y, "WriteOutput", FieldScalar, &
+ DL=DatLoc(ExtPtfm_y_WriteOutput), &
+ Num=p%NumOuts, &
+ Flags=VF_WriteOut, &
+ LinNames=[(WriteOutLinName(i), i=1, p%NumOuts)])
+ end if
!---------------------------------------------------------------------------
! Initialization dependent on linearization
@@ -286,12 +373,12 @@ subroutine ExtPtfm_InitVars(u, p, x, y, m, Vars, InputFileData, Linearize, ErrSt
call MV_InitVarsJac(Vars, m%Jac, Linearize, ErrStat2, ErrMsg2); if (Failed()) return
- if (Linearize) then
- call ExtPtfm_CopyContState(x, m%x_perturb, MESH_NEWCOPY, ErrStat2, ErrMsg2); if (Failed()) return
- call ExtPtfm_CopyContState(x, m%dxdt_lin, MESH_NEWCOPY, ErrStat2, ErrMsg2); if (Failed()) return
- call ExtPtfm_CopyInput(u, m%u_perturb, MESH_NEWCOPY, ErrStat2, ErrMsg2); if (Failed()) return
- call ExtPtfm_CopyOutput(y, m%y_lin, MESH_NEWCOPY, ErrStat2, ErrMsg2); if (Failed()) return
- end if
+ ! if (Linearize) then
+ call ExtPtfm_CopyContState(x, m%x_perturb, MESH_NEWCOPY, ErrStat2, ErrMsg2); if (Failed()) return
+ call ExtPtfm_CopyContState(x, m%dxdt_lin, MESH_NEWCOPY, ErrStat2, ErrMsg2); if (Failed()) return
+ call ExtPtfm_CopyInput(u, m%u_perturb, MESH_NEWCOPY, ErrStat2, ErrMsg2); if (Failed()) return
+ call ExtPtfm_CopyOutput(y, m%y_lin, MESH_NEWCOPY, ErrStat2, ErrMsg2); if (Failed()) return
+ ! end if
contains
function WriteOutLinName(iParam) result(Name)
@@ -313,89 +400,103 @@ SUBROUTINE SetStateMatrices( p, ErrStat, ErrMsg)
CHARACTER(*), INTENT(OUT) :: ErrMsg !< Error message
! Local variables:
INTEGER(IntKi) :: I ! loop counter
- INTEGER(IntKi) :: nX ! Number of states
- INTEGER(IntKi) :: nU ! Number of inputs
- INTEGER(IntKi) :: nY ! Number of ouputs
INTEGER(IntKi) :: n1 ! Number of interface DOF
INTEGER(IntKi) :: n2 ! Number of CB DOF
- real(ReKi), dimension(:,:), allocatable :: I22
- ! Init
- nX = 2*p%nCB
- nU = 3*6
- nY = 6
- n1 = 6
+
+ ErrStat = ErrID_None
+ ErrMsg = ""
+
+ n1 = 6_IntKi
n2 = p%nCB
- if (allocated(p%AMat)) deallocate(p%AMat)
- if (allocated(p%BMat)) deallocate(p%BMat)
- if (allocated(p%CMat)) deallocate(p%CMat)
- if (allocated(p%DMat)) deallocate(p%DMat)
- if (allocated(p%M11)) deallocate(p%M11)
- if (allocated(p%M12)) deallocate(p%M12)
- if (allocated(p%M22)) deallocate(p%M22)
- if (allocated(p%M21)) deallocate(p%M21)
- if (allocated(p%C11)) deallocate(p%C11)
- if (allocated(p%C12)) deallocate(p%C12)
- if (allocated(p%C22)) deallocate(p%C22)
- if (allocated(p%C21)) deallocate(p%C21)
- if (allocated(p%K11)) deallocate(p%C11)
- if (allocated(p%K22)) deallocate(p%C22)
- ! Allocation
- call allocAry(p%AMat, nX, nX, 'p%AMat', ErrStat, ErrMsg); if(Failed()) return ; p%AMat(1:nX,1:nX) =0
- call allocAry(p%BMat, nX, nU, 'p%BMat', ErrStat, ErrMsg); if(Failed()) return ; p%BMat(1:nX,1:nU) =0
- call allocAry(p%FX , nX, 'p%FX' , ErrStat, ErrMsg); if(Failed()) return ; p%Fx (1:nX) =0
- call allocAry(p%CMat, nY, nX, 'p%CMat', ErrStat, ErrMsg); if(Failed()) return ; p%CMat(1:nY,1:nX) =0
- call allocAry(p%DMat, nY, nU, 'p%DMat', ErrStat, ErrMsg); if(Failed()) return ; p%DMat(1:nY,1:nU) =0
- call allocAry(p%FY , nY, 'p%FY' , ErrStat, ErrMsg); if(Failed()) return ; p%FY (1:nY) =0
- call allocAry(p%M11 , n1, n1, 'p%M11' , ErrStat, ErrMsg); if(Failed()) return ; p%M11 (1:n1,1:n1) =0
- call allocAry(p%K11 , n1, n1, 'p%K11' , ErrStat, ErrMsg); if(Failed()) return ; p%K11 (1:n1,1:n1) =0
- call allocAry(p%C11 , n1, n1, 'p%C11' , ErrStat, ErrMsg); if(Failed()) return ; p%C11 (1:n1,1:n1) =0
- call allocAry(p%M22 , n2, n2, 'p%M22' , ErrStat, ErrMsg); if(Failed()) return ; p%M22 (1:n2,1:n2) =0
- call allocAry(p%K22 , n2, n2, 'p%K22' , ErrStat, ErrMsg); if(Failed()) return ; p%K22 (1:n2,1:n2) =0
- call allocAry(p%C22 , n2, n2, 'p%C22' , ErrStat, ErrMsg); if(Failed()) return ; p%C22 (1:n2,1:n2) =0
- call allocAry(p%M12 , n1, n2, 'p%M12' , ErrStat, ErrMsg); if(Failed()) return ; p%M12 (1:n1,1:n2) =0
- call allocAry(p%C12 , n1, n2, 'p%C12' , ErrStat, ErrMsg); if(Failed()) return ; p%C12 (1:n1,1:n2) =0
- call allocAry(p%M21 , n2, n1, 'p%M21' , ErrStat, ErrMsg); if(Failed()) return ; p%M21 (1:n2,1:n1) =0
- call allocAry(p%C21 , n2, n1, 'p%C21' , ErrStat, ErrMsg); if(Failed()) return ; p%C21 (1:n2,1:n1) =0
- call allocAry( I22 , n2, n2, ' I22' , ErrStat, ErrMsg); if(Failed()) return ; I22 (1:n2,1:n2) =0
- do I=1,n2 ; I22(I,I)=1; enddo ! Identity matrix
+
+ call allocAry(p%M11 , n1, n1, 'p%M11' , ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%M12 , n1, n2, 'p%M12' , ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%M21 , n2, n1, 'p%M21' , ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%M22 , n2, n2, 'p%M22' , ErrStat, ErrMsg); if(Failed()) return
+
+ call allocAry(p%K11 , n1, n1, 'p%K11' , ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%K12 , n1, n2, 'p%K12' , ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%K21 , n2, n1, 'p%K21' , ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%K22 , n2, n2, 'p%K22' , ErrStat, ErrMsg); if(Failed()) return
+
+ call allocAry(p%C11 , n1, n1, 'p%C11' , ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%C12 , n1, n2, 'p%C12' , ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%C21 , n2, n1, 'p%C21' , ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%C22 , n2, n2, 'p%C22' , ErrStat, ErrMsg); if(Failed()) return
+
+ call allocAry(p%A1Mat, n2, n2, 'p%A1Mat', ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%A2Mat, n2, n2, 'p%A2Mat', ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%B1Mat, n2, n1, 'p%A1Mat', ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%B2Mat, n2, n1, 'p%A2Mat', ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%B3Mat, n2, n1, 'p%A1Mat', ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%B4Mat, n2, n2, 'p%A2Mat', ErrStat, ErrMsg); if(Failed()) return
+
+ call allocAry(p%C1Mat, n1, n2, 'p%A1Mat', ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%C2Mat, n1, n2, 'p%A2Mat', ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%D1Mat, n1, n1, 'p%A1Mat', ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%D2Mat, n1, n1, 'p%A2Mat', ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%D3Mat, n1, n1, 'p%A1Mat', ErrStat, ErrMsg); if(Failed()) return
+ call allocAry(p%D4Mat, n1, n2, 'p%A2Mat', ErrStat, ErrMsg); if(Failed()) return
+
! Submatrices
- p%M11(1:n1,1:n1) = p%Mass(1:n1 ,1:n1 )
- p%C11(1:n1,1:n1) = p%Damp(1:n1 ,1:n1 )
- p%K11(1:n1,1:n1) = p%Stff(1:n1 ,1:n1 )
- p%M12(1:n1,1:n2) = p%Mass(1:n1 ,n1+1:n1+n2)
- p%C12(1:n1,1:n2) = p%Damp(1:n1 ,n1+1:n1+n2)
- p%M21(1:n2,1:n1) = p%Mass(n1+1:n1+n2,1:n1 )
- p%C21(1:n2,1:n1) = p%Damp(n1+1:n1+n2,1:n1 )
- p%M22(1:n2,1:n2) = p%Mass(n1+1:n1+n2,n1+1:n1+n2)
- p%C22(1:n2,1:n2) = p%Damp(n1+1:n1+n2,n1+1:n1+n2)
- p%K22(1:n2,1:n2) = p%Stff(n1+1:n1+n2,n1+1:n1+n2)
- ! A matrix
- p%AMat(1:n2 ,n2+1:nX) = I22 (1:n2,1:n2)
- p%AMat(n2+1:nX,1:n2 ) = -p%K22(1:n2,1:n2)
- p%AMat(n2+1:nX,n2+1:nX) = -p%C22(1:n2,1:n2)
- ! B matrix
- p%BMat(n2+1:nX,7 :12 ) = -p%C21(1:n2,1:6)
- p%BMat(n2+1:nX,13:18 ) = -p%M21(1:n2,1:6)
- ! C matrix
- p%CMat(1:nY,1:n2 ) = matmul(p%M12,p%K22)
- p%CMat(1:nY,n2+1:nX) = matmul(p%M12,p%C22) - p%C12
- ! D matrix
- p%DMat(1:nY,1:6 ) = -p%K11
- p%DMat(1:nY,7:12 ) = -p%C11 + matmul(p%M12,p%C21)
- p%DMat(1:nY,13:18 ) = -p%M11 + matmul(p%M12,p%M21)
-CONTAINS
+ p%M11 = p%Mass( 1:n1 , 1:n1 )
+ p%M12 = p%Mass( 1:n1 ,n1+1:n1+n2)
+ p%M21 = p%Mass(n1+1:n1+n2, 1:n1 )
+ p%M22 = p%Mass(n1+1:n1+n2,n1+1:n1+n2)
+ if ( n2 > 0_IntKi ) then
+ call PseudoInverse(p%M22, p%M22Inv, ErrStat, ErrMsg); if(Failed()) return
+ else
+ call allocAry( p%M22Inv , n2, n2, 'p%M22Inv' , ErrStat, ErrMsg); if(Failed()) return ! Empty placeholder array
+ end if
+
+ p%C11 = p%Damp( 1:n1 , 1:n1 )
+ p%C12 = p%Damp( 1:n1 ,n1+1:n1+n2)
+ p%C21 = p%Damp(n1+1:n1+n2, 1:n1 )
+ p%C22 = p%Damp(n1+1:n1+n2,n1+1:n1+n2)
+
+ p%K11 = p%Stff( 1:n1 , 1:n1 )
+ p%K12 = p%Stff( 1:n1 ,n1+1:n1+n2)
+ p%K21 = p%Stff(n1+1:n1+n2, 1:n1 )
+ p%K22 = p%Stff(n1+1:n1+n2,n1+1:n1+n2)
+
+ ! A matrices
+ p%A1Mat = - matmul(p%M22Inv, p%K22)
+ p%A2Mat = - matmul(p%M22Inv, p%C22)
+
+ ! B matrices
+ p%B1Mat = - matmul(p%M22Inv, p%K21)
+ p%B2Mat = - matmul(p%M22Inv, p%C21)
+ p%B3Mat = - matmul(p%M22Inv, p%M21)
+ p%B4Mat = p%M22Inv
+
+ ! C matrices
+ p%C1Mat = p%K12 + matmul( p%M12, p%A1Mat )
+ p%C2Mat = p%C12 + matmul( p%M12, p%A2Mat )
+
+ ! D matrices
+ p%D1Mat = p%K11 + matmul( p%M12, p%B1Mat )
+ p%D2Mat = p%C11 + matmul( p%M12, p%B2Mat )
+ p%D3Mat = p%M11 + matmul( p%M12, p%B3Mat )
+ p%D4Mat = matmul( p%M12, p%B4Mat )
+
+ CONTAINS
logical function Failed()
CALL SetErrStatSimple(ErrStat, ErrMsg, 'ExtPtfm_SetStateMatrices')
Failed = ErrStat >= AbortErrLev
end function Failed
END SUBROUTINE SetStateMatrices
!----------------------------------------------------------------------------------------------------------------------------------
-SUBROUTINE Init_meshes(u, y, InitInp, ErrStat, ErrMsg)
+SUBROUTINE Init_meshes(u, p, y, InitInp, ErrStat, ErrMsg)
TYPE(ExtPtfm_InputType), INTENT(INOUT) :: u !< System inputs
+ TYPE(ExtPtfm_ParameterType), INTENT(IN ) :: p !< All the parameter matrices stored in this input file
TYPE(ExtPtfm_OutputType), INTENT(INOUT) :: y !< System outputs
TYPE(ExtPtfm_InitInputType), INTENT(IN ) :: InitInp !< Input data for initialization routine
INTEGER(IntKi), INTENT( OUT) :: ErrStat !< Error status of the operation
CHARACTER(*), INTENT( OUT) :: ErrMsg !< Error message if ErrStat /= ErrID_None
+
+ ! Local variables:
+ INTEGER(IntKi) :: I ! loop counter
+
! Create the input and output meshes associated with platform loads
CALL MeshCreate( BlankMesh = u%PtfmMesh , &
IOS = COMPONENT_INPUT , &
@@ -409,16 +510,73 @@ SUBROUTINE Init_meshes(u, y, InitInp, ErrStat, ErrMsg)
TranslationAcc = .TRUE. , &
RotationAcc = .TRUE.)
if(Failed()) return
-
! Create the node on the mesh, the node is located at the PlatformRefzt, to match ElastoDyn
- CALL MeshPositionNode (u%PtfmMesh, 1, (/0.0_ReKi, 0.0_ReKi, InitInp%PtfmRefzt/), ErrStat, ErrMsg ); if(Failed()) return
+ CALL MeshPositionNode (u%PtfmMesh, 1, [InitInp%PtfmRefxt, InitInp%PtfmRefyt, InitInp%PtfmRefzt], ErrStat, ErrMsg ); if(Failed()) return
! Create the mesh element
CALL MeshConstructElement ( u%PtfmMesh, ELEMENT_POINT, ErrStat, ErrMsg, 1 ); if(Failed()) return
CALL MeshCommit ( u%PtfmMesh, ErrStat, ErrMsg ); if(Failed()) return
+
! the output mesh is a sibling of the input:
CALL MeshCopy( SrcMesh=u%PtfmMesh, DestMesh=y%PtfmMesh, CtrlCode=MESH_SIBLING, IOS=COMPONENT_OUTPUT, &
ErrStat=ErrStat, ErrMess=ErrMsg, Force=.TRUE., Moment=.TRUE. )
if(Failed()) return
+
+ ! Create the input and output meshes associated with platform loads
+ CALL MeshCreate( BlankMesh = u%FBMesh , &
+ IOS = COMPONENT_INPUT , &
+ Nnodes = 1 , &
+ ErrStat = ErrStat , &
+ ErrMess = ErrMsg , &
+ Force = .TRUE. , &
+ Moment = .TRUE.)
+ if(Failed()) return
+ ! Create the node on the mesh, the node is located at the PlatformRefzt, to match ElastoDyn
+ CALL MeshPositionNode (u%FBMesh, 1, [InitInp%PtfmRefxt, InitInp%PtfmRefyt, InitInp%PtfmRefzt], ErrStat, ErrMsg ); if(Failed()) return
+ ! Create the mesh element
+ CALL MeshConstructElement ( u%FBMesh, ELEMENT_POINT, ErrStat, ErrMsg, 1 ); if(Failed()) return
+ CALL MeshCommit ( u%FBMesh, ErrStat, ErrMsg ); if(Failed()) return
+
+ ! the output mesh is a sibling of the input:
+ CALL MeshCopy( SrcMesh=u%FBMesh, DestMesh=y%FBMesh, CtrlCode=MESH_SIBLING, IOS=COMPONENT_OUTPUT, &
+ ErrStat=ErrStat, ErrMess=ErrMsg , &
+ TranslationDisp = .TRUE. , &
+ Orientation = .TRUE. , &
+ TranslationVel = .TRUE. , &
+ RotationVel = .TRUE. , &
+ TranslationAcc = .TRUE. , &
+ RotationAcc = .TRUE. )
+ if(Failed()) return
+
+ if (p%nConn>0_IntKi) then
+ ! Create the input and output meshes associated with platform loads
+ CALL MeshCreate( BlankMesh = u%ConnLdMesh , &
+ IOS = COMPONENT_INPUT , &
+ Nnodes = p%nConn , &
+ ErrStat = ErrStat , &
+ ErrMess = ErrMsg , &
+ Force = .TRUE. , &
+ Moment = .TRUE.)
+ if(Failed()) return
+ do i = 1,p%nConn
+ ! Create the node on the mesh, the node is located at the user-defined connection points
+ CALL MeshPositionNode(u%ConnLdMesh, i, p%PosConn(i,:), ErrStat, ErrMsg ); if(Failed()) return
+ ! Create the mesh element
+ CALL MeshConstructElement(u%ConnLdMesh, ELEMENT_POINT, ErrStat, ErrMsg, i ); if(Failed()) return
+ end do
+ CALL MeshCommit ( u%ConnLdMesh, ErrStat, ErrMsg ); if(Failed()) return
+
+ ! the output mesh is a sibling of the input:
+ CALL MeshCopy( SrcMesh=u%ConnLdMesh, DestMesh=y%ConnMesh, CtrlCode=MESH_SIBLING, IOS=COMPONENT_OUTPUT, &
+ ErrStat=ErrStat, ErrMess=ErrMsg , &
+ TranslationDisp = .TRUE. , &
+ Orientation = .TRUE. , &
+ TranslationVel = .TRUE. , &
+ RotationVel = .TRUE. , &
+ TranslationAcc = .TRUE. , &
+ RotationAcc = .TRUE. )
+ if(Failed()) return
+ end if
+
CONTAINS
logical function Failed()
CALL SetErrStatSimple(ErrStat, ErrMsg, 'Init_meshes')
@@ -737,45 +895,195 @@ SUBROUTINE ExtPtfm_CalcOutput( t, u, p, x, xd, z, OtherState, y, m, ErrStat, Err
INTEGER(IntKi), INTENT( OUT) :: ErrStat !< Error status of the operation
CHARACTER(*), INTENT( OUT) :: ErrMsg !< Error message if ErrStat /= ErrID_None
! Local variables
- INTEGER(IntKi) :: I !< Generic counters
- real(ReKi), dimension(6) :: Fc !< Output coupling force
- ! Compute the loads `fr1 fr2` at t (fr1 without added mass) by time interpolation of the inputs loads p%Forces
- call InterpStpMat(REAL(t,ReKi), p%times, p%Forces, m%Indx, p%nTimeSteps, m%F_at_t)
-
- ! --- Flatening vectors and using linear state formulation y=Cx+Du+Fy
- ! u flat (x1, \dot{x1}, \ddot{x1})
- m%uFlat(1:3) = u%PtfmMesh%TranslationDisp(:,1)
- m%uFlat(4:6) = GetSmllRotAngs(u%PtfmMesh%Orientation(:,:,1), ErrStat, ErrMsg); CALL SetErrStatSimple(ErrStat, ErrMsg, 'ExtPtfm_CalcOutput')
- m%uFlat(7:9 ) = u%PtfmMesh%TranslationVel(:,1)
- m%uFlat(10:12) = u%PtfmMesh%RotationVel (:,1)
- m%uFlat(13:15) = u%PtfmMesh%TranslationAcc(:,1)
- m%uFlat(16:18) = u%PtfmMesh%RotationAcc (:,1)
-
- !--- Computing output: y = Cx + Du + Fy
- !
- if (p%nCB>0) then
- ! x flat
- m%xFlat( 1:p%nCB ) = x%qm (1:p%nCB)
- m%xFlat(p%nCB+1:2*p%nCB) = x%qmdot(1:p%nCB)
-
- ! >>> MATMUL implementation
- !Fc = matmul(p%CMat, m%xFlat) + matmul(p%DMat, m%uFlat) + m%F_at_t(1:6) - matmul(p%M12, m%F_at_t(6+1:6+p%nCB))
-
- ! >>> LAPACK implementation
- Fc(1:6) = m%F_at_t(1:6) ! Fc = F1r + ...
- ! GEMV(TRS, M , N , alpha , A , LDA, X ,INCX, Beta , Y, IncY)
- CALL LAPACK_GEMV('n', 6 , 2*p%nCB, 1.0_ReKi, p%CMat, 6 , m%xFlat , 1, 1.0_ReKi, Fc, 1 ) ! = C*x + (F1r)
- CALL LAPACK_GEMV('n', 6 , 18 , 1.0_ReKi, p%DMat, 6 , m%uFlat , 1, 1.0_ReKi, Fc, 1 ) ! + D*u
- CALL LAPACK_GEMV('n', 6 , p%nCB , -1.0_ReKi, p%M12 , 6 , m%F_at_t(6+1:6+p%nCB), 1, 1.0_ReKi, Fc, 1 ) ! - M12*F2r
+ INTEGER(IntKi) :: I !< Generic counters
+ real(ReKi), dimension(6) :: Fc !< Output coupling force
+ TYPE(ExtPtfm_ContinuousStateType) :: xdot ! time derivatives of continuous states
+ real(R8Ki), dimension(3,3) :: Rg2b ! Rotation matrix from global earth-fixed coordinate system to rigid-body coordinate system
+ real(R8Ki), dimension(3,3) :: Rb2g ! Rotation matrix from rigid-body coordinate system to global earth-fixed coordinate system
+ real(ReKi), dimension(3) :: RelPosConn
+ real(ReKi), dimension(3) :: RelPosConn0
+ real(ReKi), dimension(3) :: RelVelConn
+ real(ReKi), dimension(3) :: omega
+ real(ReKi), dimension(3) :: omega_dot
+ real(ReKi), dimension(3) :: RdU
+ real(ReKi), dimension(3) :: RdUdot
+ real(ReKi), dimension(3) :: RdUdotdot
+
+ ErrStat = ErrID_None
+ ErrMsg = ""
+
+ ! Compute the loads `fr1 fr2` at t (fr1 without added mass) by time interpolation of the inputs loads p%UsrModeF%Forces
+ call InterpStpMat(REAL(t,ReKi), p%UsrModeF%times, p%UsrModeF%Forces, m%Indx_UsrModeF, p%UsrModeF%nTimeSteps, m%F_at_t)
+ call InterpStpMat(REAL(t,ReKi), p%UsrConnF%times, p%UsrConnF%Forces, m%Indx_UsrConnF, p%UsrConnF%nTimeSteps, m%FConn_at_t)
+
+ if ( p%hasRBMode ) then
+ Rg2b = u%PtfmMesh%Orientation(:,:,1)
+ Rb2g = transpose(Rg2b)
+ ! u flat (x1, \dot{x1}, \ddot{x1}) in body-fixed coordinate system
+ m%uFlat(1:3) = 0.0_ReKi ! Translational displacement is zero in body-fixed system - corresponding stiffness terms must be zero
+ m%uFlat(4:6) = EulerExtractZYX(u%PtfmMesh%Orientation(:,:,1))
+ m%uFlat(7:9 ) = matmul( Rg2b, u%PtfmMesh%TranslationVel(:,1) )
+ m%uFlat(10:12) = matmul( Rg2b, u%PtfmMesh%RotationVel (:,1) )
+ m%uFlat(13:15) = matmul( Rg2b, u%PtfmMesh%TranslationAcc(:,1) )
+ m%uFlat(16:18) = matmul( Rg2b, u%PtfmMesh%RotationAcc (:,1) )
+ do i=1,p%nConn
+ m%FConn((i-1)*3+1:(i-1)*3+3) = matmul( Rg2b, u%ConnLdMesh%Force(:,i) + m%FConn_at_t((i-1)*3+1:(i-1)*3+3) )
+ end do
else
- Fc = matmul(p%DMat, m%uFlat) + m%F_at_t(1:6)
- endif
+ call eye(Rg2b,ErrStat,ErrMsg); if (failed()) return
+ call eye(Rb2g,ErrStat,ErrMsg); if (failed()) return
+ ! u flat (x1, \dot{x1}, \ddot{x1}) in global coordinate system
+ m%uFlat(1:3) = u%PtfmMesh%TranslationDisp(:,1)
+ m%uFlat(4:6) = GetSmllRotAngs(u%PtfmMesh%Orientation(:,:,1), ErrStat, ErrMsg); CALL SetErrStatSimple(ErrStat, ErrMsg, 'ExtPtfm_CalcOutput')
+ m%uFlat(7:9 ) = u%PtfmMesh%TranslationVel(:,1)
+ m%uFlat(10:12) = u%PtfmMesh%RotationVel (:,1)
+ m%uFlat(13:15) = u%PtfmMesh%TranslationAcc(:,1)
+ m%uFlat(16:18) = u%PtfmMesh%RotationAcc (:,1)
+ do i=1,p%nConn
+ m%FConn((i-1)*3+1:(i-1)*3+3) = u%ConnLdMesh%Force(:,i) + m%FConn_at_t((i-1)*3+1:(i-1)*3+3)
+ end do
+ end if
+
+ !--- Compute external loads
+ ! Note: m%F1 is the interface/rigid-body mode forcing kept in earth-fixed system
+ ! m%F2 is the forcing to the internal elastic modes
+ m%F1(1:3) = u%FBMesh%Force (:,1)
+ m%F1(4:6) = u%FBMesh%Moment(:,1)
+ m%F1 = m%F1 + m%F_at_t(1:6)
+ m%F2 = u%Fm + m%F_at_t(6+1:6+p%nCB)
+
+ ! Structure self-weight
+ if ( p%hasRBMode ) then
+ select case (p%RBMod)
+ case (1_IntKi)
+ ! Compute self-weight based on stiffness and convert to earth-fixed frame
+ m%Weight(1:6) = p%W0(1:6) &
+ - matmul( p%WStff(1:6,4:5) , m%uFlat(4:5) ) &
+ - matmul( p%WStff(1:6,6+1:6+p%nCB) , x%qm )
+ m%Weight(1:3) = matmul( Rb2g, m%Weight(1:3))
+ m%Weight(4:6) = matmul( Rb2g, m%Weight(4:6))
+ case (2_IntKi)
+ ! Compute exact self-weight in earth-fixed frame
+ m%Weight(1:3) = [0.0_ReKi,0.0_ReKi,p%W0(3)]
+ m%Weight(4:6) = cross_product( matmul( Rb2g , p%RBCoG), m%Weight(1:3) )
+ end select
+ m%Weight(6+1:6+p%nCB) = p%W0(6+1:6+p%nCB) &
+ - matmul( p%WStff(6+1:6+p%nCB,4:5) , m%uFlat(4:5) ) &
+ - matmul( p%WStff(6+1:6+p%nCB,6+1:6+p%nCB) , x%qm )
+ else
+ ! Fully linearized formulation
+ m%Weight = p%W0 &
+ - matmul( p%WStff(:,1:6) , m%uFlat(1:6) ) &
+ - matmul( p%WStff(:,6+1:6+p%nCB) , x%qm )
+ end if
+ m%F1 = m%F1 + m%Weight(1:6)
+ m%F2 = m%F2 + m%Weight(6+1:6+p%nCB)
+
+ ! Loads from connection points
+ if (p%nConn>0_IntKi) then
+ m%FConnCB = matmul( transpose(p%PhiConn) , m%FConn )
+ if ( p%hasRBMode ) then
+ m%F1(1:3) = m%F1(1:3) + matmul( Rb2g, m%FConnCB(1:3) )
+ m%F1(4:6) = m%F1(4:6) + matmul( Rb2g, m%FConnCB(4:6) )
+ else
+ m%F1 = m%F1 + m%FConnCB(1:6)
+ end if
+ m%F2 = m%F2 + m%FConnCB(6+1:6+p%nCB)
+ end if
+
+ !--- Compute reaction load applied to tower base. Output y = Cx + Du + Fy
+ Fc = matmul( p%D1Mat, m%uFlat(1:6) ) + matmul( p%D2Mat, m%uFlat(7:12) ) + matmul( p%D3Mat, m%uFlat(13:18) )
+ if (p%nCB>0) then
+ Fc = Fc + matmul( p%C1Mat, x%qm ) + matmul( p%C2Mat, x%qmdot ) + matmul( p%D4Mat, m%F2 )
+ end if
+ if ( p%hasRBMode ) then
+ if (p%RBMod==2_IntKi) then
+ Fc(1:3) = Fc(1:3) + p%RBMass*cross_product( m%uFlat(10:12), cross_product( m%uFlat(10:12), p%RBCoG ) )
+ Fc(4:6) = Fc(4:6) + cross_product( m%uFlat(10:12), matmul( p%RBInertia, m%uFlat(10:12)) )
+ end if
+ Fc(1:3) = matmul( Rb2g, Fc(1:3) )
+ Fc(4:6) = matmul( Rb2g, Fc(4:6) )
+ end if
+ Fc = -Fc + m%F1
+
+ ! Update output states
+ if (p%nCB>0) then
+ CALL ExtPtfm_CalcContStateDeriv( t, u, p, x, xd, z, OtherState, m, xdot, ErrStat, ErrMsg )
+ y%qm = x%qm
+ y%qmdot = x%qmdot
+ y%qmdotdot = xdot%qmdot
+ end if
! Update the output mesh
- do i=1,3
- y%PtfmMesh%Force(I,1) = Fc(I)
- y%PtfmMesh%Moment(I,1) = Fc(I+3)
- enddo
+ y%PtfmMesh%Force(:,1) = Fc(1:3)
+ y%PtfmMesh%Moment(:,1) = Fc(4:6)
+ if (.not.p%HasRBMode) then
+ ! Interface moment correction for fixed-bottom structure similar to SubDyn
+ y%PtfmMesh%Moment(:,1) = y%PtfmMesh%Moment(:,1) - cross_product( u%PtfmMesh%TranslationDisp(:,1), Fc(1:3) )
+ end if
+
+ if (p%HasRBMode) then
+ y%FBMesh%TranslationDisp = u%PtfmMesh%TranslationDisp
+ y%FBMesh%Orientation = u%PtfmMesh%Orientation
+ y%FBMesh%TranslationVel = u%PtfmMesh%TranslationVel
+ y%FBMesh%RotationVel = u%PtfmMesh%RotationVel
+ y%FBMesh%TranslationAcc = u%PtfmMesh%TranslationAcc
+ y%FBMesh%RotationAcc = u%PtfmMesh%RotationAcc
+ end if
+
+ if (p%nConn > 0_IntKi) then
+ if (p%HasRBMode) then
+ if (p%nCB>0) then
+ ! Elastic mode contributions in rigid-body frame
+ m%DConn = matmul( p%PhiConn(:,7:6+p%nCB), y%qm )
+ m%VConn = matmul( p%PhiConn(:,7:6+p%nCB), y%qmdot )
+ m%AConn = matmul( p%PhiConn(:,7:6+p%nCB), y%qmdotdot )
+ else
+ m%DConn = 0.0_ReKi
+ m%VConn = 0.0_ReKi
+ m%AConn = 0.0_ReKi
+ end if
+ do i = 1,p%nConn
+ RdU = matmul( Rb2g, m%DConn(3*(i-1)+1:3*(i-1)+3) )
+ RdUdot = matmul( Rb2g, m%VConn(3*(i-1)+1:3*(i-1)+3) )
+ RdUdotdot = matmul( Rb2g, m%AConn(3*(i-1)+1:3*(i-1)+3) )
+ RelPosConn0 = y%ConnMesh%Position(:,i) - u%PtfmMesh%Position(:,1)
+ RelPosConn = matmul( Rb2g, RelPosConn0 ) + RdU
+ omega = u%PtfmMesh%RotationVel(:,1)
+ omega_dot = u%PtfmMesh%RotationAcc(:,1)
+
+ ! Compute absolute translation displacement, velocity, and acceleration of connection points in earth-fixed frame
+ y%ConnMesh%TranslationDisp(:,i) = u%PtfmMesh%TranslationDisp(:,1) + RelPosConn - RelPosConn0
+ y%ConnMesh%TranslationVel (:,i) = u%PtfmMesh%TranslationVel (:,1) + RdUdot + cross_product( omega, RelPosConn )
+ RelVelConn = y%ConnMesh%TranslationVel(:,i) - u%PtfmMesh%TranslationVel(:,1)
+ y%ConnMesh%TranslationAcc (:,i) = u%PtfmMesh%TranslationAcc (:,1) + RdUdotdot + cross_product( omega_dot, RelPosConn ) + cross_product( omega, RdUdot + RelVelConn )
+
+ ! No contribution from elasticity to rotation for now
+ y%ConnMesh%Orientation(:,:,i) = Rg2b
+ y%ConnMesh%RotationVel(:,i) = u%PtfmMesh%RotationVel(:,1)
+ y%ConnMesh%RotationAcc(:,i) = u%PtfmMesh%RotationAcc(:,1)
+ end do
+ else
+ ! Interface mode contributions
+ m%DConn = matmul( p%PhiConn(:,1:6), m%uFlat( 1: 6) )
+ m%VConn = matmul( p%PhiConn(:,1:6), m%uFlat( 7:12) )
+ m%AConn = matmul( p%PhiConn(:,1:6), m%uFlat(13:18) )
+ if (p%nCB>0) then ! Elastic mode contributions
+ m%DConn = m%DConn + matmul( p%PhiConn(:,7:6+p%nCB), y%qm )
+ m%VConn = m%VConn + matmul( p%PhiConn(:,7:6+p%nCB), y%qmdot )
+ m%AConn = m%AConn + matmul( p%PhiConn(:,7:6+p%nCB), y%qmdotdot )
+ end if
+ do i = 1,p%nConn
+ ! No contribution from elasticity to rotation for now
+ y%ConnMesh%TranslationDisp(:,i) = m%DConn(3*(i-1)+1:3*(i-1)+3)
+ y%ConnMesh%Orientation(:,:,i) = Rg2b
+ y%ConnMesh%TranslationVel(:,i) = m%VConn(3*(i-1)+1:3*(i-1)+3)
+ y%ConnMesh%RotationVel(:,i) = 0.0_ReKi
+ y%ConnMesh%TranslationAcc(:,i) = m%AConn(3*(i-1)+1:3*(i-1)+3)
+ y%ConnMesh%RotationAcc(:,i) = 0.0_ReKi
+ end do
+ end if
+ end if
! --- All Outputs
m%AllOuts(ID_PtfFx) = y%PtfmMesh%Force (1,1)
@@ -784,17 +1092,17 @@ SUBROUTINE ExtPtfm_CalcOutput( t, u, p, x, xd, z, OtherState, y, m, ErrStat, Err
m%AllOuts(ID_PtfMx) = y%PtfmMesh%Moment(1,1)
m%AllOuts(ID_PtfMy) = y%PtfmMesh%Moment(2,1)
m%AllOuts(ID_PtfMz) = y%PtfmMesh%Moment(3,1)
- m%AllOuts(ID_InpFx) = m%F_at_t(1)
- m%AllOuts(ID_InpFy) = m%F_at_t(2)
- m%AllOuts(ID_InpFz) = m%F_at_t(3)
- m%AllOuts(ID_InpMx) = m%F_at_t(4)
- m%AllOuts(ID_InpMy) = m%F_at_t(5)
- m%AllOuts(ID_InpMz) = m%F_at_t(6)
- !y%WriteOutput(ID_WaveElev) = .. ! TODO
+ m%AllOuts(ID_InpFx) = m%F1(1)
+ m%AllOuts(ID_InpFy) = m%F1(2)
+ m%AllOuts(ID_InpFz) = m%F1(3)
+ m%AllOuts(ID_InpMx) = m%F1(4)
+ m%AllOuts(ID_InpMy) = m%F1(5)
+ m%AllOuts(ID_InpMz) = m%F1(6)
do i=1,p%nCB
- m%AllOuts(ID_QStart + 0*p%nCBFull -1 + p%ActiveCBDOF(I)) = x%qm (I) ! CBQ - DOF Positions
- m%AllOuts(ID_QStart + 1*p%nCBFull -1 + p%ActiveCBDOF(I)) = x%qmdot(I) ! CBQD - DOF Velocities
- m%AllOuts(ID_QStart + 2*p%nCBFull -1 + p%ActiveCBDOF(I)) = m%F_at_t(6+I) ! CBF - DOF Forces
+ m%AllOuts(ID_QStart + 0*p%nCBFull -1 + p%ActiveCBDOF(I)) = y%qm (I) ! CBD - DOF Displacements
+ m%AllOuts(ID_QStart + 1*p%nCBFull -1 + p%ActiveCBDOF(I)) = y%qmdot (I) ! CBV - DOF Velocities
+ m%AllOuts(ID_QStart + 2*p%nCBFull -1 + p%ActiveCBDOF(I)) = y%qmdotdot(I) ! CBA - DOF Accelerations
+ m%AllOuts(ID_QStart + 3*p%nCBFull -1 + p%ActiveCBDOF(I)) = m%F2 (I) ! CBF - DOF External Forces
enddo
! --- Selected output channels only
do I = 1,p%NumOuts
@@ -803,7 +1111,13 @@ SUBROUTINE ExtPtfm_CalcOutput( t, u, p, x, xd, z, OtherState, y, m, ErrStat, Err
else
y%WriteOutput(I) = -9.9999e20
endif
- enddo
+ enddo
+
+ CONTAINS
+ logical function Failed()
+ CALL SetErrStatSimple(ErrStat, ErrMsg, 'ExtPtfm_CalcContStateDeriv')
+ Failed = ErrStat >= AbortErrLev
+ end function Failed
END SUBROUTINE ExtPtfm_CalcOutput
!----------------------------------------------------------------------------------------------------------------------------------
@@ -823,42 +1137,71 @@ SUBROUTINE ExtPtfm_CalcContStateDeriv( t, u, p, x, xd, z, OtherState, m, dxdt, E
TYPE(ExtPtfm_ContinuousStateType), INTENT( OUT) :: dxdt !< Continuous state derivatives at t
INTEGER(IntKi), INTENT( OUT) :: ErrStat !< Error status of the operation
CHARACTER(*), INTENT( OUT) :: ErrMsg !< Error message if ErrStat /= ErrID_None
+
! Local variables
INTEGER(IntKi) :: I
+ REAL(R8Ki), dimension(3,3) :: Rg2b ! Rotation matrix global 2 body coordinates
+ REAL(R8Ki), dimension(3,3) :: Rb2g ! Rotation matrix body 2 global coordinates
+
! Allocation of output dxdt (since intent(out))
call AllocAry(dxdt%qm, p%nCB, 'dxdt%qm', ErrStat, ErrMsg); if(Failed()) return
call AllocAry(dxdt%qmdot, p%nCB, 'dxdt%qmdot', ErrStat, ErrMsg); if(Failed()) return
if ( p%nCB == 0 ) return
- do I=1,p%nCB; dxdt%qm (I)=0; enddo
- do I=1,p%nCB; dxdt%qmdot(I)=0; enddo
-
- ! Compute the loads `fr1 fr2` at t (fr1 without added mass) by time interpolation of the inputs loads p%F
- call InterpStpMat(REAL(t,ReKi), p%times, p%Forces, m%Indx, p%nTimeSteps, m%F_at_t)
-
- ! u flat (x1, \dot{x1}, \ddot{x1})
- m%uFlat(1:3) = u%PtfmMesh%TranslationDisp(:,1)
- m%uFlat(4:6) = GetSmllRotAngs(u%PtfmMesh%Orientation(:,:,1), ErrStat, ErrMsg); if(Failed()) return
- m%uFlat(7:9 ) = u%PtfmMesh%TranslationVel(:,1)
- m%uFlat(10:12) = u%PtfmMesh%RotationVel (:,1)
- m%uFlat(13:15) = u%PtfmMesh%TranslationAcc(:,1)
- m%uFlat(16:18) = u%PtfmMesh%RotationAcc (:,1)
-
- ! --- Computation of qm and qmdot
- ! >>> Latex formulae:
- ! \ddot{x2} = -K22 x2 - C22 \dot{x2} - C21 \dot{x1} - M21 \ddot{x1} + fr2
- ! >>> MATMUL IMPLEMENTATION
- !dxdt%qm= x%qmdot
- !dxdt%qmdot = - matmul(p%K22,x%qm) - matmul(p%C22,x%qmdot) &
- ! - matmul(p%C21,m%uFlat(7:12)) - matmul(p%M21, m%uFlat(13:18)) + m%F_at_t(6+1:6+p%nCB)
- ! >>> BLAS IMPLEMENTATION
- ! COPY( N , X , INCX, Y , INCY)
- CALL LAPACK_COPY(p%nCB, x%qmdot , 1 , dxdt%qm , 1 ) ! qmdot=qmdot
- CALL LAPACK_COPY(p%nCB, m%F_at_t(6+1:6+p%nCB), 1 , dxdt%qmdot , 1 ) ! qmddot = fr2
- ! GEMV(TRS, M , N , alpha , A , LDA , X ,INCX, Beta , Y , IncY)
- CALL LAPACK_GEMV('n', p%nCB, p%nCB , -1.0_ReKi, p%K22, p%nCB, x%qm , 1 , 1.0_ReKi, dxdt%qmdot, 1 ) ! - K22 x2
- CALL LAPACK_GEMV('n', p%nCB, 6 , -1.0_ReKi, p%C21, p%nCB, m%uFlat(7:12) , 1 , 1.0_ReKi, dxdt%qmdot, 1 ) ! - C21 \dot{x1}
- CALL LAPACK_GEMV('n', p%nCB, p%nCB , -1.0_ReKi, p%C22, p%nCB, x%qmdot , 1 , 1.0_ReKi, dxdt%qmdot, 1 ) ! - C22 \dot{x2}
- CALL LAPACK_GEMV('n', p%nCB, 6 , -1.0_ReKi, p%M21, p%nCB, m%uFlat(13:18), 1 , 1.0_ReKi, dxdt%qmdot, 1 ) ! - M21 \ddot{x1}
+ dxdt%qm =0.0_ReKi
+ dxdt%qmdot=0.0_ReKi
+
+ ! Compute the loads `fr1 fr2` at t (fr1 without added mass) by time interpolation of the inputs loads p%UsrModeF%Forces
+ call InterpStpMat(REAL(t,ReKi), p%UsrModeF%times, p%UsrModeF%Forces, m%Indx_UsrModeF, p%UsrModeF%nTimeSteps, m%F_at_t)
+ call InterpStpMat(REAL(t,ReKi), p%UsrConnF%times, p%UsrConnF%Forces, m%Indx_UsrConnF, p%UsrConnF%nTimeSteps, m%FConn_at_t)
+
+ if ( p%hasRBMode ) then
+ Rg2b = u%PtfmMesh%Orientation(:,:,1)
+ Rb2g = transpose(Rg2b)
+ ! u flat (x1, \dot{x1}, \ddot{x1}) in body-fixed coordinate system
+ m%uFlat(1:3) = 0.0_ReKi ! u%PtfmMesh%TranslationDisp(:,1)
+ m%uFlat(4:6) = EulerExtractZYX(u%PtfmMesh%Orientation(:,:,1))
+ m%uFlat(7:9 ) = matmul( Rg2b, u%PtfmMesh%TranslationVel(:,1) )
+ m%uFlat(10:12) = matmul( Rg2b, u%PtfmMesh%RotationVel (:,1) )
+ m%uFlat(13:15) = matmul( Rg2b, u%PtfmMesh%TranslationAcc(:,1) )
+ m%uFlat(16:18) = matmul( Rg2b, u%PtfmMesh%RotationAcc (:,1) )
+ do i=1,p%nConn
+ m%FConn((i-1)*3+1:(i-1)*3+3) = matmul( Rg2b, u%ConnLdMesh%Force(:,i) + m%FConn_at_t((i-1)*3+1:(i-1)*3+3) )
+ end do
+ else
+ ! u flat (x1, \dot{x1}, \ddot{x1}) in global coordinate system
+ m%uFlat(1:3) = u%PtfmMesh%TranslationDisp(:,1)
+ m%uFlat(4:6) = GetSmllRotAngs(u%PtfmMesh%Orientation(:,:,1), ErrStat, ErrMsg); if(Failed()) return
+ m%uFlat(7:9 ) = u%PtfmMesh%TranslationVel(:,1)
+ m%uFlat(10:12) = u%PtfmMesh%RotationVel (:,1)
+ m%uFlat(13:15) = u%PtfmMesh%TranslationAcc(:,1)
+ m%uFlat(16:18) = u%PtfmMesh%RotationAcc (:,1)
+ do i=1,p%nConn
+ m%FConn((i-1)*3+1:(i-1)*3+3) = u%ConnLdMesh%Force(:,i) + m%FConn_at_t((i-1)*3+1:(i-1)*3+3)
+ end do
+ end if
+
+ ! --- Compute modal forcing
+ m%F2 = m%F_at_t(6+1:6+p%nCB) & ! User prescribed forces
+ + u%Fm(1:p%nCB) ! Modal forcing from HydroDyn generalized DOF
+ ! Structure self-weight
+ if ( p%hasRBMode ) then
+ m%Weight(6+1:6+p%nCB) = p%W0(6+1:6+p%nCB) &
+ - matmul( p%WStff(6+1:6+p%nCB,4:5) , m%uFlat(4:5) ) - matmul( p%WStff(6+1:6+p%nCB,6+1:6+p%nCB) , x%qm )
+ else
+ m%Weight(6+1:6+p%nCB) = p%W0(6+1:6+p%nCB) &
+ - matmul( p%WStff(6+1:6+p%nCB,1:6) , m%uFlat(1:6) ) - matmul( p%WStff(6+1:6+p%nCB,6+1:6+p%nCB) , x%qm )
+ end if
+ m%F2 = m%F2 + m%Weight(6+1:6+p%nCB)
+ ! Loads from connection points
+ if (p%nConn>0_IntKi) then
+ m%FConnCB = matmul( transpose(p%PhiConn) , m%FConn )
+ m%F2 = m%F2 + m%FConnCB(6+1:6+p%nCB)
+ end if
+
+ ! --- Compute qm and qmdot
+ dxdt%qm = x%qmdot
+ dxdt%qmdot = matmul( p%A1Mat, x%qm ) + matmul( p%A2Mat, x%qmdot ) &
+ + matmul( p%B1Mat, m%uFlat(1:6) ) + matmul( p%B2Mat, m%uFlat(7:12) ) + matmul( p%B3Mat, m%uFlat(13:18) ) + matmul( p%B4Mat, m%F2 )
CONTAINS
logical function Failed()
@@ -922,13 +1265,13 @@ END SUBROUTINE ExtPtfm_CalcConstrStateResidual
SUBROUTINE ExtPtfm_JacobianPInput(Vars, t, u, p, x, xd, z, OtherState, y, m, ErrStat, ErrMsg, dYdu, dXdu, dXddu, dZdu)
TYPE(ModVarsType), INTENT(IN ) :: Vars !< Module variables
REAL(DbKi), INTENT(IN ) :: t !< Time in seconds at operating point
- TYPE(ExtPtfm_InputType), INTENT(IN ) :: u !< Inputs at operating point (may change to inout if a mesh copy is required)
+ TYPE(ExtPtfm_InputType), INTENT(INOUT) :: u !< Inputs at operating point (may change to inout if a mesh copy is required)
TYPE(ExtPtfm_ParameterType), INTENT(IN ) :: p !< Parameters
TYPE(ExtPtfm_ContinuousStateType), INTENT(IN ) :: x !< Continuous states at operating point
TYPE(ExtPtfm_DiscreteStateType), INTENT(IN ) :: xd !< Discrete states at operating point
TYPE(ExtPtfm_ConstraintStateType), INTENT(IN ) :: z !< Constraint states at operating point
TYPE(ExtPtfm_OtherStateType), INTENT(IN ) :: OtherState !< Other states at operating point
- TYPE(ExtPtfm_OutputType), INTENT(IN ) :: y !< Output (change to inout if a mesh copy is required);
+ TYPE(ExtPtfm_OutputType), INTENT(INOUT) :: y !< Output (change to inout if a mesh copy is required);
!! Output fields are not used by this routine, but type is
!! available here so that mesh parameter information (i.e.,
!! connectivity) does not have to be recalculated for dYdu.
@@ -943,62 +1286,88 @@ SUBROUTINE ExtPtfm_JacobianPInput(Vars, t, u, p, x, xd, z, OtherState, y, m, Err
!! respect to the inputs (u) [intent in to avoid deallocation]
REAL(R8Ki), ALLOCATABLE, OPTIONAL, INTENT(INOUT) :: dZdu(:,:) !< Partial derivatives of constraint state functions (Z) with
!! respect to the inputs (u) [intent in to avoid deallocation]
- INTEGER(IntKi) :: i, j ! Loop index
- logical :: CalcOutputs
+ character(*), parameter :: RoutineName = 'ExtPtfm_JacobianPInput'
+ integer(intKi) :: ErrStat2
+ character(ErrMsgLen) :: ErrMsg2
+ INTEGER(IntKi) :: i, j, col ! Loop index
+ ! logical :: CalcOutputs
ErrStat = ErrID_None
ErrMsg = ''
- ! allocate and set dYdu
+ ! Calculate OP values here
+ call ExtPtfm_CalcOutput(t, u, p, x, xd, z, OtherState, y, m, ErrStat2, ErrMsg2 ); if(Failed()) return
+
+ ! Make a copy of the inputs to perturb
+ call ExtPtfm_CopyInput(u, m%u_perturb, MESH_UPDATECOPY, ErrStat2, ErrMsg2); if(Failed()) return
+ call ExtPtfm_VarsPackInput(Vars, u, m%Jac%u)
+
+ ! Calculate the partial derivative of the output functions (Y) with respect to the inputs (u) here:
if (present(dYdu)) then
if (.not. allocated(dYdu)) then
- call AllocAry(dYdu, N_OUTPUTS+p%NumOuts, N_INPUTS, 'dYdu', ErrStat, ErrMsg)
- if(Failed()) return
- dYdu = 0.0_ReKi
+ call AllocAry(dYdu, m%Jac%Ny, m%Jac%Nu, 'dYdu', ErrStat2, ErrMsg2); if(Failed()) return
end if
-
- dYdu(1:6, 1:N_INPUTS) = p%DMat(1:6, 1:N_INPUTS)
- ! Check if outputs need to be processed
- CalcOutputs = .false.
- do i = 1, size(Vars%y)
- if (MV_HasFlagsAll(Vars%y(i), VF_WriteOut)) CalcOutputs = .true.
- end do
-
- ! dYdu is zero except if WriteOutput is the interface loads
- if (CalcOutputs) then
- do i = 1, p%NumOuts
- select case (p%OutParam(i)%Indx)
- case (ID_PtfFx)
- dYdu(6+i,1:N_INPUTS) = p%DMat(1,1:N_INPUTS)
- case (ID_PtfFy)
- dYdu(6+i,1:N_INPUTS) = p%DMat(2,1:N_INPUTS)
- case (ID_PtfFz)
- dYdu(6+i,1:N_INPUTS) = p%DMat(3,1:N_INPUTS)
- case (ID_PtfMx)
- dYdu(6+i,1:N_INPUTS) = p%DMat(4,1:N_INPUTS)
- case (ID_PtfMy)
- dYdu(6+i,1:N_INPUTS) = p%DMat(5,1:N_INPUTS)
- case (ID_PtfMz)
- dYdu(6+i,1:N_INPUTS) = p%DMat(6,1:N_INPUTS)
- case default
- dYdu(6+i,1:N_INPUTS) = 0.0_ReKi
- end select
+ ! Loop through input variables
+ do i = 1, size(Vars%u)
+
+ ! Loop through number of linearization perturbations in variable
+ do j = 1,Vars%u(i)%Num
+
+ ! Calculate positive perturbation
+ call MV_Perturb(Vars%u(i), j, 1, m%Jac%u, m%Jac%u_perturb)
+ call ExtPtfm_VarsUnpackInput(Vars, m%Jac%u_perturb, m%u_perturb)
+ call ExtPtfm_CalcOutput(t, m%u_perturb, p, x, xd, z, OtherState, m%y_lin, m, ErrStat2, ErrMsg2); if (Failed()) return
+ call ExtPtfm_VarsPackOutput(Vars, m%y_lin, m%Jac%y_pos)
+
+ ! Calculate negative perturbation
+ call MV_Perturb(Vars%u(i), j, -1, m%Jac%u, m%Jac%u_perturb)
+ call ExtPtfm_VarsUnpackInput(Vars, m%Jac%u_perturb, m%u_perturb)
+ call ExtPtfm_CalcOutput(t, m%u_perturb, p, x, xd, z, OtherState, m%y_lin, m, ErrStat2, ErrMsg2); if (Failed()) return
+ call ExtPtfm_VarsPackOutput(Vars, m%y_lin, m%Jac%y_neg)
+
+ ! Calculate column index
+ col = Vars%u(i)%iLoc(1) + j - 1
+
+ ! Get partial derivative via central difference
+ call MV_ComputeCentralDiff(Vars%y, Vars%u(i)%Perturb, m%Jac%y_pos, m%Jac%y_neg, dYdu(:,col))
end do
- end if
+ end do
end if
- ! allocate and set dXdu
- if (present(dXdu)) then
+ ! Calculate the partial derivative of the continuous state functions (X) with respect to the inputs (u) here:
+ if (present(dXdu) .and. (m%Jac%Nx > 0)) then
if (.not. allocated(dXdu)) then
- call AllocAry(dXdu, 2*p%nCB, N_INPUTS, 'dXdu', ErrStat, ErrMsg)
- if(Failed()) return
- dXdu = 0.0_ReKi
- end if
+ call AllocAry(dXdu, m%Jac%Nx, m%Jac%Nu, 'dXdu', ErrStat2, ErrMsg2); if (Failed()) return
+ endif
+
+ ! Loop through input variables
+ do i = 1,size(Vars%u)
+
+ ! Loop through number of linearization perturbations in variable
+ do j = 1,Vars%u(i)%Num
+
+ ! Calculate positive perturbation and resulting continuous state derivatives
+ call MV_Perturb(Vars%u(i), j, 1, m%Jac%u, m%Jac%u_perturb)
+ call ExtPtfm_VarsUnpackInput(Vars, m%Jac%u_perturb, m%u_perturb)
+ call ExtPtfm_CalcContStateDeriv(t, m%u_perturb, p, x, xd, z, OtherState, m, m%dxdt_lin, ErrStat2, ErrMsg2); if (Failed()) return
+ call ExtPtfm_VarsPackContState(Vars, m%dxdt_lin, m%Jac%x_pos)
+
+ ! Calculate negative perturbation and resulting continuous state derivatives
+ call MV_Perturb(Vars%u(i), j, -1, m%Jac%u, m%Jac%u_perturb)
+ call ExtPtfm_VarsUnpackInput(Vars, m%Jac%u_perturb, m%u_perturb)
+ call ExtPtfm_CalcContStateDeriv(t, m%u_perturb, p, x, xd, z, OtherState, m, m%dxdt_lin, ErrStat2, ErrMsg2); if (Failed()) return
+ call ExtPtfm_VarsPackContState(Vars, m%dxdt_lin, m%Jac%x_neg)
- dXdu(1:2*p%nCB,1:N_INPUTS) = p%BMat(1:2*p%nCB,1:N_INPUTS)
+ ! Calculate column index
+ col = Vars%u(i)%iLoc(1) + j - 1
+
+ ! Get partial derivative via central difference
+ dXdu(:,col) = (m%Jac%x_pos - m%Jac%x_neg) / (2.0_R8Ki * Vars%u(i)%Perturb)
+ end do
+ end do
end if
if (present(dXddu)) then
@@ -1006,6 +1375,7 @@ SUBROUTINE ExtPtfm_JacobianPInput(Vars, t, u, p, x, xd, z, OtherState, y, m, Err
if (present(dZdu)) then
end if
+
CONTAINS
logical function Failed()
CALL SetErrStatSimple(ErrStat, ErrMsg, 'ExtPtfm_JacobianPInput')
@@ -1015,8 +1385,9 @@ END SUBROUTINE ExtPtfm_JacobianPInput
!----------------------------------------------------------------------------------------------------------------------------------
!> Routine to compute the Jacobians of the output (Y), continuous- (X), discrete- (Xd), and constraint-state (Z) functions
!! with respect to the continuous states (x). The partial derivatives dY/dx, dX/dx, dXd/dx, and DZ/dx are returned.
-SUBROUTINE ExtPtfm_JacobianPContState( t, u, p, x, xd, z, OtherState, y, m, ErrStat, ErrMsg, dYdx, dXdx, dXddx, dZdx )
+SUBROUTINE ExtPtfm_JacobianPContState(Vars, t, u, p, x, xd, z, OtherState, y, m, ErrStat, ErrMsg, dYdx, dXdx, dXddx, dZdx )
!..................................................................................................................................
+ TYPE(ModVarsType), INTENT(IN ) :: Vars !< Module variables
REAL(DbKi), INTENT(IN ) :: t !< Time in seconds at operating point
TYPE(ExtPtfm_InputType), INTENT(IN ) :: u !< Inputs at operating point (may change to inout if a mesh copy is required)
TYPE(ExtPtfm_ParameterType), INTENT(IN ) :: p !< Parameters
@@ -1043,59 +1414,101 @@ SUBROUTINE ExtPtfm_JacobianPContState( t, u, p, x, xd, z, OtherState, y, m, ErrS
REAL(R8Ki), ALLOCATABLE, OPTIONAL, INTENT(INOUT) :: dZdx(:,:) !< Partial derivatives of constraint state
!! functions (Z) with respect to
!! the continuous states (x) [intent in to avoid deallocation]
- INTEGER(IntKi) :: i,j ! Loop index
- INTEGER(IntKi) :: idx ! Index of output channel in AllOuts
- INTEGER(IntKi) :: iDOF ! Mode number
+
+ character(*), parameter :: RoutineName = 'ExtPtfm_JacobianPContState'
+ integer(IntKi) :: ErrStat2
+ character(ErrMsgLen) :: ErrMsg2
+ INTEGER(IntKi) :: i,j,col ! Loop index
+ ! INTEGER(IntKi) :: idx ! Index of output channel in AllOuts
+ ! INTEGER(IntKi) :: iDOF ! Mode number
+
! Initialize ErrStat
ErrStat = ErrID_None
ErrMsg = ''
+
+ ! If no state variables, return
+ if (m%Jac%Nx == 0) return
+
+ ! make a copy of the continuous states to perturb NOTE: MESH_NEWCOPY
+ call ExtPtfm_CopyContState(x, m%x_perturb, MESH_UPDATECOPY, ErrStat2, ErrMsg2); if(Failed()) return
+ call ExtPtfm_VarsPackContState(Vars, x, m%Jac%x)
+
+ ! Calculate the partial derivative of the output functions (Y) with respect to the continuous states (x) here:
if (present(dYdx)) then
- ! allocate and set dYdx
+
+ ! Allocate dYdx if not allocated
if (.not. allocated(dYdx)) then
- call AllocAry(dYdx, N_OUTPUTS+p%NumOuts, 2*p%nCB, 'dYdx', ErrStat, ErrMsg); if(Failed()) return
- do i=1,size(dYdx,1); do j=1,size(dYdx,2); dYdx(i,j)=0.0_ReKi; enddo;enddo
+ call AllocAry(dYdx, m%Jac%Ny, m%Jac%Nx, 'dYdx', ErrStat2, ErrMsg2); if(Failed()) return
end if
- dYdx(1:6,1:2*p%nCB) = p%CMat(1:6, 1:2*p%nCB)
- ! WriteOutputs
- do i = 1,p%NumOuts
- idx = p%OutParam(i)%Indx
- iDOF = mod(idx-ID_QSTART, p%nCB)+1
- ! if output is an interface load dYdx is a row of the Cmatrix
- if (idx==ID_PtfFx) then; dYdx(6+i,1:2*p%nCB) = p%CMat(1,1:2*p%nCB)
- elseif (idx==ID_PtfFy) then; dYdx(6+i,1:2*p%nCB) = p%CMat(2,1:2*p%nCB)
- elseif (idx==ID_PtfFx) then; dYdx(6+i,1:2*p%nCB) = p%CMat(3,1:2*p%nCB)
- elseif (idx==ID_PtfMx) then; dYdx(6+i,1:2*p%nCB) = p%CMat(4,1:2*p%nCB)
- elseif (idx==ID_PtfMy) then; dYdx(6+i,1:2*p%nCB) = p%CMat(5,1:2*p%nCB)
- elseif (idx==ID_PtfMz) then; dYdx(6+i,1:2*p%nCB) = p%CMat(6,1:2*p%nCB)
- ! Below we look at the index, we assumed an order for the outputs
- ! where after the index ID_Qstart, the AllOutputs are: Q,QDot and Qf
- ! An alternative coulbe to look at the name of the DOF instead:
- ! e.g. if (index(p%OutParam,'CBQ_')>0) then ... (see SetOutParam)
- else if ((idx-ID_QStart>= 0 ) .and. (idx-ID_QStart
= p%nCB) .and. (idx-ID_QStart<2*p%nCB) ) then
- ! Output is a DOF velocity, dYdx has a 1 at the proper location
- dYdx(6+i,1:2*p%nCB ) = 0.0_ReKi
- dYdx(6+i,p%nCB + iDOF) = 1.0_ReKi ! TODO TODO TODO ALLDOF_2_DOF
- else ! e.g. WaveElevation or CB Forces
- dYdx(6+i,1:2*p%nCB ) = 0.0_ReKi
- endif
+
+ ! Loop through state variables
+ do i = 1,size(Vars%x)
+
+ ! Loop through number of linearization perturbations in variable
+ do j = 1,Vars%x(i)%Num
+
+ ! Calculate positive perturbation
+ call MV_Perturb(Vars%x(i), j, 1, m%Jac%x, m%Jac%x_perturb)
+ call ExtPtfm_VarsUnpackContState(Vars, m%Jac%x_perturb, m%x_perturb)
+ call ExtPtfm_CalcOutput(t, u, p, m%x_perturb, xd, z, OtherState, m%y_lin, m, ErrStat2, ErrMsg2); if (Failed()) return
+ call ExtPtfm_VarsPackOutput(Vars, m%y_lin, m%Jac%y_pos)
+
+ ! Calculate negative perturbation
+ call MV_Perturb(Vars%x(i), j, -1, m%Jac%x, m%Jac%x_perturb)
+ call ExtPtfm_VarsUnpackContState(Vars, m%Jac%x_perturb, m%x_perturb)
+ call ExtPtfm_CalcOutput(t, u, p, m%x_perturb, xd, z, OtherState, m%y_lin, m, ErrStat2, ErrMsg2); if (Failed()) return
+ call ExtPtfm_VarsPackOutput(Vars, m%y_lin, m%Jac%y_neg)
+
+ ! Calculate column index
+ col = Vars%x(i)%iLoc(1) + j - 1
+
+ ! Get partial derivative via central difference and store in full linearization array
+ call MV_ComputeCentralDiff(Vars%y, Vars%x(i)%Perturb, m%Jac%y_pos, m%Jac%y_neg, dYdx(:,col))
+ end do
end do
end if
+
+ ! Calculate the partial derivative of the continuous state functions (X) with respect to the continuous states (x) here:
if (present(dXdx)) then
- ! allocate and set dXdx
+
+ ! Allocate dXdx if not allocated
if (.not. allocated(dXdx)) then
- call AllocAry(dXdx, 2*p%nCB, 2*p%nCB, 'dXdx', ErrStat, ErrMsg); if(Failed()) return
- do i=1,size(dXdx,1); do j=1,size(dXdx,2); dXdx(i,j)=0.0_ReKi; enddo;enddo
+ call AllocAry(dXdx, m%Jac%Nx, m%Jac%Nx, 'dXdx', ErrStat2, ErrMsg2); if(Failed()) return
end if
- dXdx(1:2*p%nCB,1:2*p%nCB) = p%AMat(1:2*p%nCB,1:2*p%nCB)
+
+ ! Loop through state variables
+ do i = 1,size(Vars%x)
+
+ ! Loop through number of linearization perturbations in variable
+ do j = 1, Vars%x(i)%Num
+
+ ! Calculate positive perturbation
+ call MV_Perturb(Vars%x(i), j, 1, m%Jac%x, m%Jac%x_perturb)
+ call ExtPtfm_VarsUnpackContState(Vars, m%Jac%x_perturb, m%x_perturb)
+ call ExtPtfm_CalcContStateDeriv(t, u, p, m%x_perturb, xd, z, OtherState, m, m%dxdt_lin, ErrStat2, ErrMsg2); if (Failed()) return
+ call ExtPtfm_VarsPackContState(Vars, m%dxdt_lin, m%Jac%x_pos)
+
+ ! Calculate negative perturbation
+ call MV_Perturb(Vars%x(i), j, -1, m%Jac%x, m%Jac%x_perturb)
+ call ExtPtfm_VarsUnpackContState(Vars, m%Jac%x_perturb, m%x_perturb)
+ call ExtPtfm_CalcContStateDeriv(t, u, p, m%x_perturb, xd, z, OtherState, m, m%dxdt_lin, ErrStat2, ErrMsg2); if (Failed()) return
+ call ExtPtfm_VarsPackContState(Vars, m%dxdt_lin, m%Jac%x_neg)
+
+ ! Calculate column index
+ col = Vars%x(i)%iLoc(1) + j - 1
+
+ ! Get partial derivative via central difference and store in full linearization array
+ dXdx(:,col) = (m%Jac%x_pos - m%Jac%x_neg) / (2.0_R8Ki * Vars%x(i)%Perturb)
+ end do
+ end do
end if
+
if (present(dXddx)) then
end if
+
if (present(dZdx)) then
end if
+
CONTAINS
logical function Failed()
CALL SetErrStatSimple(ErrStat, ErrMsg, 'ExtPtfm_JacobianPInput')
@@ -1186,6 +1599,63 @@ SUBROUTINE ExtPtfm_JacobianPConstrState( t, u, p, x, xd, z, OtherState, y, m, Er
if (present(dZdz)) then
end if
END SUBROUTINE ExtPtfm_JacobianPConstrState
+
+SUBROUTINE PseudoInverse(A, Ainv, ErrStat, ErrMsg)
+ use NWTC_LAPACK, only: LAPACK_GESVD, LAPACK_GEMM
+ real(ReKi), dimension(:,:), intent(in) :: A
+ real(ReKi), dimension(:,:), allocatable :: Ainv
+ INTEGER(IntKi), INTENT( OUT) :: ErrStat ! < Error status of the operation
+ CHARACTER(*), INTENT( OUT) :: ErrMsg ! < Error message if ErrStat / = ErrID_None
+ !
+ real(ReKi), dimension(:), allocatable :: S
+ real(ReKi), dimension(:,:), allocatable :: U
+ real(ReKi), dimension(:,:), allocatable :: Vt
+ real(ReKi), dimension(:), allocatable :: WORK
+ real(ReKi), dimension(:,:), allocatable :: Acopy
+ integer :: j ! Loop indices
+ integer :: M !< The number of rows of the input matrix A
+ integer :: N !< The number of columns of the input matrix A
+ integer :: K !<
+ integer :: L !<
+ integer :: LWORK !<
+ M = size(A,1)
+ N = size(A,2)
+ K = min(M,N)
+ L = max(M,N)
+ LWORK = MAX(1,3*K +L,5*K)
+ allocate(S(K)); S = 0;
+ !! LWORK >= MAX(1,3*MIN(M,N) + MAX(M,N),5*MIN(M,N)) for the other paths
+ allocate(Work(LWORK)); Work=0
+ allocate(U (M,K) ); U=0;
+ allocate(Vt(K,N) ); Vt=0;
+ allocate(Ainv(N,M)); Ainv=0;
+ allocate(Acopy(M,N)); Acopy=A;
+
+ ! --- Compute the SVD of A
+ ! [U,S,V] = svd(A)
+ !call DGESVD ('S', 'S', M, N, A, M, S, U, M , Vt , K, WORK, LWORK, INFO)
+ call LAPACK_GESVD('S', 'S', M, N, Acopy, S, U, Vt, WORK, LWORK, ErrStat, ErrMsg)
+
+ !--- Compute PINV = V**T * SIGMA * U**T in two steps
+ ! SIGMA = S^(-1)=1/S(j), S is diagonal
+ do j = 1, K
+ U(:,j) = U(:,j)/S(j)
+ end do
+ ! Compute Ainv = 1.0*V^t * U^t + 0.0*Ainv V*(inv(S))*U'
+ !call DGEMM( 'T', 'T', N, M, K, 1.0, V, K, U, M, 0.0, Ainv, N)
+ call LAPACK_GEMM( 'T', 'T', 1.0_ReKi, Vt, U, 0.0_ReKi, Ainv, ErrStat, ErrMsg)
+ ! --- Compute rank
+ !tol=maxval(shape(A))*epsilon(maxval(S))
+ !rank=0
+ !do i=1,K
+ ! if(S(i) .gt. tol)then
+ ! rank=rank+1
+ ! end if
+ !end do
+ !print*,'Rank',rank
+ ! Ainv=transpose(matmul(matmul(U(:,1:r),S_inv(1:r,1:r)),Vt(1:r,:)))
+ END SUBROUTINE PseudoInverse
+
!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
END MODULE ExtPtfm_MCKF
diff --git a/modules/extptfm/src/ExtPtfm_MCKF_IO.f90 b/modules/extptfm/src/ExtPtfm_MCKF_IO.f90
index 4fefde8a42..f6c3f6bc49 100644
--- a/modules/extptfm/src/ExtPtfm_MCKF_IO.f90
+++ b/modules/extptfm/src/ExtPtfm_MCKF_IO.f90
@@ -27,19 +27,11 @@ MODULE ExtPtfm_MCKF_Parameters
TYPE(ProgDesc), PARAMETER :: ExtPtfm_Ver = ProgDesc( 'ExtPtfm_MCKF', '', '' ) !< module date/version information
!
- INTEGER(IntKi), parameter :: N_INPUTS = 18
- INTEGER(IntKi), parameter :: N_OUTPUTS = 6
-
-
CHARACTER(len=4), DIMENSION(3), PARAMETER :: StrIntMethod = (/'RK4 ','AB4 ','ABM4'/)
! Variables for output channels
- INTEGER(IntKi), PARAMETER :: FILEFORMAT_GUYANASCII = 0
- INTEGER(IntKi), PARAMETER :: FILEFORMAT_FLEXASCII = 1
-
- ! Variables for output channels
- INTEGER(IntKi), PARAMETER :: MaxOutChs = 9 + 3*200 ! Maximum number of output channels
- ! Harcoded to outputs of 200 CB modes
+ INTEGER(IntKi), PARAMETER :: MaxOutChs = 1 + 12 + 4*200 ! Maximum number of output channels
+ ! Harcoded to outputs of 200 CB modes
INTEGER(IntKi), PARAMETER :: ID_Time = 0
INTEGER(IntKi), PARAMETER :: ID_PtfFx = 1
INTEGER(IntKi), PARAMETER :: ID_PtfFy = 2
@@ -47,14 +39,13 @@ MODULE ExtPtfm_MCKF_Parameters
INTEGER(IntKi), PARAMETER :: ID_PtfMx = 4
INTEGER(IntKi), PARAMETER :: ID_PtfMy = 5
INTEGER(IntKi), PARAMETER :: ID_PtfMz = 6
- INTEGER(IntKi), PARAMETER :: ID_WaveElev = 7
- INTEGER(IntKi), PARAMETER :: ID_InpFx = 8
- INTEGER(IntKi), PARAMETER :: ID_InpFy = 9
- INTEGER(IntKi), PARAMETER :: ID_InpFz = 10
- INTEGER(IntKi), PARAMETER :: ID_InpMx = 11
- INTEGER(IntKi), PARAMETER :: ID_InpMy = 12
- INTEGER(IntKi), PARAMETER :: ID_InpMz = 13
- INTEGER(IntKi), PARAMETER :: ID_QStart = 14
+ INTEGER(IntKi), PARAMETER :: ID_InpFx = 7
+ INTEGER(IntKi), PARAMETER :: ID_InpFy = 8
+ INTEGER(IntKi), PARAMETER :: ID_InpFz = 9
+ INTEGER(IntKi), PARAMETER :: ID_InpMx = 10
+ INTEGER(IntKi), PARAMETER :: ID_InpMy = 11
+ INTEGER(IntKi), PARAMETER :: ID_InpMz = 12
+ INTEGER(IntKi), PARAMETER :: ID_QStart = 13
END MODULE ExtPtfm_MCKF_Parameters
!**********************************************************************************************************************************
@@ -82,7 +73,7 @@ subroutine SetErrStatSimple(ErrStat, ErrMess, RoutineName, LineNumber)
CHARACTER(*), INTENT(IN ) :: RoutineName ! Name of the routine error occurred in
INTEGER(IntKi), INTENT(IN), OPTIONAL :: LineNumber ! Line of input file
if (ErrStat /= ErrID_None) then
- print*,'ErrMess',ErrMess
+ print*,'ErrMess',TRIM(ErrMess)
write(ErrMess,'(A)') TRIM(RoutineName)//':'//TRIM(ErrMess)
if (present(LineNumber)) then
ErrMess = TRIM(ErrMess)//' Line: '//TRIM(Num2LStr(LineNumber))//'.'
@@ -208,21 +199,19 @@ SUBROUTINE SetOutParam(OutList, NumOuts_in, p, ErrStat, ErrMsg )
CHARACTER(ChanLen) :: OutListTmp ! A string to temporarily hold OutList(I)
CHARACTER(*), PARAMETER :: RoutineName = "SetOutParam"
- CHARACTER(OutStrLenM1), PARAMETER :: ValidParamAry(13) = (/ & ! This lists the names of the allowed parameters, which must be sorted alphabetically
- "INPF_FX ","INPF_FY ","INPF_FZ ","INPF_MX ","INPF_MY ","INPF_MZ ",&
- "INTRFFX ","INTRFFY ","INTRFFZ ","INTRFMX ","INTRFMY ","INTRFMZ ",&
- "WAVELEV "/)
- CHARACTER(OutStrLenM1), PARAMETER :: ParamUnitsAry(13) = (/ & ! This lists the units corresponding to the allowed parameters
+ CHARACTER(OutStrLenM1), PARAMETER :: ValidParamAry(12) = (/ & ! This lists the names of the allowed parameters, which must be sorted alphabetically
+ "EXTRNFX ","EXTRNFY ","EXTRNFZ ","EXTRNMX ","EXTRNMY ","EXTRNMZ ",&
+ "INTRFFX ","INTRFFY ","INTRFFZ ","INTRFMX ","INTRFMY ","INTRFMZ "/)
+ CHARACTER(OutStrLenM1), PARAMETER :: ParamUnitsAry(12) = (/ & ! This lists the units corresponding to the allowed parameters
"(N) ","(N) ","(N) ","(Nm) ","(Nm) ","(Nm) ",&
- "(N) ","(N) ","(N) ","(Nm) ","(Nm) ","(Nm) ","(m) "/)
- INTEGER(IntKi), PARAMETER :: ParamIndxAry(13) = (/ & ! This lists the index into AllOuts(:) of the allowed parameters ValidParamAry(:)
+ "(N) ","(N) ","(N) ","(Nm) ","(Nm) ","(Nm) "/)
+ INTEGER(IntKi), PARAMETER :: ParamIndxAry(12) = (/ & ! This lists the index into AllOuts(:) of the allowed parameters ValidParamAry(:)
ID_InpFx, ID_InpFy, ID_InpFz, ID_InpMx, ID_InpMy, ID_InpMz,&
- ID_PtfFx, ID_PtfFy, ID_PtfFz, ID_PtfMx, ID_PtfMy, ID_PtfMz,&
- ID_WaveElev /)
+ ID_PtfFx, ID_PtfFy, ID_PtfFz, ID_PtfMx, ID_PtfMy, ID_PtfMz/)
character(ErrMsgLen) :: WarnMsg !Warning Message
ErrStat = ErrID_None
ErrMsg = ""
- WarnMsg = ""
+ WarnMsg = ""
p%NumOuts = NumOuts_in
allocate(p%OutParam(0:p%NumOuts) , stat=ErrStat )
@@ -256,18 +245,20 @@ SUBROUTINE SetOutParam(OutList, NumOuts_in, p, ErrStat, ErrMsg )
if (Indx>0) then
p%OutParam(I)%Indx = ParamIndxAry(Indx)
p%OutParam(I)%Units = ParamUnitsAry(Indx)
- else if (index(OutListTmp,'CBQ_') > 0 ) then
- call setDOFChannel(5,ID_QStart+0*p%nCBFull-1); if(Failed()) return ! NOTE: using full CB
- else if (index(OutListTmp,'CBQD_') > 0 ) then
- call setDOFChannel(6,ID_QStart+1*p%nCBFull-1); if(Failed()) return ! NOTE: using full CB
- else if (index(OutListTmp,'CBF_') > 0 ) then
- call setDOFChannel(5,ID_QStart+2*p%nCBFull-1); if(Failed()) return ! NOTE: using full CB
+ else if (index(OutListTmp,'CBD') > 0 ) then
+ call setDOFChannel(4,ID_QStart+0*p%nCBFull-1); if(Failed()) return ! NOTE: using full CB
+ else if (index(OutListTmp,'CBV') > 0 ) then
+ call setDOFChannel(4,ID_QStart+1*p%nCBFull-1); if(Failed()) return ! NOTE: using full CB
+ else if (index(OutListTmp,'CBA') > 0 ) then
+ call setDOFChannel(4,ID_QStart+2*p%nCBFull-1); if(Failed()) return ! NOTE: using full CB
+ else if (index(OutListTmp,'CBF') > 0 ) then
+ call setDOFChannel(4,ID_QStart+3*p%nCBFull-1); if(Failed()) return ! NOTE: using full CB
else
call setInvalidChannel() ! INVALID
endif
!write(*,*) p%OutParam(I)%Name, p%OutParam(I)%Indx, p%OutParam(I)%Units
end do
- if (len(WarnMsg)>0) then
+ if (len(trim(WarnMsg))>0) then
call SetErrStat(ErrID_Warn, WarnMsg,ErrStat,ErrMsg,'ExtPtfm_SetOutParam')
write(*,'(A)')trim(WarnMsg)
endif
@@ -304,31 +295,201 @@ subroutine setInvalidChannel()
END SUBROUTINE SetOutParam
!----------------------------------------------------------------------------------------------------------------------------------
!> Checks that all inputs were correctly read
-subroutine CheckInputs(Inp, p, ErrStat, ErrMsg)
+subroutine CheckReducedInputs(Inp, p, ErrStat, ErrMsg)
TYPE(ExtPtfm_InputFile), INTENT(INOUT) :: Inp !< Data stored in the module's input file
TYPE(ExtPtfm_ParameterType), INTENT(INOUT) :: p !< All the parameter matrices stored in this input file
- INTEGER(IntKi), INTENT(OUT) :: ErrStat !< Error status
+ INTEGER(IntKi), INTENT(OUT) :: ErrStat !< Error status
CHARACTER(*), INTENT(OUT) :: ErrMsg !< Error message
+ INTEGER(IntKi) :: i,j
+ REAL(ReKi), PARAMETER :: RelTol = 0.001_ReKi
+ REAL(ReKi), PARAMETER :: AbsTol = 0.0001_ReKi
ErrStat = ErrID_None
ErrMsg = ""
- if (ErrStat/=0) return
+
if (p%nTot<0) then ; ErrStat=ErrID_Fatal; ErrMsg='The total number of DOF was not set'; return; endif
if (.not.allocated(p%Mass)) then ; ErrStat=ErrID_Fatal; ErrMsg='The mass matrix was not allocated.' ; return; endif
if (.not.allocated(p%Stff)) then ; ErrStat=ErrID_Fatal; ErrMsg='The stiffness matrix was not allocated.' ; return; endif
if (.not.allocated(p%Damp)) then ; ErrStat=ErrID_Fatal; ErrMsg='The damping matrix was not allocated.' ; return; endif
- if (.not.allocated(p%Forces)) then ; ErrStat=ErrID_Fatal; ErrMsg='The loads were not allocated.';return; endif
- if (.not.allocated(p%times)) then ; ErrStat=ErrID_Fatal; ErrMsg='The time vector was not allocated.'; return; endif
+ if (.not.allocated(p%W0)) then ; ErrStat=ErrID_Fatal; ErrMsg='Constant self-weight was not allocated.';return; endif
+ if (.not.allocated(p%WStff)) then ; ErrStat=ErrID_Fatal; ErrMsg='Self-weight stiffness matrix was not allocated.';return; endif
+ !if (.not.allocated(p%Forces)) then ; ErrStat=ErrID_Fatal; ErrMsg='The loads were not allocated.';return; endif
+ !if (.not.allocated(p%times)) then ; ErrStat=ErrID_Fatal; ErrMsg='The time vector was not allocated.'; return; endif
if (allocated(Inp%ActiveCBDOF)) then
if (maxval(Inp%ActiveCBDOF)>size(p%Mass,1)-6) then
ErrStat=ErrID_Fatal; ErrMsg='The maximum index of `ActiveCBDOF` (active CB DOF) should be less than the total number of CB DOF.'; return;
endif
endif
-end subroutine CheckInputs
+
+ ! Check mass matrix
+ do i = 1,p%nTot
+ do j = i+1,p%nTot
+ if ( ABS( p%Mass(i,j) - p%Mass(j,i) ) > MAX(RelTol*ABS(p%Mass(i,j)),AbsTol) ) then
+ ErrStat=ErrID_Warn; ErrMsg='Mass matrix is not symmetric'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ end do
+ end do
+ if (Inp%HasRBMode) then
+ ! Check stiffness matrix
+ do i = 1,p%nTot
+ do j = 1,6
+ if ( ABS( p%Stff(i,j) ) > AbsTol ) then
+ ErrStat=ErrID_Warn; ErrMsg='When rigid-body modes are enabled, the stiffness matrix should have only zeros in the first 6 rows and columns.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ end do
+ end do
+ do i = 1,6
+ do j = 7,p%nTot
+ if ( ABS( p%Stff(i,j) ) > AbsTol ) then
+ ErrStat=ErrID_Warn; ErrMsg='When rigid-body modes are enabled, the stiffness matrix should have only zeros in the first 6 rows and columns.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ end do
+ end do
+ ! Check mass matrix
+ p%RBMass = p%Mass(1,1)
+ p%RBCoG(1) = p%Mass(2,6)/p%RBMass
+ p%RBCoG(2) = -p%Mass(1,6)/p%RBMass
+ p%RBCoG(3) = p%Mass(1,5)/p%RBMass
+ p%RBInertia = p%Mass(4:6,4:6)
+ do i = 1,3
+ do j = i,3
+ if ( i == j ) then
+ if ( ABS( p%Mass(i,j) - p%RBMass ) > MAX( RelTol*ABS(p%RBMass), AbsTol) ) then
+ ErrStat=ErrID_Warn; ErrMsg='Mass matrix associated with the first 6 modes inconsistent with rigid-body modes.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ else
+ if ( ABS( p%Mass(i,j) ) > AbsTol ) then
+ ErrStat=ErrID_Warn; ErrMsg='Mass matrix associated with the first 6 modes inconsistent with rigid-body modes.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ end if
+ end do
+ if ( ABS( p%Mass(i,i+3) ) > AbsTol ) then
+ ErrStat=ErrID_Warn; ErrMsg='Mass matrix associated with the first 6 modes inconsistent with rigid-body modes.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ end do
+ if ( ABS( p%Mass(1,5) + p%Mass(2,4) ) > MAX( RelTol*ABS(p%Mass(1,5)), AbsTol ) ) then
+ ErrStat=ErrID_Warn; ErrMsg='Mass matrix associated with the first 6 modes inconsistent with rigid-body modes.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ if ( ABS( p%Mass(1,6) + p%Mass(3,4) ) > MAX( RelTol*ABS(p%Mass(1,6)), AbsTol ) ) then
+ ErrStat=ErrID_Warn; ErrMsg='Mass matrix associated with the first 6 modes inconsistent with rigid-body modes.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ if ( ABS( p%Mass(2,6) + p%Mass(3,5) ) > MAX( RelTol*ABS(p%Mass(2,6)), AbsTol ) ) then
+ ErrStat=ErrID_Warn; ErrMsg='Mass matrix associated with the first 6 modes inconsistent with rigid-body modes.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ ! Check W0
+ if ( ABS(p%W0(1)) > AbsTol &
+ .or. ABS(p%W0(2)) > AbsTol &
+ .or. ABS(p%W0(6)) > AbsTol ) then
+ ErrStat=ErrID_Warn; ErrMsg='With RBMod>0, constant self-weight can only have non-zero entires in the (3) heave, (4) roll, and (5) pitch directions.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ if ( ABS( p%W0(4) - p%W0(3)*p%RBCoG(2) ) > MAX(RelTol*ABS(p%W0(4)), AbsTol) .or. &
+ ABS( p%W0(5) + p%W0(3)*p%RBCoG(1) ) > MAX(RelTol*ABS(p%W0(4)), AbsTol) ) then
+ ErrStat=ErrID_Warn; ErrMsg='With RBMod>0, rigid-body center of mass inconsistent between constant self-weight and mass matrix.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ ! Check WStff
+ do i = 1,p%nTot
+ if ( ABS(p%WStff(i,1)) > AbsTol &
+ .or. ABS(p%WStff(i,2)) > AbsTol &
+ .or. ABS(p%WStff(i,3)) > AbsTol &
+ .or. ABS(p%WStff(i,6)) > AbsTol ) then
+ ErrStat=ErrID_Warn; ErrMsg='With RBMod>0, self-weight stiffness matrix must contain only zeros in the first (surge), second (sway), third (heave), and sixth (yaw) columns.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ end do
+ do i = 1,6
+ do j = 4,5
+ if (i==1 .and. j==5) then
+ if ( ABS( p%WStff(i,j) - p%W0(3)) > MAX( RelTol * ABS(p%W0(3)), AbsTol) ) then
+ ErrStat=ErrID_Warn; ErrMsg='With RBMod>0, self-weight stiffness matrix entry (1,5) must be equal to W0(3).'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ else if (i==2 .and. j==4) then
+ if ( ABS( p%WStff(i,j) + p%W0(3)) > MAX( RelTol * ABS(p%W0(3)), AbsTol) ) then
+ ErrStat=ErrID_Warn; ErrMsg='With RBMod>0, self-weight stiffness matrix entry (2,4) must be equal to -W0(3).'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ else if (i==4 .and. j==4) then
+ if ( ABS( p%WStff(i,j) - p%W0(3)*p%RBCoG(3) ) > MAX( RelTol * ABS(p%W0(3)*p%RBCoG(3)), AbsTol) ) then
+ ErrStat=ErrID_Warn; ErrMsg='With RBMod>0, self-weight stiffness matrix entry (4,4) must be equal to W0(3)*zCG.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ else if (i==5 .and. j==5) then
+ if ( ABS( p%WStff(i,j) - p%W0(3)*p%RBCoG(3) ) > MAX( RelTol * ABS(p%W0(3)*p%RBCoG(3)), AbsTol) ) then
+ ErrStat=ErrID_Warn; ErrMsg='With RBMod>0, self-weight stiffness matrix entry (5,5) must be equal to W0(3)*zCG.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ else if (i==6 .and. j==4) then
+ if ( ABS( p%WStff(i,j) + p%W0(3)*p%RBCoG(1) ) > MAX( RelTol * ABS(p%W0(3)*p%RBCoG(1)), AbsTol) ) then
+ ErrStat=ErrID_Warn; ErrMsg='With RBMod>0, self-weight stiffness matrix entry (6,4) must be equal to -W0(3)*xCG.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ else if (i==6 .and. j==5) then
+ if ( ABS( p%WStff(i,j) + p%W0(3)*p%RBCoG(2) ) > MAX( RelTol * ABS(p%W0(3)*p%RBCoG(2)), AbsTol) ) then
+ ErrStat=ErrID_Warn; ErrMsg='With RBMod>0, self-weight stiffness matrix entry (6,5) must be equal to -W0(3)*yCG.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ else
+ if ( ABS( p%WStff(i,j) ) > AbsTol ) then
+ ErrStat=ErrID_Warn; ErrMsg='With RBMod>0, self-weight stiffness matrix entry ('//TRIM(num2lstr(i))//','//TRIM(num2lstr(j))//') should be zero.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ end if
+ end do
+ end do
+ end if
+end subroutine CheckReducedInputs
+subroutine CheckConnInputs(Inp, InitInp, p, ErrStat, ErrMsg)
+ TYPE(ExtPtfm_InputFile), INTENT(INOUT) :: Inp !< Data stored in the module's input file
+ TYPE(ExtPtfm_InitInputType), INTENT(IN ) :: InitInp !< Input data for initialization routine
+ TYPE(ExtPtfm_ParameterType), INTENT(INOUT) :: p !< All the parameter matrices stored in this input file
+ INTEGER(IntKi), INTENT(OUT) :: ErrStat !< Error status
+ CHARACTER(*), INTENT(OUT) :: ErrMsg !< Error message
+ INTEGER(IntKi) :: i,j,iConn
+ real(ReKi), dimension(3) :: RelPosConn0
+ REAL(ReKi), PARAMETER :: RelTol = 0.001_ReKi
+ REAL(ReKi), PARAMETER :: AbsTol = 0.0001_ReKi
+ ErrStat = ErrID_None
+ ErrMsg = ""
+
+ if ( Inp%HasRBMode ) then
+ ! If rigid-body modes are present, the first six columns of PhiConn must be consistent with rigid-body kinematics
+ do iConn=1,p%nConn
+ RelPosConn0 = p%PosConn(iConn,:) - [InitInp%PtfmRefxt,InitInp%PtfmRefyt,InitInp%PtfmRefzt]
+ do i = 1,3
+ do j = 1,3
+ if ( i == j ) then
+ if ( ABS( p%PhiConn(3*(iConn-1)+i,j) - 1.0_ReKi ) > AbsTol ) then
+ ErrStat=ErrID_Warn; ErrMsg='With rigid-body modes, entry ('//TRIM(num2lstr(3*(iConn-1)+i))//','//TRIM(num2lstr(j))//') of the connection displacement matrix should be 1.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ else
+ if ( ABS( p%PhiConn(3*(iConn-1)+i,j) ) > AbsTol ) then
+ ErrStat=ErrID_Warn; ErrMsg='With rigid-body modes, entry ('//TRIM(num2lstr(3*(iConn-1)+i))//','//TRIM(num2lstr(j))//') of the connection displacement matrix should be 0.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ end if
+ end do
+ if ( ABS( p%PhiConn(3*(iConn-1)+i,i+3) ) > AbsTol ) then
+ ErrStat=ErrID_Warn; ErrMsg='With rigid-body modes, entry ('//TRIM(num2lstr(3*(iConn-1)+i))//','//TRIM(num2lstr(i+3))//') of the connection displacement matrix should be 0.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ end do
+ if ( ABS( p%PhiConn(3*(iConn-1)+1,5) - RelPosConn0(3) ) > MAX( RelTol*ABS(RelPosConn0(3)) , AbsTol) ) then
+ ErrStat=ErrID_Warn; ErrMsg='With rigid-body modes, entry ('//TRIM(num2lstr(3*(iConn-1)+1))//','//TRIM(num2lstr(5))//') of the connection displacement matrix should be '//TRIM(num2lstr( RelPosConn0(3)))//'.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ if ( ABS( p%PhiConn(3*(iConn-1)+1,6) + RelPosConn0(2) ) > MAX( RelTol*ABS(RelPosConn0(2)) , AbsTol) ) then
+ ErrStat=ErrID_Warn; ErrMsg='With rigid-body modes, entry ('//TRIM(num2lstr(3*(iConn-1)+1))//','//TRIM(num2lstr(6))//') of the connection displacement matrix should be '//TRIM(num2lstr(-RelPosConn0(2)))//'.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ if ( ABS( p%PhiConn(3*(iConn-1)+2,4) + RelPosConn0(3) ) > MAX( RelTol*ABS(RelPosConn0(3)) , AbsTol) ) then
+ ErrStat=ErrID_Warn; ErrMsg='With rigid-body modes, entry ('//TRIM(num2lstr(3*(iConn-1)+2))//','//TRIM(num2lstr(4))//') of the connection displacement matrix should be '//TRIM(num2lstr(-RelPosConn0(3)))//'.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ if ( ABS( p%PhiConn(3*(iConn-1)+2,6) - RelPosConn0(1) ) > MAX( RelTol*ABS(RelPosConn0(1)) , AbsTol) ) then
+ ErrStat=ErrID_Warn; ErrMsg='With rigid-body modes, entry ('//TRIM(num2lstr(3*(iConn-1)+2))//','//TRIM(num2lstr(6))//') of the connection displacement matrix should be '//TRIM(num2lstr( RelPosConn0(1)))//'.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ if ( ABS( p%PhiConn(3*(iConn-1)+3,4) - RelPosConn0(2) ) > MAX( RelTol*ABS(RelPosConn0(2)) , AbsTol) ) then
+ ErrStat=ErrID_Warn; ErrMsg='With rigid-body modes, entry ('//TRIM(num2lstr(3*(iConn-1)+3))//','//TRIM(num2lstr(4))//') of the connection displacement matrix should be '//TRIM(num2lstr( RelPosConn0(2)))//'.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ if ( ABS( p%PhiConn(3*(iConn-1)+3,5) + RelPosConn0(1) ) > MAX( RelTol*ABS(RelPosConn0(1)) , AbsTol) ) then
+ ErrStat=ErrID_Warn; ErrMsg='With rigid-body modes, entry ('//TRIM(num2lstr(3*(iConn-1)+3))//','//TRIM(num2lstr(5))//') of the connection displacement matrix should be '//TRIM(num2lstr(-RelPosConn0(1)))//'.'; IF (ErrStat >= AbortErrLev) RETURN
+ end if
+ end do
+ end if
+
+end subroutine CheckConnInputs
!----------------------------------------------------------------------------------------------------------------------------------
-SUBROUTINE ReadPrimaryFile(InputFile, p, OutFileRoot, InputFileData, ErrStat, ErrMsg)
+SUBROUTINE ReadPrimaryFile(InputFile, InitInp, p, OutFileRoot, InputFileData, ErrStat, ErrMsg)
!..................................................................................................................................
! Passed variables
CHARACTER(*), INTENT(IN) :: InputFile !< Name of the file containing the primary input data
+ TYPE(ExtPtfm_InitInputType), INTENT(IN) :: InitInp !< Initialization input
TYPE(ExtPtfm_ParameterType), INTENT(INOUT) :: p !< All the parameter matrices stored in this input file
CHARACTER(*), INTENT(IN) :: OutFileRoot !< The rootname of all the output files written by this routine.
TYPE(ExtPtfm_InputFile), INTENT(OUT) :: InputFileData ! Data stored in the module's input file
@@ -401,13 +562,14 @@ SUBROUTINE ReadPrimaryFile(InputFile, p, OutFileRoot, InputFileData, ErrStat, Er
!---------------------- REDUCTION INPUTS ---------------------------------------------------
CALL ReadCom(UnIn, InputFile, 'Section Header: ReductionInputs', ErrStat, ErrMsg, UnEc); if(LineFailed()) return
- ! File Format switch
- CALL ReadVar(UnIn, InputFile, InputFileData%FileFormat, "FileFormat", "File format switch", ErrStat, ErrMsg, UnEc); if(LineFailed()) return
+ ! Rigid-body mode flag
+ CALL ReadVar(UnIn, InputFile, InputFileData%RBMod, "RBMod", "Method for handling rigid-body motion", ErrStat, ErrMsg, UnEc); if(LineFailed()) return
+ InputFileData%hasRBMode = InputFileData%RBMod > 0_IntKi
! Reduction Filename
CALL ReadVar(UnIn, InputFile, InputFileData%RedFile , 'Red_FileName', 'Path containing Guyan/Craig-Bampton inputs', ErrStat, ErrMsg, UnEc); if(LineFailed()) return
IF ( PathIsRelative(InputFileData%RedFile) ) InputFileData%RedFile = TRIM(PriPath)//TRIM(InputFileData%RedFile)
- CALL ReadVar(UnIn, InputFile, InputFileData%RedFileCst, 'RedCst_FileName', 'Path containing Guyan/Craig-Bampton constant inputs', ErrStat, ErrMsg, UnEc); if(LineFailed()) return
- IF ( PathIsRelative(InputFileData%RedFileCst) ) InputFileData%RedFileCst = TRIM(PriPath)//TRIM(InputFileData%RedFileCst)
+ !CALL ReadVar(UnIn, InputFile, InputFileData%RedFileCst, 'RedCst_FileName', 'Path containing Guyan/Craig-Bampton constant inputs', ErrStat, ErrMsg, UnEc); if(LineFailed()) return
+ !IF ( PathIsRelative(InputFileData%RedFileCst) ) InputFileData%RedFileCst = TRIM(PriPath)//TRIM(InputFileData%RedFileCst)
CALL ReadVar(UnIn, InputFile, N , 'NActiveCBDOF','Number of active CB mode listed in ActiveCBDOF, -1 for all modes', ErrStat, ErrMsg, UnEc ); if(LineFailed()) return
if (N<0) then
CALL ReadCom(UnIn, InputFile, 'ActiveCBDOF', ErrStat, ErrMsg, UnEc); if(LineFailed()) return
@@ -434,6 +596,19 @@ SUBROUTINE ReadPrimaryFile(InputFile, p, OutFileRoot, InputFileData, ErrStat, Er
CALL AllocAry(InputFileData%InitVelList, N, 'InitVelList', ErrStat, ErrMsg ); if (Failed()) return
CALL ReadAry(UnIn, InputFile, InputFileData%InitVelList, N, 'InitVelList', 'Initial velocities', ErrStat, ErrMsg, UnEc); if(LineFailed()) return
endif
+ !---------------------- CONNECTION INPUTS ---------------------------------------
+ CALL ReadCom(UnIn, InputFile, 'Section Header: Connections', ErrStat, ErrMsg, UnEc); if(LineFailed()) return
+ CALL ReadVar(UnIn, InputFile, InputFileData%HasConnections, 'Connections','Flag for connections', ErrStat, ErrMsg, UnEc ); if(LineFailed()) return
+ CALL ReadVar(UnIn, InputFile, InputFileData%ConnFile, 'Conn_FileName', 'Path containing connections inputs', ErrStat, ErrMsg, UnEc); if(LineFailed()) return
+ IF ( PathIsRelative(InputFileData%ConnFile) ) InputFileData%ConnFile = TRIM(PriPath)//TRIM(InputFileData%ConnFile)
+ !---------------------- USER FORCING INPUTS ---------------------------------------
+ CALL ReadCom(UnIn, InputFile, 'Section Header: User Forcing', ErrStat, ErrMsg, UnEc); if(LineFailed()) return
+ CALL ReadVar(UnIn, InputFile, InputFileData%HasUserForcing, 'UserForcing','Flag for user prescribed modal forcing', ErrStat, ErrMsg, UnEc ); if(LineFailed()) return
+ CALL ReadVar(UnIn, InputFile, InputFileData%ForceFile, 'Force_FileName', 'Path containing user modal forcing inputs', ErrStat, ErrMsg, UnEc); if(LineFailed()) return
+ IF ( PathIsRelative(InputFileData%ForceFile) ) InputFileData%ForceFile = TRIM(PriPath)//TRIM(InputFileData%ForceFile)
+ CALL ReadVar(UnIn, InputFile, InputFileData%HasConnForcing, 'ConnForcing','Flag for user prescribed connection forcing', ErrStat, ErrMsg, UnEc ); if(LineFailed()) return
+ CALL ReadVar(UnIn, InputFile, InputFileData%FConnFile, 'FConn_FileName', 'Path containing user connection forcing inputs', ErrStat, ErrMsg, UnEc); if(LineFailed()) return
+ IF ( PathIsRelative(InputFileData%FConnFile) ) InputFileData%FConnFile = TRIM(PriPath)//TRIM(InputFileData%FConnFile)
!---------------------- OUTPUT --------------------------------------------------
CALL ReadCom(UnIn, InputFile, 'Section Header: Output', ErrStat, ErrMsg, UnEc); if(LineFailed()) return
! SumPrint - Print summary data to .sum (flag):
@@ -454,10 +629,39 @@ SUBROUTINE ReadPrimaryFile(InputFile, p, OutFileRoot, InputFileData, ErrStat, Er
call cleanup()
! --- Reading Reduced file
- call ReadReducedFile(InputFileData%RedFile, p, InputFileData%FileFormat, ErrStat, ErrMsg); if(Failed()) return;
+ call ReadReducedFile(InputFileData%RedFile, p, ErrStat, ErrMsg); if(Failed()) return
! Checking that everyting was correctly read and set
- call CheckInputs(InputFileData, p, ErrStat, ErrMsg); if(Failed()) return
+ call CheckReducedInputs(InputFileData, p, ErrStat, ErrMsg); if(Failed()) return
+
+ ! --- Reading connection file
+ if (InputFileData%hasConnections) then
+ call ReadConnFile(InputFileData%ConnFile, p, ErrStat, ErrMsg); if(Failed()) return
+ call CheckConnInputs(InputFileData, InitInp, p, ErrStat, ErrMsg); if(Failed()) return
+ else
+ p%NConn = 0_IntKi
+ end if
+
+ ! --- Reading user modal forcing file
+ if (InputFileData%HasUserForcing) then
+ call ReadForceFile(InputFileData%ForceFile, p%nTot, p%UsrModeF, ErrStat, ErrMsg); if(Failed()) return
+ else
+ p%UsrModeF%nTimeSteps = 1_IntKi
+ call allocAry( p%UsrModeF%Forces, 1_IntKi, p%nTot, 'p%UsrModeF%Forces', ErrStat, ErrMsg); if(Failed()) return
+ call allocAry( p%UsrModeF%times , 1_IntKi, 'p%UsrModeF%times' , ErrStat, ErrMsg); if(Failed()) return
+ p%UsrModeF%Forces= 0.0_ReKi
+ p%UsrModeF%times = 0.0_ReKi
+ end if
+ ! --- Reading user connection forcing file
+ if (InputFileData%HasConnForcing) then
+ call ReadForceFile(InputFileData%FConnFile, p%nConn*3, p%UsrConnF, ErrStat, ErrMsg); if(Failed()) return
+ else
+ p%UsrConnF%nTimeSteps = 1_IntKi
+ call allocAry( p%UsrConnF%Forces, 1_IntKi, p%nConn*3, 'p%UsrConnF%Forces', ErrStat, ErrMsg); if(Failed()) return
+ call allocAry( p%UsrConnF%times , 1_IntKi, 'p%UsrConnF%times' , ErrStat, ErrMsg); if(Failed()) return
+ p%UsrConnF%Forces= 0.0_ReKi
+ p%UsrConnF%times = 0.0_ReKi
+ end if
! --- Reducing the number of DOF if needed
p%nCBFull=p%nCB
@@ -515,7 +719,10 @@ SUBROUTINE ReduceNumberOfDOF(p, ErrStat, ErrMsg)
call SquareMatRed(p%Mass)
call SquareMatRed(p%Stff)
call SquareMatRed(p%Damp)
- call TimeMatRed(p%Forces)
+ call TimeMatRed(p%UsrModeF%Forces)
+ if (allocated(p%PhiConn)) then
+ call RectMatRed(p%PhiConn)
+ end if
! Trigger
p%nCB = size(p%ActiveCBDOF)
@@ -540,6 +747,22 @@ subroutine SquareMatRed(M)
deallocate(tmp)
end subroutine
!> Takes M and returns M(:,I) where I is a list of indexes to keep
+ subroutine RectMatRed(M)
+ real(Reki), dimension(:,:), allocatable :: M
+ real(Reki), dimension(:,:), allocatable :: tmp
+ integer(IntKi) :: J
+ ! Storing M to a tmp array
+ call allocAry( tmp, size(M,1), size(M,2), 'Mtmp', ErrStat, ErrMsg); if(Failed()) return
+ tmp=M
+ ! Reallocating M and storing only the desired DOF
+ deallocate(M)
+ call allocAry(M, size(tmp,1), nActive, 'M', ErrStat, ErrMsg); if(Failed()) return
+ do J=1,nActive
+ M(:,J) = tmp(:, FullActiveCBDOF(J))
+ enddo
+ deallocate(tmp)
+ end subroutine
+ !> Takes M and returns M(:,I) where I is a list of indexes to keep
subroutine TimeMatRed(M)
real(Reki), dimension(:,:), allocatable :: M
real(Reki), dimension(:,:), allocatable :: tmp
@@ -565,13 +788,12 @@ END SUBROUTINE ReduceNumberOfDOF
!..................................................................................................................................
-SUBROUTINE ReadReducedFile( InputFile, p, FileFormat, ErrStat, ErrMsg )
+SUBROUTINE ReadReducedFile( InputFile, p, ErrStat, ErrMsg )
!..................................................................................................................................
! Passed variables
CHARACTER(*), INTENT(IN) :: InputFile !< Name of the file containing the primary input data
TYPE(ExtPtfm_ParameterType), INTENT(INOUT) :: p !< All the parameter matrices stored in this input file
- INTEGER(IntKi), INTENT(IN) :: FileFormat !< File format for reduction inputs
- INTEGER(IntKi), INTENT(OUT) :: ErrStat !< Error status
+ INTEGER(IntKi), INTENT(OUT) :: ErrStat !< Error status
CHARACTER(*), INTENT(OUT) :: ErrMsg !< Error message
! Local variables:
REAL(ReKi), dimension(:),allocatable :: TmpAry ! temporary array for reading row from file
@@ -581,230 +803,247 @@ SUBROUTINE ReadReducedFile( InputFile, p, FileFormat, ErrStat, ErrMsg )
CHARACTER(4096) :: Line ! Temporary storage of a line from the input file (to compare with "default")
ErrStat = ErrID_None
ErrMsg = ""
- if (FileFormat==FILEFORMAT_GUYANASCII) then
- call ReadGuyanASCII()
- elseif (FileFormat==FILEFORMAT_FLEXASCII) then
- call ReadFlexASCII()
- else
- call SetErrStat(ErrID_Fatal, 'FileFormat not implemented: '//trim(Num2LStr(FileFormat)), ErrStat, ErrMsg, 'ExtPtfm_ReadReducedFile')
- return
- endif
- ! --- The code below can detect between FlexASCII and GuyanASCII format by looking at the two first lines
- ! Get an available unit number for the file.
- !CALL GetNewUnit( UnIn, ErrStat, ErrMsg ); if(Failed()) return
- !! Open the Primary input file.
- !CALL OpenFInpFile ( UnIn, InputFile, ErrStat, ErrMsg ); if(Failed()) return
- !iLine=1
- !!-------------------------- Read the first two lines
- !CALL ReadStr( UnIn, InputFile, Line, 'Line'//Num2LStr(iLine), 'External Platform MCKF file', ErrStat, ErrMsg)
- !if(Failed()) return
- !iLine=iLine+1
- !CALL ReadStr( UnIn, InputFile, Line2, 'Line'//Num2LStr(iLine), 'External Platform MCKF file', ErrStat, ErrMsg)
- !if(Failed()) return
- !iLine=iLine+1
- !call CONV2UC(Line)
- !call CONV2UC(Line2)
- !call cleanup()
- !!-------------------------- Detecting file format
- !if (index(Line2,'#MASS')==1) then
- ! write(*,*) 'File detected as Guyan ASCII file format: '//trim(InputFile)
- ! call ReadGuyanASCII()
- !else if (index(Line2,'FLEX 5 FORMAT')>=1) then
- ! write(*,*) 'File detected as FLEX ASCII file format: '//trim(InputFile)
- ! call ReadFlexASCII()
- !endif
+
+ ! Get an available unit number for the file.
+ CALL GetNewUnit( UnIn, ErrStat, ErrMsg ); if ( ErrStat /= 0 ) return
+ ! Open the Primary input file.
+ CALL OpenFInpFile(UnIn, InputFile, ErrStat, ErrMsg); if ( ErrStat /= 0 ) return
+
+ ! --- Reading file line by line
+ ErrStat=0
+ iLine=0
+ do while (ErrStat==0)
+ iLine=iLine+1
+ read(UnIn,'(A)', iostat=ErrStat) Line
+ if (ErrStat/=0) then
+ if (ErrStat < 0) then
+ ErrStat=0 ! End of file is fine
+ else
+ ErrMsg='Error while reading file '//trim(InputFile)// ' line '//Num2LStr(iLine)
+ endif
+ exit
+ endif
+ ! Line content is analyzed as case insensitive
+ call Conv2UC(Line)
+ if (index(Line,'!DIMENSION')==1) then
+ p%nTot = ReadIntFromStr(Line(12:), '`dimension`, file '//trim(InputFile)//', line '//Num2LStr(iLine), ErrStat, ErrMsg); if (ErrStat /= 0) exit
+ p%nCB=p%nTot-6
+
+ else if (index(Line,'!MASS')==1) then
+ if (p%nTot<0) exit
+ call ReadRealMatrix(UnIn, InputFile, p%Mass, 'Mass Matrix', p%nTot, p%nTot, ErrStat, ErrMsg, iLine)
+ else if (index(Line,'!STIFFNESS')==1) then
+ if (p%nTot<0) exit
+ call ReadRealMatrix(UnIn, InputFile, p%Stff, 'Stiffness Matrix', p%nTot, p%nTot, ErrStat, ErrMsg, iLine)
+ else if (index(Line,'!DAMPING')==1) then
+ if (p%nTot<0) exit
+ call ReadRealMatrix(UnIn, InputFile, p%Damp, 'Damping Matrix', p%nTot, p%nTot, ErrStat, ErrMsg, iLine)
+ else if (index(Line,'!WEIGHT CONSTANT')==1) then
+ if (p%nTot<0) exit
+ CALL AllocAry(p%W0, p%nTot, 'W0', ErrStat, ErrMsg ); if (Failed()) return
+ call ReadAry(UnIn, InputFile, p%W0, p%nTot, 'W0', 'Weight constant', ErrStat, ErrMsg)
+ else if (index(Line,'!WEIGHT STIFFNESS')==1) then
+ if (p%nTot<0) exit
+ call ReadRealMatrix(UnIn, InputFile, p%WStff, 'Weight stiffness', p%nTot, p%nTot, ErrStat, ErrMsg, iLine)
+ ! elseif (index(Line,'!')==1) then
+ !write(*,*) 'Ignored comment: '//trim(Line)
+ ! else
+ ! Ignore unsupported lines
+ !write(*,*) 'Ignored line: '//trim(Line)
+ endif
+ enddo
+ close( UnIn )
CONTAINS
- !>
logical function Failed()
CALL SetErrStatSimple(ErrStat, ErrMsg, 'ExtPtfm_ReadReducedFile')
Failed = ErrStat >= AbortErrLev
if(Failed) call cleanup()
end function Failed
- !>
subroutine cleanup()
close( UnIn )
if (allocated(TmpAry)) deallocate(TmpAry)
end subroutine cleanup
+END SUBROUTINE ReadReducedFile
- !> Reads a FLEX ASCII file for Guyan or CraigBampton reductions
- SUBROUTINE ReadFlexASCII()
- REAL(ReKi) :: dt !< time step
- REAL(ReKi) :: T !< total simulation time
-
- T=-1
- dt=-1
- ! Get an available unit number for the file.
- CALL GetNewUnit( UnIn, ErrStat, ErrMsg ); if ( ErrStat /= 0 ) return
- ! Open the Primary input file.
- CALL OpenFInpFile(UnIn, InputFile, ErrStat, ErrMsg); if ( ErrStat /= 0 ) return
-
- ! --- Reading file line by line
- ErrStat=0
- iLine=0
- do while (ErrStat==0)
- iLine=iLine+1
- read(UnIn,'(A)', iostat=ErrStat) Line
- if (ErrStat/=0) then
- if (ErrStat < 0) then
- ErrStat=0 ! End of file is fine
- else
- ErrMsg='Error while reading file '//trim(InputFile)// ' line '//Num2LStr(iLine)
- endif
- exit
- endif
- ! Line content is analyzed as case incensitive
- call Conv2UC(Line)
- if (index(Line,'!DIMENSION')==1) then
- p%nTot = ReadIntFromStr(Line(12:), '`dimension`, file '//trim(InputFile)//', line '//Num2LStr(iLine), ErrStat, ErrMsg); if (ErrStat /= 0) exit
- p%nCB=p%nTot-6
-
- else if (index(Line,'!TIME INCREMENT IN SIMULATION:')==1) then
- dt = ReadFloatFromStr(Line(31:), '`time increment`, file '//trim(InputFile)//', line '//Num2LStr(iLine), ErrStat, ErrMsg); if (ErrStat /= 0) exit
-
- else if (index(Line,'!TOTAL SIMULATION TIME IN FILE:')==1) then
- T = ReadFloatFromStr(Line(32:), '`total simulation time`, file '//trim(InputFile)//', line '//Num2LStr(iLine), ErrStat, ErrMsg ); if (ErrStat /= 0) exit
-
- else if (index(Line,'!MASS MATRIX')==1) then
- iLine=iLine+1
- CALL ReadCom( UnIn, InputFile, 'Comment - Line '//Num2LStr(iLine), ErrStat, ErrMsg); if (ErrStat /= 0) exit
- if (p%nTot<0) exit
- call ReadRealMatrix(UnIn, InputFile, p%Mass, 'Mass Matrix', p%nTot, p%nTot, ErrStat, ErrMsg, iLine)
-
- else if (index(Line,'!STIFFNESS MATRIX')==1) then
- iLine=iLine+1
- CALL ReadCom( UnIn, InputFile, 'Comment - Line '//Num2LStr(iLine), ErrStat, ErrMsg); if (ErrStat /= 0) exit
- if (p%nTot<0) exit
- call ReadRealMatrix(UnIn, InputFile, p%Stff, 'Stiffness Matrix', p%nTot, p%nTot, ErrStat, ErrMsg, iLine)
-
- else if (index(Line,'!DAMPING MATRIX')==1) then
- iLine=iLine+1
- CALL ReadCom( UnIn, InputFile, 'Comment - Line '//Num2LStr(iLine), ErrStat, ErrMsg); if (ErrStat /= 0) exit
- if (p%nTot<0) exit
- call ReadRealMatrix(UnIn, InputFile, p%Damp, 'Damping Matrix', p%nTot, p%nTot, ErrStat, ErrMsg, iLine)
-
- else if (index(Line,'!LOADING')==1) then
- iLine=iLine+1
- CALL ReadCom( UnIn, InputFile, 'Comment - Line '//Num2LStr(iLine), ErrStat, ErrMsg)
- if (ErrStat /= 0) exit
- p%nTimeSteps = nint(T/dt)+1
- if (p%nTot<0) exit
- call allocAry( p%Forces, max(1,p%nTimeSteps), p%nTot, 'p%Forces' , ErrStat, ErrMsg); if (ErrStat /= 0) exit
- call allocAry( p%times , max(1,p%nTimeSteps), 'p%times', ErrStat, ErrMsg); if (ErrStat /= 0) exit
- if (p%nTimeSteps == 0) then
- p%Forces= 0.0_ReKi
- p%times = 0.0_ReKi
- p%nTimeSteps = 1
- else
- allocate(TmpAry(1:p%nTot+1))
- do i=1,p%nTimeSteps
- iLine=iLine+1
- TmpAry(1:p%nTot+1)=-999.9E-09
- read(UnIn, fmt='(A)', iostat=ErrStat) Line
- if (ErrStat/=0) then
- ErrStat = ErrID_Fatal
- ErrMSg='Failed to read line '//trim(Num2LStr(iLine))//' (out of '//trim(Num2LStr(p%nTimeSteps))//' expected lines) in file: '//trim(InputFile)
- exit
- end if
- ! Extract fields (ReadR8AryFromStr is in NWTC_IO)
- CALL ReadAry(Line, TmpAry, p%nTot+1, 'Forces', 'Forces', ErrStat, ErrMsg)
- if (ErrStat/=0) then
- ErrStat = ErrID_Fatal
- ErrMsg='Failed to extract fields from line '//trim(Num2LStr(iLine))//'. '//trim(ErrMsg)//'. Check that the number of columns is correct in file: '//trim(InputFile)
- exit
- end if
- if (ErrStat /= 0) exit
- p%times(i) = TmpAry(1)
- p%Forces(i,:) = TmpAry(2:p%nTot+1)
- end do
- end if
+!..................................................................................................................................
+SUBROUTINE ReadConnFile( InputFile, p, ErrStat, ErrMsg )
+!..................................................................................................................................
+ ! Passed variables
+ CHARACTER(*), INTENT(IN) :: InputFile !< Name of the file containing the primary input data
+ TYPE(ExtPtfm_ParameterType), INTENT(INOUT) :: p !< All the parameter matrices stored in this input file
+ INTEGER(IntKi), INTENT(OUT) :: ErrStat !< Error status
+ CHARACTER(*), INTENT(OUT) :: ErrMsg !< Error message
+ ! Local variables:
+ INTEGER(IntKi) :: UnIn ! Unit number for reading file
+ INTEGER(IntKi) :: iLine ! Current position in file
+ CHARACTER(4096) :: Line ! Temporary storage of a line from the input file (to compare with "default")
+ ErrStat = ErrID_None
+ ErrMsg = ""
+
+ ! Get an available unit number for the file.
+ CALL GetNewUnit( UnIn, ErrStat, ErrMsg ); if (Failed()) return
+ ! Open the Primary input file.
+ CALL OpenFInpFile(UnIn, InputFile, ErrStat, ErrMsg); if (Failed()) return
- elseif (index(Line,'!')==1) then
- !write(*,*) 'Ignored comment: '//trim(Line)
+ ! --- Reading file line by line
+ ErrStat=0
+ iLine=0
+ do while (ErrStat==0)
+ iLine=iLine+1
+ read(UnIn,'(A)', iostat=ErrStat) Line
+ if (ErrStat/=0) then
+ if (ErrStat < 0) then
+ ErrStat=0 ! End of file is fine
else
- ! Ignore unsupported lines
- !write(*,*) 'Ignored line: '//trim(Line)
+ ErrMsg='Error while reading file '//trim(InputFile)// ' line '//Num2LStr(iLine)
endif
- enddo
- close( UnIn )
- END SUBROUTINE ReadFlexASCII
-
- !> Reads a Guyan ASCII file
- SUBROUTINE ReadGuyanASCII()
- ! Guyan reduction has 6 DOF, 0 CB DOFs
- p%nCB = 0
- p%nTot = 6
- ! Get an available unit number for the file.
- CALL GetNewUnit( UnIn, ErrStat, ErrMsg ); if ( ErrStat /= 0 ) return
- ! Open the Primary input file.
- CALL OpenFInpFile ( UnIn, InputFile, ErrStat, ErrMsg ); if ( ErrStat /= 0 ) return
+ exit
+ endif
+ ! Line content is analyzed as case insensitive
+ call Conv2UC(Line)
+ if (index(Line,'!NCONN:')==1) then
+ p%nConn = ReadIntFromStr(Line(8:), '`Nconn`, file '//trim(InputFile)//', line '//Num2LStr(iLine), ErrStat, ErrMsg); if (Failed()) return
+ if (p%nConn<=0_IntKi) return
+ else if (index(Line,'!CONNECTIONS')==1) then
+ call ReadRealMatrix(UnIn, InputFile, p%PosConn, 'Connections', p%nConn, 3_IntKi, ErrStat, ErrMsg, iLine)
+ else if (index(Line,'!DISPLACEMENT')==1) then
+ call ReadRealMatrix(UnIn, InputFile, p%PhiConn, 'Displacement', 3*p%nConn, p%nTot, ErrStat, ErrMsg, iLine)
+ ! else if (index(Line,'!')==1) then
+ !write(*,*) 'Ignored comment: '//trim(Line)
+ ! else
+ ! Ignore unsupported lines
+ !write(*,*) 'Ignored line: '//trim(Line)
+ end if
+ end do
+ close( UnIn )
- !-------------------------- HEADER ---------------------------------------------
- CALL ReadStr( UnIn, InputFile, Line, 'Header line', 'File Header: External Platform MCKF Matrices (line 1)', ErrStat, ErrMsg)
- if ( ErrStat /= 0 ) return
- !---------------------- MASS MATRIX --------------------------------------
- CALL ReadCom( UnIn, InputFile, 'Section Header: Mass Matrix', ErrStat, ErrMsg)
- if ( ErrStat /= 0 ) return
- CALL ReadRealMatrix(UnIn, InputFile, p%Mass, 'Mass Matrix', p%nTot, p%nTot, ErrStat, ErrMsg, iLine)
- if ( ErrStat /= 0 ) return
- !---------------------- DAMPING MATRIX --------------------------------------
- CALL ReadCom( UnIn, InputFile, 'Section Header: Damping Matrix', ErrStat, ErrMsg)
- if ( ErrStat /= 0 ) return
- CALL ReadRealMatrix(UnIn, InputFile, p%Damp, 'Damping Matrix', p%nTot, p%nTot, ErrStat, ErrMsg, iLine)
- if ( ErrStat /= 0 ) return
- !---------------------- STIFFNESS MATRIX --------------------------------------
- CALL ReadCom( UnIn, InputFile, 'Section Header: Stiffness Matrix', ErrStat, ErrMsg)
- if ( ErrStat /= 0 ) return
- CALL ReadRealMatrix(UnIn, InputFile, p%Stff, 'Stiffness Matrix', p%nTot, p%nTot, ErrStat, ErrMsg, iLine)
- if ( ErrStat /= 0 ) return
- !---------------------- LOAD time-history --------------------------------------
- p%nTimeSteps = 0
- CALL ReadCom( UnIn, InputFile, 'Section Header: Loads time-history', ErrStat, ErrMsg)
- CALL ReadCom( UnIn, InputFile, 'Loads time-history table channel names', ErrStat, ErrMsg)
- CALL ReadCom( UnIn, InputFile, 'Loads time-history table channel units', ErrStat, ErrMsg)
- allocate(TmpAry(1:p%nTot+1))
- if (ErrStat < AbortErrLev) then
- ! let's figure out how many rows of data are in the time-history table:
- read( UnIn, *, IOSTAT=ErrStat ) TmpAry
- do while (ErrStat==0)
- p%nTimeSteps = p%nTimeSteps + 1
- read( UnIn, *, IOSTAT=ErrStat ) TmpAry
- end do
- end if
- call allocAry( p%Forces, max(1,p%nTimeSteps), p%nTot, 'p%Forces', ErrStat, ErrMsg); if ( ErrStat /= 0 ) return
- call allocAry( p%times , max(1,p%nTimeSteps), 'p%times' , ErrStat, ErrMsg); if ( ErrStat /= 0 ) return
- if (p%nTimeSteps == 0) then
- p%Forces = 0.0_ReKi
- p%times = 0.0_ReKi
- p%nTimeSteps = 1
- else
- rewind(UnIn)
- do i=1,25 ! skip the first 25 rows of the file until we get to the data for the time-history table
- read(UnIn,*,IOSTAT=ErrStat) line
- end do
- do i=1,p%nTimeSteps
- read(UnIn, fmt='(A)', iostat=ErrStat) Line
- if (ErrStat/=0) then
+CONTAINS
+ logical function Failed()
+ CALL SetErrStatSimple(ErrStat, ErrMsg, 'ExtPtfm_ReadConnFile')
+ Failed = ErrStat >= AbortErrLev
+ if(Failed) call cleanup()
+ end function Failed
+ subroutine cleanup()
+ close( UnIn )
+ end subroutine cleanup
+END SUBROUTINE ReadConnFile
+
+!..................................................................................................................................
+SUBROUTINE ReadForceFile( InputFile, n, UserForcing, ErrStat, ErrMsg )
+!..................................................................................................................................
+ ! Passed variables
+ CHARACTER(*), INTENT(IN) :: InputFile !< Name of the file containing the primary input data
+ INTEGER(IntKi), INTENT(IN) :: n !< Number of load components expected
+ TYPE(UserForcingType), INTENT(INOUT) :: UserForcing !< User-specified forcing time series
+ INTEGER(IntKi), INTENT(OUT) :: ErrStat !< Error status
+ CHARACTER(*), INTENT(OUT) :: ErrMsg !< Error message
+ ! Local variables:
+ REAL(ReKi), dimension(:),allocatable :: TmpAry ! temporary array for reading row from file
+ INTEGER(IntKi) :: I ! loop counter
+ INTEGER(IntKi) :: UnIn ! Unit number for reading file
+ INTEGER(IntKi) :: iLine ! Current position in file
+ CHARACTER(4096) :: Line ! Temporary storage of a line from the input file (to compare with "default")
+ LOGICAL :: foundNSteps
+ LOGICAL :: foundForcing
+ ErrStat = ErrID_None
+ ErrMsg = ""
+
+ foundNSteps = .false.
+ foundForcing = .false.
+
+ UserForcing%nTimeSteps = 0_IntKi
+
+ ! Get an available unit number for the file.
+ CALL GetNewUnit( UnIn, ErrStat, ErrMsg ); if (Failed()) return
+ ! Open the Primary input file.
+ CALL OpenFInpFile(UnIn, InputFile, ErrStat, ErrMsg); if (Failed()) return
+
+ ! --- Reading file line by line
+ ErrStat=0
+ iLine=0
+ do while (ErrStat==0)
+ iLine=iLine+1
+ read(UnIn,'(A)', iostat=ErrStat) Line
+ if (ErrStat/=0) then
+ if (ErrStat < 0) then
+ ErrStat=0 ! End of file is fine
+ else
+ ErrMsg='Error while reading file '//trim(InputFile)// ' line '//Num2LStr(iLine)
+ endif
+ exit
+ endif
+ ! Line content is analyzed as case insensitive
+ call Conv2UC(Line)
+ if (index(Line,'!NSTEPS')==1) then
+ foundNSteps = .true.
+ UserForcing%nTimeSteps = ReadIntFromStr(Line(9:), '`Nsteps`, file '//trim(InputFile)//', line '//Num2LStr(iLine), ErrStat, ErrMsg); if (Failed()) return
+ else if (index(Line,'!FORCING')==1) then
+ foundForcing = .true.
+ if (n<0 .or. UserForcing%nTimeSteps==0) exit
+ call allocAry( UserForcing%Forces, max(1,UserForcing%nTimeSteps), n, 'UserForcing%Forces', ErrStat, ErrMsg); if (Failed()) return
+ call allocAry( UserForcing%times , max(1,UserForcing%nTimeSteps), 'UserForcing%times' , ErrStat, ErrMsg); if (Failed()) return
+ allocate(TmpAry(1:n+1))
+ do i=1,UserForcing%nTimeSteps
+ iLine=iLine+1
+ TmpAry(1:n+1)=-999.9E-09
+ read(UnIn, fmt='(A)', iostat=ErrStat) Line
+ if (ErrStat/=0) then
ErrStat = ErrID_Fatal
- ErrMSg='Failed to read line '//trim(Num2LStr(iLine))//' (out of '//trim(Num2LStr(p%nTimeSteps))//' expected lines) in file: '//trim(InputFile)
+ ErrMSg='Failed to read line '//trim(Num2LStr(iLine))//' (out of '//trim(Num2LStr(UserForcing%nTimeSteps))//' expected lines) in file: '//trim(InputFile)
exit
- end if
- ! Extract fields (ReadR8AryFromStr is in NWTC_IO)
- CALL ReadAry(Line, TmpAry, p%nTot+1, 'Forces', 'Forces', ErrStat, ErrMsg)
- if (ErrStat/=0) then
+ end if
+ ! Extract fields (ReadR8AryFromStr is in NWTC_IO)
+ CALL ReadAry(Line, TmpAry, n+1, 'Forces', 'Forces', ErrStat, ErrMsg)
+ if (ErrStat/=0) then
ErrStat = ErrID_Fatal
ErrMsg='Failed to extract fields from line '//trim(Num2LStr(iLine))//'. '//trim(ErrMsg)//'. Check that the number of columns is correct in file: '//trim(InputFile)
exit
- end if
- if ( ErrStat /= 0 ) return
- p%times(i) = TmpAry(1)
- p%Forces(i,:) = TmpAry(2:p%nTot+1)
- end do
- end if
- !---------------------- END OF FILE -----------------------------------------
- close( UnIn )
- END SUBROUTINE ReadGuyanASCII
-END SUBROUTINE ReadReducedFile
+ end if
+ if (ErrStat /= 0) exit
+ UserForcing%times(i) = TmpAry(1)
+ UserForcing%Forces(i,:) = TmpAry(2:n+1)
+ end do
+ ! elseif (index(Line,'!')==1) then
+ !write(*,*) 'Ignored comment: '//trim(Line)
+ ! else
+ ! Ignore unsupported lines
+ !write(*,*) 'Ignored line: '//trim(Line)
+ end if
+ enddo
+ close( UnIn )
+
+ if (.not.foundNSteps) then
+ ErrStat = ErrID_Fatal
+ ErrMsg = "Did not find '!NSteps:' followed by the number of time steps in file "//trim(InputFile)//"."
+ if(Failed()) return
+ end if
+
+ if (.not.foundForcing) then
+ ErrStat = ErrID_Fatal
+ ErrMsg = "Did not find forcing time series after '!FORCING' in file "//trim(InputFile)//". Note that the time series should be after '!NSteps:'."
+ if(Failed()) return
+ end if
+
+ if (UserForcing%nTimeSteps <= 0_IntKi) then
+ UserForcing%nTimeSteps = 1_IntKi
+ call allocAry( UserForcing%Forces, 1_IntKi, n, 'UserForcing%Forces', ErrStat, ErrMsg); if(Failed()) return
+ call allocAry( UserForcing%times , 1_IntKi, 'UserForcing%times' , ErrStat, ErrMsg); if(Failed()) return
+ UserForcing%Forces= 0.0_ReKi
+ UserForcing%times = 0.0_ReKi
+ end if
+
+CONTAINS
+ logical function Failed()
+ CALL SetErrStatSimple(ErrStat, ErrMsg, 'ExtPtfm_ReadForceFile')
+ Failed = ErrStat >= AbortErrLev
+ if(Failed) call cleanup()
+ end function Failed
+ subroutine cleanup()
+ close( UnIn )
+ if (allocated(TmpAry)) deallocate(TmpAry)
+ end subroutine cleanup
+END SUBROUTINE ReadForceFile
!> This routine generates the summary file, which contains a regurgitation of the input data and interpolated flexible body data.
SUBROUTINE ExtPtfm_PrintSum(x, p, m, RootName, ErrStat, ErrMsg)
@@ -843,9 +1082,9 @@ SUBROUTINE ExtPtfm_PrintSum(x, p, m, RootName, ErrStat, ErrMsg)
write(UnSu,'(A,A)') 'Time integration method : ',StrIntMethod(p%IntMethod)
write(UnSu,'(A,F13.8)')'Integration time step : ',p%EP_DeltaT
write(UnSu,'(A)') '!Reduction input file'
- write(UnSu,'(A,I0)') 'Number of time steps : ',p%nTimeSteps
- write(UnSu,'(A,F13.8)')'Start time : ',p%times(1)
- write(UnSu,'(A,F13.8)')'End time : ',p%times(p%nTimeSteps)
+ !write(UnSu,'(A,I0)') 'Number of time steps : ',p%nTimeSteps
+ !write(UnSu,'(A,F13.8)')'Start time : ',p%times(1)
+ !write(UnSu,'(A,F13.8)')'End time : ',p%times(p%nTimeSteps)
write(UnSu,'(A,I0)') 'Total number of DOF (input) : ',p%nCBFull+6
write(UnSu,'(A,I0)') 'Number of CB modes (input) : ',p%nCBFull
write(UnSu,'(A)') '!Degrees of freedom'
@@ -861,11 +1100,11 @@ SUBROUTINE ExtPtfm_PrintSum(x, p, m, RootName, ErrStat, ErrMsg)
call disp1r8(UnSu, 'qm' ,x%qm)
call disp1r8(UnSu, 'qmdot',x%qmdot)
- write(UnSu,'(A)')'!State matrices'
- call disp2r8(UnSu, 'A',p%AMat)
- call disp2r8(UnSu, 'B',p%BMat)
- call disp2r8(UnSu, 'C',p%CMat)
- call disp2r8(UnSu, 'D',p%DMat)
+ !write(UnSu,'(A)')'!State matrices'
+ !call disp2r8(UnSu, 'A',p%AMat)
+ !call disp2r8(UnSu, 'B',p%BMat)
+ !call disp2r8(UnSu, 'C',p%CMat)
+ !call disp2r8(UnSu, 'D',p%DMat)
write(UnSu,'(A)')'!Input matrices'
call disp2r8(UnSu, 'M',p%Mass)
call disp2r8(UnSu, 'K',p%Stff)
@@ -883,6 +1122,13 @@ SUBROUTINE ExtPtfm_PrintSum(x, p, m, RootName, ErrStat, ErrMsg)
call disp2r8(UnSu, 'C21',p%C21)
call disp2r8(UnSu, 'C22',p%C22)
+ write(UnSu,'(//,A,//)') '!Connections:'
+ write(UnSu,'(A,I0)') 'Number of connections : ',p%nConn
+ if (p%nConn>0) then
+ call disp2r8(UnSu, 'PosConn',p%PosConn)
+ call disp2r8(UnSu, 'PhiConn',p%PhiConn)
+ end if
+
OutPFmt = '( I4, 3X,A '//TRIM(Num2LStr(ChanLen))//',1 X, A'//TRIM(Num2LStr(ChanLen))//' )'
OutPFmtS = '( A4, 3X,A '//TRIM(Num2LStr(ChanLen))//',1 X, A'//TRIM(Num2LStr(ChanLen))//' )'
write(UnSu,'(//,A,//)') '!Requested Outputs:'
diff --git a/modules/extptfm/src/ExtPtfm_MCKF_Registry.txt b/modules/extptfm/src/ExtPtfm_MCKF_Registry.txt
index c95cd9ca0f..eea884b253 100644
--- a/modules/extptfm/src/ExtPtfm_MCKF_Registry.txt
+++ b/modules/extptfm/src/ExtPtfm_MCKF_Registry.txt
@@ -13,13 +13,19 @@
# ...... Include files (definitions from NWTC Library) ............................................................................
include Registry_NWTC_Library.txt
+# ..... User-defined forcing .................................................................................................
+typedef ExtPtfm_MCKF/ExtPtfm UserForcingType IntKi nTimeSteps - - - "Number of values of Forces and times" -
+typedef ^ ^ ReKi times {:} - - "the time associated with each row of Forces" "s"
+typedef ^ ^ ReKi Forces {:}{:} - - "Prescribed reduced loads, the 3 platform forces (in N) and moments (Nm) acting at the platform reference, associated with everything but the added-mass effects; positive forces are in the direction of motion." "N, N-m"
# ..... Initialization data .......................................................................................................
# Define inputs that the initialization routine may need here:
# e.g., the name of the input file, the file root name, etc.
typedef ExtPtfm_MCKF/ExtPtfm InitInputType CHARACTER(1024) InputFile - - - "Name of the input file; remove if there is no file" -
typedef ^ ^ LOGICAL Linearize - .FALSE. - "Flag that tells this module if the glue code wants to linearize." -
-typedef ^ ^ ReKi PtfmRefzt - - - "Vertical distance from the ground level [onshore], MSL [offshore wind or floating MHK], or seabed [fixed MHK] to the platform reference point" meters
+typedef ^ ^ ReKi PtfmRefxt - - - "Longitudinal distance from PRP to the platform reference point" "m"
+typedef ^ ^ ReKi PtfmRefyt - - - "Laterl distance from PRP to the platform reference point" "m"
+typedef ^ ^ ReKi PtfmRefzt - - - "Vertical distance from the ground level [onshore], MSL [offshore wind or floating MHK], or seabed [fixed MHK] to the platform reference point" "m"
typedef ^ ^ CHARACTER(1024) RootName - - - "RootName for writing output files"
# ..... Input file data ...........................................................................................................
@@ -27,13 +33,20 @@ typedef ^ ^ CHARACTER(1024) RootName - - -
# ..... Primary Input file data ...........................................................................................................
typedef ExtPtfm_MCKF/ExtPtfm ExtPtfm_InputFile DbKi DT - - - "Requested integration time for ElastoDyn" seconds
typedef ^ ^ IntKi IntMethod - - - "Integration Method (1=RK4, 2=AB4, 3=ABM4)" -
-typedef ^ ^ IntKi FileFormat - - - "File format switch" -
+typedef ^ ^ IntKi RBMod - - - "Method for handling rigid-body modes" -
+typedef ^ ^ LOGICAL HasRBMode - - - "True: has rigid-body modes/floating structure; False: no rigid-body modes" -
typedef ^ ^ CHARACTER(1024) RedFile - - - "File containing reduction inputs" -
typedef ^ ^ CHARACTER(1024) RedFileCst - - - "File containing constant reduction inputs" -
typedef ^ ^ LOGICAL EquilStart - - - "Flag to determine the equilibrium positions of the CB modes at initialization (first call)" -
typedef ^ ^ IntKi ActiveCBDOF {:} - - "List of active CB DOF" -
typedef ^ ^ ReKi InitPosList {:} - - "Initial positions of the CB DOFs" -
typedef ^ ^ ReKi InitVelList {:} - - "Initial velocities of the CB DOFs" -
+typedef ^ ^ LOGICAL HasConnections - - - "True: has connections; False: no connections" -
+typedef ^ ^ CHARACTER(1024) ConnFile - - - "File containing connection inputs" -
+typedef ^ ^ LOGICAL HasUserForcing - - - "True: has user forcing; False: no user forcing" -
+typedef ^ ^ CHARACTER(1024) ForceFile - - - "File containing user forcing inputs" -
+typedef ^ ^ LOGICAL HasConnForcing - - - "True: has user forcing; False: no user forcing" -
+typedef ^ ^ CHARACTER(1024) FConnFile - - - "File containing user forcing inputs" -
typedef ^ ^ LOGICAL SumPrint - - - "Print summary data to .sum" -
typedef ^ ^ IntKi OutFile - - - "Switch to determine where output will be placed: (1: in module output file only; 2: in glue code output file only; 3: both)" -
typedef ^ ^ LOGICAL TabDelim - - - "Flag to cause tab-delimited text output (delimited by space otherwise)" -
@@ -69,54 +82,90 @@ typedef ^ ^ IntKi n
# ..... Parameters ................................................................................................................
# Define parameters here:
# Time step for integration of continuous states (if a fixed-step integrator is used) and update of discrete states:
-typedef ^ ParameterType ReKi Mass {:}{:} - - "Mass matrix" "kg, kg-m, kg-m^2"
-typedef ^ ParameterType ReKi Damp {:}{:} - - "Damping matrix" -
-typedef ^ ParameterType ReKi Stff {:}{:} - - "Stiffness matrix" -
-typedef ^ ParameterType ReKi Forces {:}{:} - - "Prescribed reduced loads, the 3 platform forces (in N) and moments (Nm) acting at the platform reference, associated with everything but the added-mass effects; positive forces are in the direction of motion." "N, N-m"
-typedef ^ ^ ReKi times {:} - - "the time associated with each row of Forces" "s"
-typedef ^ ^ ReKi AMat {:}{:} - - "State matrix A" ""
-typedef ^ ^ ReKi BMat {:}{:} - - "State matrix B" ""
-typedef ^ ^ ReKi CMat {:}{:} - - "State matrix C" ""
-typedef ^ ^ ReKi DMat {:}{:} - - "State matrix D" ""
-typedef ^ ^ ReKi FX {:} - - "State constant Fx" ""
-typedef ^ ^ ReKi FY {:} - - "Output constant Fy" ""
+typedef ^ ParameterType Logical hasRBMode - - - "True: has rigid-body modes/floating structure; False: no rigid-body modes"
+typedef ^ ^ IntKi RBMod - - - "Method for handling rigid-body modes" -
+typedef ^ ^ ReKi Mass {:}{:} - - "Mass matrix" "kg, kg-m, kg-m^2"
+typedef ^ ^ ReKi Damp {:}{:} - - "Damping matrix" -
+typedef ^ ^ ReKi Stff {:}{:} - - "Stiffness matrix" -
+typedef ^ ^ ReKi W0 {:} - - "Prescribed constant external loads including selfweight" -
+typedef ^ ^ ReKi WStff {:}{:} - - "Self-weight stiffness matrix" -
+typedef ^ ^ ReKi A1Mat {:}{:} - - "State matrix A1" ""
+typedef ^ ^ ReKi A2Mat {:}{:} - - "State matrix A2" ""
+typedef ^ ^ ReKi B1Mat {:}{:} - - "State matrix B1" ""
+typedef ^ ^ ReKi B2Mat {:}{:} - - "State matrix B2" ""
+typedef ^ ^ ReKi B3Mat {:}{:} - - "State matrix B3" ""
+typedef ^ ^ ReKi B4Mat {:}{:} - - "State matrix B4" ""
+typedef ^ ^ ReKi C1Mat {:}{:} - - "State matrix C1" ""
+typedef ^ ^ ReKi C2Mat {:}{:} - - "State matrix C2" ""
+typedef ^ ^ ReKi D1Mat {:}{:} - - "State matrix D1" ""
+typedef ^ ^ ReKi D2Mat {:}{:} - - "State matrix D2" ""
+typedef ^ ^ ReKi D3Mat {:}{:} - - "State matrix D3" ""
+typedef ^ ^ ReKi D4Mat {:}{:} - - "State matrix D4" ""
typedef ^ ^ ReKi M11 {:}{:} - - "Matrix M11" ""
typedef ^ ^ ReKi M12 {:}{:} - - "Matrix M12" ""
-typedef ^ ^ ReKi M22 {:}{:} - - "Matrix M22" ""
typedef ^ ^ ReKi M21 {:}{:} - - "Matrix M21" ""
+typedef ^ ^ ReKi M22 {:}{:} - - "Matrix M22" ""
+typedef ^ ^ ReKi M22Inv {:}{:} - - "Inverse of matrix M22" ""
typedef ^ ^ ReKi K11 {:}{:} - - "Matrix K11" ""
+typedef ^ ^ ReKi K12 {:}{:} - - "Matrix K12" ""
+typedef ^ ^ ReKi K21 {:}{:} - - "Matrix K21" ""
typedef ^ ^ ReKi K22 {:}{:} - - "Matrix K22" ""
typedef ^ ^ ReKi C11 {:}{:} - - "Matrix C11" ""
typedef ^ ^ ReKi C12 {:}{:} - - "Matrix C12" ""
typedef ^ ^ ReKi C22 {:}{:} - - "Matrix C22" ""
typedef ^ ^ ReKi C21 {:}{:} - - "Matrix C21" ""
+typedef ^ ^ ReKi phiConn {:}{:} - - "Mode shapes of connection points" ""
+typedef ^ ^ ReKi PosConn {:}{:} - - "Positions of connection points" "m"
+typedef ^ ^ ReKi RBMass - - - "Rigid-body mass" "kg"
+typedef ^ ^ ReKi RBCoG {3} - - "Rigid-body center of mass" "m"
+typedef ^ ^ ReKi RBInertia {3}{3} - - "Rigid-body moment of inertia matrix" "kgm^2"
typedef ^ ^ DbKi EP_DeltaT - - - "Time step (for integration of continuous states)" "seconds"
-typedef ^ ^ IntKi nTimeSteps - - - "Number of values of Forces and times" -
typedef ^ ^ IntKi nCB - - - "Number of CraigBampton modes active" -
-typedef ^ ^ IntKi nCBFull - - - "Totla number of CraigBampton modes given as input" -
+typedef ^ ^ IntKi nCBFull - - - "Total number of CraigBampton modes given as input" -
typedef ^ ^ IntKi nTot - - - "Total number of debrees of freedom (CB + interface)" -
+typedef ^ ^ IntKi nConn - - - "Number of connection points on the structure" -
typedef ^ ^ IntKi NumOuts - - - "Number of values in WriteOutput" -
typedef ^ ^ IntKi IntMethod - - - "Integration Method (1=RK4, 2=AB4, 3=ABM4)" -
typedef ^ ^ IntKi ActiveCBDOF {:} - - "List of active CB DOF" -
+typedef ^ ^ UserForcingType UsrModeF - - - "User-defined modal forcing time series" -
+typedef ^ ^ UserForcingType UsrConnF - - - "User-defined connection forcing time series" -
typedef ^ ^ OutParmType OutParam {:} - - "Names and units (and other characteristics) of all requested output parameters" -
typedef ^ ^ IntKi OutParamLinIndx {:}{:} - - "Index into WriteOutput for linearization analysis" -
# ..... Inputs ....................................................................................................................
-typedef ^ InputType MeshType PtfmMesh - - - "Displacements at the platform reference point" -
+typedef ^ InputType MeshType PtfmMesh - - - "Displacements at the platform reference point" -
+typedef ^ ^ MeshType ConnLdMesh - - - "Load mesh for connection points on the structure" -
+typedef ^ ^ MeshType FBMesh - - - "Load mesh for rigid-body DOF" -
+typedef ^ ^ ReKi Fm {:} - - "External forcing to the internal elastic modes" -
# ..... Outputs ...................................................................................................................
typedef ^ OutputType MeshType PtfmMesh - - - "Loads at the platform reference point" -
+typedef ^ ^ MeshType ConnMesh - - - "Motion mesh for connection points on the structure" -
+typedef ^ ^ MeshType FBMesh - - - "Motion mesh for rigid-body DOF" -
+typedef ^ ^ ReKi qm {:} - - "Displacement of internal elastic modes" -
+typedef ^ ^ ReKi qmdot {:} - - "Velocity of internal elastic modes" -
+typedef ^ ^ ReKi qmdotdot {:} - - "Acceleration of internal elastic modes" -
typedef ^ ^ ReKi WriteOutput {:} - - "Example of data to be written to an output file" "s,-"
# ..... Misc/Optimization variables.................................................................................................
# Define any data that are used only for efficiency purposes (these variables are not associated with time):
# e.g. indices for searching in an array, large arrays that are local variables in any routine called multiple times, etc.
typedef ^ MiscVarType ReKi xFlat {:} - - "Flattened vector of states"
-typedef ^ MiscVarType ReKi uFlat {18} - - "Flattened vector of inputs"
-typedef ^ MiscVarType ReKi F_at_t {:} - - "The 6 interface loads and Craig-Bampton loads at t (force and moment acting at the platform reference (no added-mass effects); positive forces are in the direction of motion)." "N, N-m"
-typedef ^ MiscVarType IntKi Indx - - - "Index into times, to speed up interpolation" -
-typedef ^ MiscVarType LOGICAL EquilStart - - - "Flag to determine the equilibrium position of the CB DOF at initialization (first call)" -
+typedef ^ ^ R8Ki uFlat {18} - - "Flattened vector of inputs"
+typedef ^ ^ ReKi F_at_t {:} - - "The 6 interface loads and Craig-Bampton loads at t (force and moment acting at the platform reference (no added-mass effects); positive forces are in the direction of motion)." "N, N-m"
+typedef ^ ^ ReKi FConn_at_t {:} - - "The 3DOF forces at each connection point defined by the user" "N"
+typedef ^ ^ ReKi F1 {:} - - "Interface/rigid-body mode forcing" -
+typedef ^ ^ ReKi F2 {:} - - "Internal elastic mode forcing" -
+typedef ^ ^ ReKi Weight {:} - - "Structure self-weight" -
+typedef ^ ^ ReKi FConn {:} - - "Connection forces" "N"
+typedef ^ ^ ReKi FConnCB {:} - - "Modal forces from connections" ""
+typedef ^ ^ ReKi DConn {:} - - "Connection point displacement" ""
+typedef ^ ^ ReKi VConn {:} - - "Connection point velocity" ""
+typedef ^ ^ ReKi AConn {:} - - "Connection point acceleration" ""
+typedef ^ ^ IntKi Indx_UsrModeF - - - "Index into times, to speed up interpolation" -
+typedef ^ ^ IntKi Indx_UsrConnF - - - "Index into times, to speed up interpolation" -
+typedef ^ ^ LOGICAL EquilStart - - - "Flag to determine the equilibrium position of the CB DOF at initialization (first call)" -
typedef ^ ^ ReKi AllOuts {:} - - "An array holding the value of all of the calculated (not only selected) output channels" "see OutListParameters.xlsx spreadsheet"
typedef ^ ^ ModJacType Jac - - - "Data structure for calculating module Jacobians" -
typedef ^ ^ ExtPtfm_ContinuousStateType x_perturb - - - "" -
diff --git a/modules/extptfm/src/ExtPtfm_MCKF_Types.f90 b/modules/extptfm/src/ExtPtfm_MCKF_Types.f90
index bb2fbda8c4..92e7708c21 100644
--- a/modules/extptfm/src/ExtPtfm_MCKF_Types.f90
+++ b/modules/extptfm/src/ExtPtfm_MCKF_Types.f90
@@ -33,11 +33,20 @@ MODULE ExtPtfm_MCKF_Types
!---------------------------------------------------------------------------------------------------------------------------------
USE NWTC_Library
IMPLICIT NONE
+! ========= UserForcingType =======
+ TYPE, PUBLIC :: UserForcingType
+ INTEGER(IntKi) :: nTimeSteps = 0_IntKi !< Number of values of Forces and times [-]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: times !< the time associated with each row of Forces [s]
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: Forces !< Prescribed reduced loads, the 3 platform forces (in N) and moments (Nm) acting at the platform reference, associated with everything but the added-mass effects; positive forces are in the direction of motion. [N, N-m]
+ END TYPE UserForcingType
+! =======================
! ========= ExtPtfm_InitInputType =======
TYPE, PUBLIC :: ExtPtfm_InitInputType
CHARACTER(1024) :: InputFile !< Name of the input file; remove if there is no file [-]
LOGICAL :: Linearize = .FALSE. !< Flag that tells this module if the glue code wants to linearize. [-]
- REAL(ReKi) :: PtfmRefzt = 0.0_ReKi !< Vertical distance from the ground level [onshore], MSL [offshore wind or floating MHK], or seabed [fixed MHK] to the platform reference point [meters]
+ REAL(ReKi) :: PtfmRefxt = 0.0_ReKi !< Longitudinal distance from PRP to the platform reference point [m]
+ REAL(ReKi) :: PtfmRefyt = 0.0_ReKi !< Laterl distance from PRP to the platform reference point [m]
+ REAL(ReKi) :: PtfmRefzt = 0.0_ReKi !< Vertical distance from the ground level [onshore], MSL [offshore wind or floating MHK], or seabed [fixed MHK] to the platform reference point [m]
CHARACTER(1024) :: RootName !< RootName for writing output files [-]
END TYPE ExtPtfm_InitInputType
! =======================
@@ -45,13 +54,20 @@ MODULE ExtPtfm_MCKF_Types
TYPE, PUBLIC :: ExtPtfm_InputFile
REAL(DbKi) :: DT = 0.0_R8Ki !< Requested integration time for ElastoDyn [seconds]
INTEGER(IntKi) :: IntMethod = 0_IntKi !< Integration Method (1=RK4, 2=AB4, 3=ABM4) [-]
- INTEGER(IntKi) :: FileFormat = 0_IntKi !< File format switch [-]
+ INTEGER(IntKi) :: RBMod = 0_IntKi !< Method for handling rigid-body modes [-]
+ LOGICAL :: HasRBMode = .false. !< True: has rigid-body modes/floating structure; False: no rigid-body modes [-]
CHARACTER(1024) :: RedFile !< File containing reduction inputs [-]
CHARACTER(1024) :: RedFileCst !< File containing constant reduction inputs [-]
LOGICAL :: EquilStart = .false. !< Flag to determine the equilibrium positions of the CB modes at initialization (first call) [-]
INTEGER(IntKi) , DIMENSION(:), ALLOCATABLE :: ActiveCBDOF !< List of active CB DOF [-]
REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: InitPosList !< Initial positions of the CB DOFs [-]
REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: InitVelList !< Initial velocities of the CB DOFs [-]
+ LOGICAL :: HasConnections = .false. !< True: has connections; False: no connections [-]
+ CHARACTER(1024) :: ConnFile !< File containing connection inputs [-]
+ LOGICAL :: HasUserForcing = .false. !< True: has user forcing; False: no user forcing [-]
+ CHARACTER(1024) :: ForceFile !< File containing user forcing inputs [-]
+ LOGICAL :: HasConnForcing = .false. !< True: has user forcing; False: no user forcing [-]
+ CHARACTER(1024) :: FConnFile !< File containing user forcing inputs [-]
LOGICAL :: SumPrint = .false. !< Print summary data to .sum [-]
INTEGER(IntKi) :: OutFile = 0_IntKi !< Switch to determine where output will be placed: (1: in module output file only; 2: in glue code output file only; 3: both) [-]
LOGICAL :: TabDelim = .false. !< Flag to cause tab-delimited text output (delimited by space otherwise) [-]
@@ -93,35 +109,53 @@ MODULE ExtPtfm_MCKF_Types
! =======================
! ========= ExtPtfm_ParameterType =======
TYPE, PUBLIC :: ExtPtfm_ParameterType
+ LOGICAL :: hasRBMode = .false. !< True: has rigid-body modes/floating structure; False: no rigid-body modes [-]
+ INTEGER(IntKi) :: RBMod = 0_IntKi !< Method for handling rigid-body modes [-]
REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: Mass !< Mass matrix [kg, kg-m, kg-m^2]
REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: Damp !< Damping matrix [-]
REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: Stff !< Stiffness matrix [-]
- REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: Forces !< Prescribed reduced loads, the 3 platform forces (in N) and moments (Nm) acting at the platform reference, associated with everything but the added-mass effects; positive forces are in the direction of motion. [N, N-m]
- REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: times !< the time associated with each row of Forces [s]
- REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: AMat !< State matrix A []
- REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: BMat !< State matrix B []
- REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: CMat !< State matrix C []
- REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: DMat !< State matrix D []
- REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: FX !< State constant Fx []
- REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: FY !< Output constant Fy []
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: W0 !< Prescribed constant external loads including selfweight [-]
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: WStff !< Self-weight stiffness matrix [-]
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: A1Mat !< State matrix A1 []
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: A2Mat !< State matrix A2 []
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: B1Mat !< State matrix B1 []
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: B2Mat !< State matrix B2 []
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: B3Mat !< State matrix B3 []
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: B4Mat !< State matrix B4 []
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: C1Mat !< State matrix C1 []
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: C2Mat !< State matrix C2 []
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: D1Mat !< State matrix D1 []
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: D2Mat !< State matrix D2 []
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: D3Mat !< State matrix D3 []
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: D4Mat !< State matrix D4 []
REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: M11 !< Matrix M11 []
REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: M12 !< Matrix M12 []
- REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: M22 !< Matrix M22 []
REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: M21 !< Matrix M21 []
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: M22 !< Matrix M22 []
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: M22Inv !< Inverse of matrix M22 []
REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: K11 !< Matrix K11 []
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: K12 !< Matrix K12 []
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: K21 !< Matrix K21 []
REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: K22 !< Matrix K22 []
REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: C11 !< Matrix C11 []
REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: C12 !< Matrix C12 []
REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: C22 !< Matrix C22 []
REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: C21 !< Matrix C21 []
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: phiConn !< Mode shapes of connection points []
+ REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: PosConn !< Positions of connection points [m]
+ REAL(ReKi) :: RBMass = 0.0_ReKi !< Rigid-body mass [kg]
+ REAL(ReKi) , DIMENSION(1:3) :: RBCoG = 0.0_ReKi !< Rigid-body center of mass [m]
+ REAL(ReKi) , DIMENSION(1:3,1:3) :: RBInertia = 0.0_ReKi !< Rigid-body moment of inertia matrix [kgm^2]
REAL(DbKi) :: EP_DeltaT = 0.0_R8Ki !< Time step (for integration of continuous states) [seconds]
- INTEGER(IntKi) :: nTimeSteps = 0_IntKi !< Number of values of Forces and times [-]
INTEGER(IntKi) :: nCB = 0_IntKi !< Number of CraigBampton modes active [-]
- INTEGER(IntKi) :: nCBFull = 0_IntKi !< Totla number of CraigBampton modes given as input [-]
+ INTEGER(IntKi) :: nCBFull = 0_IntKi !< Total number of CraigBampton modes given as input [-]
INTEGER(IntKi) :: nTot = 0_IntKi !< Total number of debrees of freedom (CB + interface) [-]
+ INTEGER(IntKi) :: nConn = 0_IntKi !< Number of connection points on the structure [-]
INTEGER(IntKi) :: NumOuts = 0_IntKi !< Number of values in WriteOutput [-]
INTEGER(IntKi) :: IntMethod = 0_IntKi !< Integration Method (1=RK4, 2=AB4, 3=ABM4) [-]
INTEGER(IntKi) , DIMENSION(:), ALLOCATABLE :: ActiveCBDOF !< List of active CB DOF [-]
+ TYPE(UserForcingType) :: UsrModeF !< User-defined modal forcing time series [-]
+ TYPE(UserForcingType) :: UsrConnF !< User-defined connection forcing time series [-]
TYPE(OutParmType) , DIMENSION(:), ALLOCATABLE :: OutParam !< Names and units (and other characteristics) of all requested output parameters [-]
INTEGER(IntKi) , DIMENSION(:,:), ALLOCATABLE :: OutParamLinIndx !< Index into WriteOutput for linearization analysis [-]
END TYPE ExtPtfm_ParameterType
@@ -129,20 +163,38 @@ MODULE ExtPtfm_MCKF_Types
! ========= ExtPtfm_InputType =======
TYPE, PUBLIC :: ExtPtfm_InputType
TYPE(MeshType) :: PtfmMesh !< Displacements at the platform reference point [-]
+ TYPE(MeshType) :: ConnLdMesh !< Load mesh for connection points on the structure [-]
+ TYPE(MeshType) :: FBMesh !< Load mesh for rigid-body DOF [-]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: Fm !< External forcing to the internal elastic modes [-]
END TYPE ExtPtfm_InputType
! =======================
! ========= ExtPtfm_OutputType =======
TYPE, PUBLIC :: ExtPtfm_OutputType
TYPE(MeshType) :: PtfmMesh !< Loads at the platform reference point [-]
+ TYPE(MeshType) :: ConnMesh !< Motion mesh for connection points on the structure [-]
+ TYPE(MeshType) :: FBMesh !< Motion mesh for rigid-body DOF [-]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: qm !< Displacement of internal elastic modes [-]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: qmdot !< Velocity of internal elastic modes [-]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: qmdotdot !< Acceleration of internal elastic modes [-]
REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: WriteOutput !< Example of data to be written to an output file [s,-]
END TYPE ExtPtfm_OutputType
! =======================
! ========= ExtPtfm_MiscVarType =======
TYPE, PUBLIC :: ExtPtfm_MiscVarType
REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: xFlat !< Flattened vector of states [-]
- REAL(ReKi) , DIMENSION(1:18) :: uFlat = 0.0_ReKi !< Flattened vector of inputs [-]
+ REAL(R8Ki) , DIMENSION(1:18) :: uFlat = 0.0_R8Ki !< Flattened vector of inputs [-]
REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: F_at_t !< The 6 interface loads and Craig-Bampton loads at t (force and moment acting at the platform reference (no added-mass effects); positive forces are in the direction of motion). [N, N-m]
- INTEGER(IntKi) :: Indx = 0_IntKi !< Index into times, to speed up interpolation [-]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: FConn_at_t !< The 3DOF forces at each connection point defined by the user [N]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: F1 !< Interface/rigid-body mode forcing [-]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: F2 !< Internal elastic mode forcing [-]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: Weight !< Structure self-weight [-]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: FConn !< Connection forces [N]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: FConnCB !< Modal forces from connections []
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: DConn !< Connection point displacement []
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: VConn !< Connection point velocity []
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: AConn !< Connection point acceleration []
+ INTEGER(IntKi) :: Indx_UsrModeF = 0_IntKi !< Index into times, to speed up interpolation [-]
+ INTEGER(IntKi) :: Indx_UsrConnF = 0_IntKi !< Index into times, to speed up interpolation [-]
LOGICAL :: EquilStart = .false. !< Flag to determine the equilibrium position of the CB DOF at initialization (first call) [-]
REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: AllOuts !< An array holding the value of all of the calculated (not only selected) output channels [see OutListParameters.xlsx spreadsheet]
TYPE(ModJacType) :: Jac !< Data structure for calculating module Jacobians [-]
@@ -155,11 +207,96 @@ MODULE ExtPtfm_MCKF_Types
integer(IntKi), public, parameter :: ExtPtfm_x_qm = 1 ! ExtPtfm%qm
integer(IntKi), public, parameter :: ExtPtfm_x_qmdot = 2 ! ExtPtfm%qmdot
integer(IntKi), public, parameter :: ExtPtfm_u_PtfmMesh = 3 ! ExtPtfm%PtfmMesh
- integer(IntKi), public, parameter :: ExtPtfm_y_PtfmMesh = 4 ! ExtPtfm%PtfmMesh
- integer(IntKi), public, parameter :: ExtPtfm_y_WriteOutput = 5 ! ExtPtfm%WriteOutput
+ integer(IntKi), public, parameter :: ExtPtfm_u_ConnLdMesh = 4 ! ExtPtfm%ConnLdMesh
+ integer(IntKi), public, parameter :: ExtPtfm_u_FBMesh = 5 ! ExtPtfm%FBMesh
+ integer(IntKi), public, parameter :: ExtPtfm_u_Fm = 6 ! ExtPtfm%Fm
+ integer(IntKi), public, parameter :: ExtPtfm_y_PtfmMesh = 7 ! ExtPtfm%PtfmMesh
+ integer(IntKi), public, parameter :: ExtPtfm_y_ConnMesh = 8 ! ExtPtfm%ConnMesh
+ integer(IntKi), public, parameter :: ExtPtfm_y_FBMesh = 9 ! ExtPtfm%FBMesh
+ integer(IntKi), public, parameter :: ExtPtfm_y_qm = 10 ! ExtPtfm%qm
+ integer(IntKi), public, parameter :: ExtPtfm_y_qmdot = 11 ! ExtPtfm%qmdot
+ integer(IntKi), public, parameter :: ExtPtfm_y_qmdotdot = 12 ! ExtPtfm%qmdotdot
+ integer(IntKi), public, parameter :: ExtPtfm_y_WriteOutput = 13 ! ExtPtfm%WriteOutput
contains
+subroutine ExtPtfm_CopyUserForcingType(SrcUserForcingTypeData, DstUserForcingTypeData, CtrlCode, ErrStat, ErrMsg)
+ type(UserForcingType), intent(in) :: SrcUserForcingTypeData
+ type(UserForcingType), intent(inout) :: DstUserForcingTypeData
+ integer(IntKi), intent(in ) :: CtrlCode
+ integer(IntKi), intent( out) :: ErrStat
+ character(*), intent( out) :: ErrMsg
+ integer(B4Ki) :: LB(2), UB(2)
+ integer(IntKi) :: ErrStat2
+ character(*), parameter :: RoutineName = 'ExtPtfm_CopyUserForcingType'
+ ErrStat = ErrID_None
+ ErrMsg = ''
+ DstUserForcingTypeData%nTimeSteps = SrcUserForcingTypeData%nTimeSteps
+ if (allocated(SrcUserForcingTypeData%times)) then
+ LB(1:1) = lbound(SrcUserForcingTypeData%times)
+ UB(1:1) = ubound(SrcUserForcingTypeData%times)
+ if (.not. allocated(DstUserForcingTypeData%times)) then
+ allocate(DstUserForcingTypeData%times(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstUserForcingTypeData%times.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstUserForcingTypeData%times = SrcUserForcingTypeData%times
+ end if
+ if (allocated(SrcUserForcingTypeData%Forces)) then
+ LB(1:2) = lbound(SrcUserForcingTypeData%Forces)
+ UB(1:2) = ubound(SrcUserForcingTypeData%Forces)
+ if (.not. allocated(DstUserForcingTypeData%Forces)) then
+ allocate(DstUserForcingTypeData%Forces(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstUserForcingTypeData%Forces.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstUserForcingTypeData%Forces = SrcUserForcingTypeData%Forces
+ end if
+end subroutine
+
+subroutine ExtPtfm_DestroyUserForcingType(UserForcingTypeData, ErrStat, ErrMsg)
+ type(UserForcingType), intent(inout) :: UserForcingTypeData
+ integer(IntKi), intent( out) :: ErrStat
+ character(*), intent( out) :: ErrMsg
+ character(*), parameter :: RoutineName = 'ExtPtfm_DestroyUserForcingType'
+ ErrStat = ErrID_None
+ ErrMsg = ''
+ if (allocated(UserForcingTypeData%times)) then
+ deallocate(UserForcingTypeData%times)
+ end if
+ if (allocated(UserForcingTypeData%Forces)) then
+ deallocate(UserForcingTypeData%Forces)
+ end if
+end subroutine
+
+subroutine ExtPtfm_PackUserForcingType(RF, Indata)
+ type(RegFile), intent(inout) :: RF
+ type(UserForcingType), intent(in) :: InData
+ character(*), parameter :: RoutineName = 'ExtPtfm_PackUserForcingType'
+ if (RF%ErrStat >= AbortErrLev) return
+ call RegPack(RF, InData%nTimeSteps)
+ call RegPackAlloc(RF, InData%times)
+ call RegPackAlloc(RF, InData%Forces)
+ if (RegCheckErr(RF, RoutineName)) return
+end subroutine
+
+subroutine ExtPtfm_UnPackUserForcingType(RF, OutData)
+ type(RegFile), intent(inout) :: RF
+ type(UserForcingType), intent(inout) :: OutData
+ character(*), parameter :: RoutineName = 'ExtPtfm_UnPackUserForcingType'
+ integer(B4Ki) :: LB(2), UB(2)
+ integer(IntKi) :: stat
+ logical :: IsAllocAssoc
+ if (RF%ErrStat /= ErrID_None) return
+ call RegUnpack(RF, OutData%nTimeSteps); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%times); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%Forces); if (RegCheckErr(RF, RoutineName)) return
+end subroutine
+
subroutine ExtPtfm_CopyInitInput(SrcInitInputData, DstInitInputData, CtrlCode, ErrStat, ErrMsg)
type(ExtPtfm_InitInputType), intent(in) :: SrcInitInputData
type(ExtPtfm_InitInputType), intent(inout) :: DstInitInputData
@@ -171,6 +308,8 @@ subroutine ExtPtfm_CopyInitInput(SrcInitInputData, DstInitInputData, CtrlCode, E
ErrMsg = ''
DstInitInputData%InputFile = SrcInitInputData%InputFile
DstInitInputData%Linearize = SrcInitInputData%Linearize
+ DstInitInputData%PtfmRefxt = SrcInitInputData%PtfmRefxt
+ DstInitInputData%PtfmRefyt = SrcInitInputData%PtfmRefyt
DstInitInputData%PtfmRefzt = SrcInitInputData%PtfmRefzt
DstInitInputData%RootName = SrcInitInputData%RootName
end subroutine
@@ -191,6 +330,8 @@ subroutine ExtPtfm_PackInitInput(RF, Indata)
if (RF%ErrStat >= AbortErrLev) return
call RegPack(RF, InData%InputFile)
call RegPack(RF, InData%Linearize)
+ call RegPack(RF, InData%PtfmRefxt)
+ call RegPack(RF, InData%PtfmRefyt)
call RegPack(RF, InData%PtfmRefzt)
call RegPack(RF, InData%RootName)
if (RegCheckErr(RF, RoutineName)) return
@@ -203,6 +344,8 @@ subroutine ExtPtfm_UnPackInitInput(RF, OutData)
if (RF%ErrStat /= ErrID_None) return
call RegUnpack(RF, OutData%InputFile); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%Linearize); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%PtfmRefxt); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%PtfmRefyt); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%PtfmRefzt); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%RootName); if (RegCheckErr(RF, RoutineName)) return
end subroutine
@@ -220,7 +363,8 @@ subroutine ExtPtfm_CopyInputFile(SrcInputFileData, DstInputFileData, CtrlCode, E
ErrMsg = ''
DstInputFileData%DT = SrcInputFileData%DT
DstInputFileData%IntMethod = SrcInputFileData%IntMethod
- DstInputFileData%FileFormat = SrcInputFileData%FileFormat
+ DstInputFileData%RBMod = SrcInputFileData%RBMod
+ DstInputFileData%HasRBMode = SrcInputFileData%HasRBMode
DstInputFileData%RedFile = SrcInputFileData%RedFile
DstInputFileData%RedFileCst = SrcInputFileData%RedFileCst
DstInputFileData%EquilStart = SrcInputFileData%EquilStart
@@ -260,6 +404,12 @@ subroutine ExtPtfm_CopyInputFile(SrcInputFileData, DstInputFileData, CtrlCode, E
end if
DstInputFileData%InitVelList = SrcInputFileData%InitVelList
end if
+ DstInputFileData%HasConnections = SrcInputFileData%HasConnections
+ DstInputFileData%ConnFile = SrcInputFileData%ConnFile
+ DstInputFileData%HasUserForcing = SrcInputFileData%HasUserForcing
+ DstInputFileData%ForceFile = SrcInputFileData%ForceFile
+ DstInputFileData%HasConnForcing = SrcInputFileData%HasConnForcing
+ DstInputFileData%FConnFile = SrcInputFileData%FConnFile
DstInputFileData%SumPrint = SrcInputFileData%SumPrint
DstInputFileData%OutFile = SrcInputFileData%OutFile
DstInputFileData%TabDelim = SrcInputFileData%TabDelim
@@ -308,13 +458,20 @@ subroutine ExtPtfm_PackInputFile(RF, Indata)
if (RF%ErrStat >= AbortErrLev) return
call RegPack(RF, InData%DT)
call RegPack(RF, InData%IntMethod)
- call RegPack(RF, InData%FileFormat)
+ call RegPack(RF, InData%RBMod)
+ call RegPack(RF, InData%HasRBMode)
call RegPack(RF, InData%RedFile)
call RegPack(RF, InData%RedFileCst)
call RegPack(RF, InData%EquilStart)
call RegPackAlloc(RF, InData%ActiveCBDOF)
call RegPackAlloc(RF, InData%InitPosList)
call RegPackAlloc(RF, InData%InitVelList)
+ call RegPack(RF, InData%HasConnections)
+ call RegPack(RF, InData%ConnFile)
+ call RegPack(RF, InData%HasUserForcing)
+ call RegPack(RF, InData%ForceFile)
+ call RegPack(RF, InData%HasConnForcing)
+ call RegPack(RF, InData%FConnFile)
call RegPack(RF, InData%SumPrint)
call RegPack(RF, InData%OutFile)
call RegPack(RF, InData%TabDelim)
@@ -335,13 +492,20 @@ subroutine ExtPtfm_UnPackInputFile(RF, OutData)
if (RF%ErrStat /= ErrID_None) return
call RegUnpack(RF, OutData%DT); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%IntMethod); if (RegCheckErr(RF, RoutineName)) return
- call RegUnpack(RF, OutData%FileFormat); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%RBMod); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%HasRBMode); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%RedFile); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%RedFileCst); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%EquilStart); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%ActiveCBDOF); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%InitPosList); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%InitVelList); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%HasConnections); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%ConnFile); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%HasUserForcing); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%ForceFile); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%HasConnForcing); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%FConnFile); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%SumPrint); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%OutFile); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%TabDelim); if (RegCheckErr(RF, RoutineName)) return
@@ -704,6 +868,8 @@ subroutine ExtPtfm_CopyParam(SrcParamData, DstParamData, CtrlCode, ErrStat, ErrM
character(*), parameter :: RoutineName = 'ExtPtfm_CopyParam'
ErrStat = ErrID_None
ErrMsg = ''
+ DstParamData%hasRBMode = SrcParamData%hasRBMode
+ DstParamData%RBMod = SrcParamData%RBMod
if (allocated(SrcParamData%Mass)) then
LB(1:2) = lbound(SrcParamData%Mass)
UB(1:2) = ubound(SrcParamData%Mass)
@@ -740,101 +906,173 @@ subroutine ExtPtfm_CopyParam(SrcParamData, DstParamData, CtrlCode, ErrStat, ErrM
end if
DstParamData%Stff = SrcParamData%Stff
end if
- if (allocated(SrcParamData%Forces)) then
- LB(1:2) = lbound(SrcParamData%Forces)
- UB(1:2) = ubound(SrcParamData%Forces)
- if (.not. allocated(DstParamData%Forces)) then
- allocate(DstParamData%Forces(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
+ if (allocated(SrcParamData%W0)) then
+ LB(1:1) = lbound(SrcParamData%W0)
+ UB(1:1) = ubound(SrcParamData%W0)
+ if (.not. allocated(DstParamData%W0)) then
+ allocate(DstParamData%W0(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%W0.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstParamData%W0 = SrcParamData%W0
+ end if
+ if (allocated(SrcParamData%WStff)) then
+ LB(1:2) = lbound(SrcParamData%WStff)
+ UB(1:2) = ubound(SrcParamData%WStff)
+ if (.not. allocated(DstParamData%WStff)) then
+ allocate(DstParamData%WStff(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%WStff.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstParamData%WStff = SrcParamData%WStff
+ end if
+ if (allocated(SrcParamData%A1Mat)) then
+ LB(1:2) = lbound(SrcParamData%A1Mat)
+ UB(1:2) = ubound(SrcParamData%A1Mat)
+ if (.not. allocated(DstParamData%A1Mat)) then
+ allocate(DstParamData%A1Mat(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%A1Mat.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstParamData%A1Mat = SrcParamData%A1Mat
+ end if
+ if (allocated(SrcParamData%A2Mat)) then
+ LB(1:2) = lbound(SrcParamData%A2Mat)
+ UB(1:2) = ubound(SrcParamData%A2Mat)
+ if (.not. allocated(DstParamData%A2Mat)) then
+ allocate(DstParamData%A2Mat(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
if (ErrStat2 /= 0) then
- call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%Forces.', ErrStat, ErrMsg, RoutineName)
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%A2Mat.', ErrStat, ErrMsg, RoutineName)
return
end if
end if
- DstParamData%Forces = SrcParamData%Forces
+ DstParamData%A2Mat = SrcParamData%A2Mat
end if
- if (allocated(SrcParamData%times)) then
- LB(1:1) = lbound(SrcParamData%times)
- UB(1:1) = ubound(SrcParamData%times)
- if (.not. allocated(DstParamData%times)) then
- allocate(DstParamData%times(LB(1):UB(1)), stat=ErrStat2)
+ if (allocated(SrcParamData%B1Mat)) then
+ LB(1:2) = lbound(SrcParamData%B1Mat)
+ UB(1:2) = ubound(SrcParamData%B1Mat)
+ if (.not. allocated(DstParamData%B1Mat)) then
+ allocate(DstParamData%B1Mat(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
if (ErrStat2 /= 0) then
- call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%times.', ErrStat, ErrMsg, RoutineName)
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%B1Mat.', ErrStat, ErrMsg, RoutineName)
return
end if
end if
- DstParamData%times = SrcParamData%times
+ DstParamData%B1Mat = SrcParamData%B1Mat
end if
- if (allocated(SrcParamData%AMat)) then
- LB(1:2) = lbound(SrcParamData%AMat)
- UB(1:2) = ubound(SrcParamData%AMat)
- if (.not. allocated(DstParamData%AMat)) then
- allocate(DstParamData%AMat(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
+ if (allocated(SrcParamData%B2Mat)) then
+ LB(1:2) = lbound(SrcParamData%B2Mat)
+ UB(1:2) = ubound(SrcParamData%B2Mat)
+ if (.not. allocated(DstParamData%B2Mat)) then
+ allocate(DstParamData%B2Mat(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
if (ErrStat2 /= 0) then
- call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%AMat.', ErrStat, ErrMsg, RoutineName)
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%B2Mat.', ErrStat, ErrMsg, RoutineName)
return
end if
end if
- DstParamData%AMat = SrcParamData%AMat
+ DstParamData%B2Mat = SrcParamData%B2Mat
end if
- if (allocated(SrcParamData%BMat)) then
- LB(1:2) = lbound(SrcParamData%BMat)
- UB(1:2) = ubound(SrcParamData%BMat)
- if (.not. allocated(DstParamData%BMat)) then
- allocate(DstParamData%BMat(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
+ if (allocated(SrcParamData%B3Mat)) then
+ LB(1:2) = lbound(SrcParamData%B3Mat)
+ UB(1:2) = ubound(SrcParamData%B3Mat)
+ if (.not. allocated(DstParamData%B3Mat)) then
+ allocate(DstParamData%B3Mat(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
if (ErrStat2 /= 0) then
- call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%BMat.', ErrStat, ErrMsg, RoutineName)
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%B3Mat.', ErrStat, ErrMsg, RoutineName)
return
end if
end if
- DstParamData%BMat = SrcParamData%BMat
+ DstParamData%B3Mat = SrcParamData%B3Mat
end if
- if (allocated(SrcParamData%CMat)) then
- LB(1:2) = lbound(SrcParamData%CMat)
- UB(1:2) = ubound(SrcParamData%CMat)
- if (.not. allocated(DstParamData%CMat)) then
- allocate(DstParamData%CMat(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
+ if (allocated(SrcParamData%B4Mat)) then
+ LB(1:2) = lbound(SrcParamData%B4Mat)
+ UB(1:2) = ubound(SrcParamData%B4Mat)
+ if (.not. allocated(DstParamData%B4Mat)) then
+ allocate(DstParamData%B4Mat(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
if (ErrStat2 /= 0) then
- call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%CMat.', ErrStat, ErrMsg, RoutineName)
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%B4Mat.', ErrStat, ErrMsg, RoutineName)
return
end if
end if
- DstParamData%CMat = SrcParamData%CMat
+ DstParamData%B4Mat = SrcParamData%B4Mat
end if
- if (allocated(SrcParamData%DMat)) then
- LB(1:2) = lbound(SrcParamData%DMat)
- UB(1:2) = ubound(SrcParamData%DMat)
- if (.not. allocated(DstParamData%DMat)) then
- allocate(DstParamData%DMat(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
+ if (allocated(SrcParamData%C1Mat)) then
+ LB(1:2) = lbound(SrcParamData%C1Mat)
+ UB(1:2) = ubound(SrcParamData%C1Mat)
+ if (.not. allocated(DstParamData%C1Mat)) then
+ allocate(DstParamData%C1Mat(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
if (ErrStat2 /= 0) then
- call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%DMat.', ErrStat, ErrMsg, RoutineName)
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%C1Mat.', ErrStat, ErrMsg, RoutineName)
return
end if
end if
- DstParamData%DMat = SrcParamData%DMat
+ DstParamData%C1Mat = SrcParamData%C1Mat
end if
- if (allocated(SrcParamData%FX)) then
- LB(1:1) = lbound(SrcParamData%FX)
- UB(1:1) = ubound(SrcParamData%FX)
- if (.not. allocated(DstParamData%FX)) then
- allocate(DstParamData%FX(LB(1):UB(1)), stat=ErrStat2)
+ if (allocated(SrcParamData%C2Mat)) then
+ LB(1:2) = lbound(SrcParamData%C2Mat)
+ UB(1:2) = ubound(SrcParamData%C2Mat)
+ if (.not. allocated(DstParamData%C2Mat)) then
+ allocate(DstParamData%C2Mat(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
if (ErrStat2 /= 0) then
- call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%FX.', ErrStat, ErrMsg, RoutineName)
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%C2Mat.', ErrStat, ErrMsg, RoutineName)
return
end if
end if
- DstParamData%FX = SrcParamData%FX
+ DstParamData%C2Mat = SrcParamData%C2Mat
end if
- if (allocated(SrcParamData%FY)) then
- LB(1:1) = lbound(SrcParamData%FY)
- UB(1:1) = ubound(SrcParamData%FY)
- if (.not. allocated(DstParamData%FY)) then
- allocate(DstParamData%FY(LB(1):UB(1)), stat=ErrStat2)
+ if (allocated(SrcParamData%D1Mat)) then
+ LB(1:2) = lbound(SrcParamData%D1Mat)
+ UB(1:2) = ubound(SrcParamData%D1Mat)
+ if (.not. allocated(DstParamData%D1Mat)) then
+ allocate(DstParamData%D1Mat(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
if (ErrStat2 /= 0) then
- call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%FY.', ErrStat, ErrMsg, RoutineName)
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%D1Mat.', ErrStat, ErrMsg, RoutineName)
return
end if
end if
- DstParamData%FY = SrcParamData%FY
+ DstParamData%D1Mat = SrcParamData%D1Mat
+ end if
+ if (allocated(SrcParamData%D2Mat)) then
+ LB(1:2) = lbound(SrcParamData%D2Mat)
+ UB(1:2) = ubound(SrcParamData%D2Mat)
+ if (.not. allocated(DstParamData%D2Mat)) then
+ allocate(DstParamData%D2Mat(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%D2Mat.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstParamData%D2Mat = SrcParamData%D2Mat
+ end if
+ if (allocated(SrcParamData%D3Mat)) then
+ LB(1:2) = lbound(SrcParamData%D3Mat)
+ UB(1:2) = ubound(SrcParamData%D3Mat)
+ if (.not. allocated(DstParamData%D3Mat)) then
+ allocate(DstParamData%D3Mat(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%D3Mat.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstParamData%D3Mat = SrcParamData%D3Mat
+ end if
+ if (allocated(SrcParamData%D4Mat)) then
+ LB(1:2) = lbound(SrcParamData%D4Mat)
+ UB(1:2) = ubound(SrcParamData%D4Mat)
+ if (.not. allocated(DstParamData%D4Mat)) then
+ allocate(DstParamData%D4Mat(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%D4Mat.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstParamData%D4Mat = SrcParamData%D4Mat
end if
if (allocated(SrcParamData%M11)) then
LB(1:2) = lbound(SrcParamData%M11)
@@ -860,6 +1098,18 @@ subroutine ExtPtfm_CopyParam(SrcParamData, DstParamData, CtrlCode, ErrStat, ErrM
end if
DstParamData%M12 = SrcParamData%M12
end if
+ if (allocated(SrcParamData%M21)) then
+ LB(1:2) = lbound(SrcParamData%M21)
+ UB(1:2) = ubound(SrcParamData%M21)
+ if (.not. allocated(DstParamData%M21)) then
+ allocate(DstParamData%M21(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%M21.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstParamData%M21 = SrcParamData%M21
+ end if
if (allocated(SrcParamData%M22)) then
LB(1:2) = lbound(SrcParamData%M22)
UB(1:2) = ubound(SrcParamData%M22)
@@ -872,17 +1122,17 @@ subroutine ExtPtfm_CopyParam(SrcParamData, DstParamData, CtrlCode, ErrStat, ErrM
end if
DstParamData%M22 = SrcParamData%M22
end if
- if (allocated(SrcParamData%M21)) then
- LB(1:2) = lbound(SrcParamData%M21)
- UB(1:2) = ubound(SrcParamData%M21)
- if (.not. allocated(DstParamData%M21)) then
- allocate(DstParamData%M21(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
+ if (allocated(SrcParamData%M22Inv)) then
+ LB(1:2) = lbound(SrcParamData%M22Inv)
+ UB(1:2) = ubound(SrcParamData%M22Inv)
+ if (.not. allocated(DstParamData%M22Inv)) then
+ allocate(DstParamData%M22Inv(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
if (ErrStat2 /= 0) then
- call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%M21.', ErrStat, ErrMsg, RoutineName)
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%M22Inv.', ErrStat, ErrMsg, RoutineName)
return
end if
end if
- DstParamData%M21 = SrcParamData%M21
+ DstParamData%M22Inv = SrcParamData%M22Inv
end if
if (allocated(SrcParamData%K11)) then
LB(1:2) = lbound(SrcParamData%K11)
@@ -896,6 +1146,30 @@ subroutine ExtPtfm_CopyParam(SrcParamData, DstParamData, CtrlCode, ErrStat, ErrM
end if
DstParamData%K11 = SrcParamData%K11
end if
+ if (allocated(SrcParamData%K12)) then
+ LB(1:2) = lbound(SrcParamData%K12)
+ UB(1:2) = ubound(SrcParamData%K12)
+ if (.not. allocated(DstParamData%K12)) then
+ allocate(DstParamData%K12(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%K12.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstParamData%K12 = SrcParamData%K12
+ end if
+ if (allocated(SrcParamData%K21)) then
+ LB(1:2) = lbound(SrcParamData%K21)
+ UB(1:2) = ubound(SrcParamData%K21)
+ if (.not. allocated(DstParamData%K21)) then
+ allocate(DstParamData%K21(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%K21.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstParamData%K21 = SrcParamData%K21
+ end if
if (allocated(SrcParamData%K22)) then
LB(1:2) = lbound(SrcParamData%K22)
UB(1:2) = ubound(SrcParamData%K22)
@@ -956,11 +1230,38 @@ subroutine ExtPtfm_CopyParam(SrcParamData, DstParamData, CtrlCode, ErrStat, ErrM
end if
DstParamData%C21 = SrcParamData%C21
end if
+ if (allocated(SrcParamData%phiConn)) then
+ LB(1:2) = lbound(SrcParamData%phiConn)
+ UB(1:2) = ubound(SrcParamData%phiConn)
+ if (.not. allocated(DstParamData%phiConn)) then
+ allocate(DstParamData%phiConn(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%phiConn.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstParamData%phiConn = SrcParamData%phiConn
+ end if
+ if (allocated(SrcParamData%PosConn)) then
+ LB(1:2) = lbound(SrcParamData%PosConn)
+ UB(1:2) = ubound(SrcParamData%PosConn)
+ if (.not. allocated(DstParamData%PosConn)) then
+ allocate(DstParamData%PosConn(LB(1):UB(1),LB(2):UB(2)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%PosConn.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstParamData%PosConn = SrcParamData%PosConn
+ end if
+ DstParamData%RBMass = SrcParamData%RBMass
+ DstParamData%RBCoG = SrcParamData%RBCoG
+ DstParamData%RBInertia = SrcParamData%RBInertia
DstParamData%EP_DeltaT = SrcParamData%EP_DeltaT
- DstParamData%nTimeSteps = SrcParamData%nTimeSteps
DstParamData%nCB = SrcParamData%nCB
DstParamData%nCBFull = SrcParamData%nCBFull
DstParamData%nTot = SrcParamData%nTot
+ DstParamData%nConn = SrcParamData%nConn
DstParamData%NumOuts = SrcParamData%NumOuts
DstParamData%IntMethod = SrcParamData%IntMethod
if (allocated(SrcParamData%ActiveCBDOF)) then
@@ -975,6 +1276,12 @@ subroutine ExtPtfm_CopyParam(SrcParamData, DstParamData, CtrlCode, ErrStat, ErrM
end if
DstParamData%ActiveCBDOF = SrcParamData%ActiveCBDOF
end if
+ call ExtPtfm_CopyUserForcingType(SrcParamData%UsrModeF, DstParamData%UsrModeF, CtrlCode, ErrStat2, ErrMsg2)
+ call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ if (ErrStat >= AbortErrLev) return
+ call ExtPtfm_CopyUserForcingType(SrcParamData%UsrConnF, DstParamData%UsrConnF, CtrlCode, ErrStat2, ErrMsg2)
+ call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ if (ErrStat >= AbortErrLev) return
if (allocated(SrcParamData%OutParam)) then
LB(1:1) = lbound(SrcParamData%OutParam)
UB(1:1) = ubound(SrcParamData%OutParam)
@@ -1025,29 +1332,47 @@ subroutine ExtPtfm_DestroyParam(ParamData, ErrStat, ErrMsg)
if (allocated(ParamData%Stff)) then
deallocate(ParamData%Stff)
end if
- if (allocated(ParamData%Forces)) then
- deallocate(ParamData%Forces)
+ if (allocated(ParamData%W0)) then
+ deallocate(ParamData%W0)
+ end if
+ if (allocated(ParamData%WStff)) then
+ deallocate(ParamData%WStff)
end if
- if (allocated(ParamData%times)) then
- deallocate(ParamData%times)
+ if (allocated(ParamData%A1Mat)) then
+ deallocate(ParamData%A1Mat)
end if
- if (allocated(ParamData%AMat)) then
- deallocate(ParamData%AMat)
+ if (allocated(ParamData%A2Mat)) then
+ deallocate(ParamData%A2Mat)
end if
- if (allocated(ParamData%BMat)) then
- deallocate(ParamData%BMat)
+ if (allocated(ParamData%B1Mat)) then
+ deallocate(ParamData%B1Mat)
end if
- if (allocated(ParamData%CMat)) then
- deallocate(ParamData%CMat)
+ if (allocated(ParamData%B2Mat)) then
+ deallocate(ParamData%B2Mat)
end if
- if (allocated(ParamData%DMat)) then
- deallocate(ParamData%DMat)
+ if (allocated(ParamData%B3Mat)) then
+ deallocate(ParamData%B3Mat)
end if
- if (allocated(ParamData%FX)) then
- deallocate(ParamData%FX)
+ if (allocated(ParamData%B4Mat)) then
+ deallocate(ParamData%B4Mat)
end if
- if (allocated(ParamData%FY)) then
- deallocate(ParamData%FY)
+ if (allocated(ParamData%C1Mat)) then
+ deallocate(ParamData%C1Mat)
+ end if
+ if (allocated(ParamData%C2Mat)) then
+ deallocate(ParamData%C2Mat)
+ end if
+ if (allocated(ParamData%D1Mat)) then
+ deallocate(ParamData%D1Mat)
+ end if
+ if (allocated(ParamData%D2Mat)) then
+ deallocate(ParamData%D2Mat)
+ end if
+ if (allocated(ParamData%D3Mat)) then
+ deallocate(ParamData%D3Mat)
+ end if
+ if (allocated(ParamData%D4Mat)) then
+ deallocate(ParamData%D4Mat)
end if
if (allocated(ParamData%M11)) then
deallocate(ParamData%M11)
@@ -1055,15 +1380,24 @@ subroutine ExtPtfm_DestroyParam(ParamData, ErrStat, ErrMsg)
if (allocated(ParamData%M12)) then
deallocate(ParamData%M12)
end if
+ if (allocated(ParamData%M21)) then
+ deallocate(ParamData%M21)
+ end if
if (allocated(ParamData%M22)) then
deallocate(ParamData%M22)
end if
- if (allocated(ParamData%M21)) then
- deallocate(ParamData%M21)
+ if (allocated(ParamData%M22Inv)) then
+ deallocate(ParamData%M22Inv)
end if
if (allocated(ParamData%K11)) then
deallocate(ParamData%K11)
end if
+ if (allocated(ParamData%K12)) then
+ deallocate(ParamData%K12)
+ end if
+ if (allocated(ParamData%K21)) then
+ deallocate(ParamData%K21)
+ end if
if (allocated(ParamData%K22)) then
deallocate(ParamData%K22)
end if
@@ -1079,9 +1413,19 @@ subroutine ExtPtfm_DestroyParam(ParamData, ErrStat, ErrMsg)
if (allocated(ParamData%C21)) then
deallocate(ParamData%C21)
end if
+ if (allocated(ParamData%phiConn)) then
+ deallocate(ParamData%phiConn)
+ end if
+ if (allocated(ParamData%PosConn)) then
+ deallocate(ParamData%PosConn)
+ end if
if (allocated(ParamData%ActiveCBDOF)) then
deallocate(ParamData%ActiveCBDOF)
end if
+ call ExtPtfm_DestroyUserForcingType(ParamData%UsrModeF, ErrStat2, ErrMsg2)
+ call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call ExtPtfm_DestroyUserForcingType(ParamData%UsrConnF, ErrStat2, ErrMsg2)
+ call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
if (allocated(ParamData%OutParam)) then
LB(1:1) = lbound(ParamData%OutParam)
UB(1:1) = ubound(ParamData%OutParam)
@@ -1103,35 +1447,53 @@ subroutine ExtPtfm_PackParam(RF, Indata)
integer(B4Ki) :: i1, i2
integer(B4Ki) :: LB(2), UB(2)
if (RF%ErrStat >= AbortErrLev) return
+ call RegPack(RF, InData%hasRBMode)
+ call RegPack(RF, InData%RBMod)
call RegPackAlloc(RF, InData%Mass)
call RegPackAlloc(RF, InData%Damp)
call RegPackAlloc(RF, InData%Stff)
- call RegPackAlloc(RF, InData%Forces)
- call RegPackAlloc(RF, InData%times)
- call RegPackAlloc(RF, InData%AMat)
- call RegPackAlloc(RF, InData%BMat)
- call RegPackAlloc(RF, InData%CMat)
- call RegPackAlloc(RF, InData%DMat)
- call RegPackAlloc(RF, InData%FX)
- call RegPackAlloc(RF, InData%FY)
+ call RegPackAlloc(RF, InData%W0)
+ call RegPackAlloc(RF, InData%WStff)
+ call RegPackAlloc(RF, InData%A1Mat)
+ call RegPackAlloc(RF, InData%A2Mat)
+ call RegPackAlloc(RF, InData%B1Mat)
+ call RegPackAlloc(RF, InData%B2Mat)
+ call RegPackAlloc(RF, InData%B3Mat)
+ call RegPackAlloc(RF, InData%B4Mat)
+ call RegPackAlloc(RF, InData%C1Mat)
+ call RegPackAlloc(RF, InData%C2Mat)
+ call RegPackAlloc(RF, InData%D1Mat)
+ call RegPackAlloc(RF, InData%D2Mat)
+ call RegPackAlloc(RF, InData%D3Mat)
+ call RegPackAlloc(RF, InData%D4Mat)
call RegPackAlloc(RF, InData%M11)
call RegPackAlloc(RF, InData%M12)
- call RegPackAlloc(RF, InData%M22)
call RegPackAlloc(RF, InData%M21)
+ call RegPackAlloc(RF, InData%M22)
+ call RegPackAlloc(RF, InData%M22Inv)
call RegPackAlloc(RF, InData%K11)
+ call RegPackAlloc(RF, InData%K12)
+ call RegPackAlloc(RF, InData%K21)
call RegPackAlloc(RF, InData%K22)
call RegPackAlloc(RF, InData%C11)
call RegPackAlloc(RF, InData%C12)
call RegPackAlloc(RF, InData%C22)
call RegPackAlloc(RF, InData%C21)
+ call RegPackAlloc(RF, InData%phiConn)
+ call RegPackAlloc(RF, InData%PosConn)
+ call RegPack(RF, InData%RBMass)
+ call RegPack(RF, InData%RBCoG)
+ call RegPack(RF, InData%RBInertia)
call RegPack(RF, InData%EP_DeltaT)
- call RegPack(RF, InData%nTimeSteps)
call RegPack(RF, InData%nCB)
call RegPack(RF, InData%nCBFull)
call RegPack(RF, InData%nTot)
+ call RegPack(RF, InData%nConn)
call RegPack(RF, InData%NumOuts)
call RegPack(RF, InData%IntMethod)
call RegPackAlloc(RF, InData%ActiveCBDOF)
+ call ExtPtfm_PackUserForcingType(RF, InData%UsrModeF)
+ call ExtPtfm_PackUserForcingType(RF, InData%UsrConnF)
call RegPack(RF, allocated(InData%OutParam))
if (allocated(InData%OutParam)) then
call RegPackBounds(RF, 1, lbound(InData%OutParam), ubound(InData%OutParam))
@@ -1154,35 +1516,53 @@ subroutine ExtPtfm_UnPackParam(RF, OutData)
integer(IntKi) :: stat
logical :: IsAllocAssoc
if (RF%ErrStat /= ErrID_None) return
+ call RegUnpack(RF, OutData%hasRBMode); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%RBMod); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%Mass); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%Damp); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%Stff); if (RegCheckErr(RF, RoutineName)) return
- call RegUnpackAlloc(RF, OutData%Forces); if (RegCheckErr(RF, RoutineName)) return
- call RegUnpackAlloc(RF, OutData%times); if (RegCheckErr(RF, RoutineName)) return
- call RegUnpackAlloc(RF, OutData%AMat); if (RegCheckErr(RF, RoutineName)) return
- call RegUnpackAlloc(RF, OutData%BMat); if (RegCheckErr(RF, RoutineName)) return
- call RegUnpackAlloc(RF, OutData%CMat); if (RegCheckErr(RF, RoutineName)) return
- call RegUnpackAlloc(RF, OutData%DMat); if (RegCheckErr(RF, RoutineName)) return
- call RegUnpackAlloc(RF, OutData%FX); if (RegCheckErr(RF, RoutineName)) return
- call RegUnpackAlloc(RF, OutData%FY); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%W0); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%WStff); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%A1Mat); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%A2Mat); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%B1Mat); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%B2Mat); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%B3Mat); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%B4Mat); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%C1Mat); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%C2Mat); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%D1Mat); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%D2Mat); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%D3Mat); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%D4Mat); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%M11); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%M12); if (RegCheckErr(RF, RoutineName)) return
- call RegUnpackAlloc(RF, OutData%M22); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%M21); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%M22); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%M22Inv); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%K11); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%K12); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%K21); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%K22); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%C11); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%C12); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%C22); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%C21); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%phiConn); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%PosConn); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%RBMass); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%RBCoG); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%RBInertia); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%EP_DeltaT); if (RegCheckErr(RF, RoutineName)) return
- call RegUnpack(RF, OutData%nTimeSteps); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%nCB); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%nCBFull); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%nTot); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%nConn); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%NumOuts); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%IntMethod); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%ActiveCBDOF); if (RegCheckErr(RF, RoutineName)) return
+ call ExtPtfm_UnpackUserForcingType(RF, OutData%UsrModeF) ! UsrModeF
+ call ExtPtfm_UnpackUserForcingType(RF, OutData%UsrConnF) ! UsrConnF
if (allocated(OutData%OutParam)) deallocate(OutData%OutParam)
call RegUnpack(RF, IsAllocAssoc); if (RegCheckErr(RF, RoutineName)) return
if (IsAllocAssoc) then
@@ -1205,6 +1585,7 @@ subroutine ExtPtfm_CopyInput(SrcInputData, DstInputData, CtrlCode, ErrStat, ErrM
integer(IntKi), intent(in ) :: CtrlCode
integer(IntKi), intent( out) :: ErrStat
character(*), intent( out) :: ErrMsg
+ integer(B4Ki) :: LB(1), UB(1)
integer(IntKi) :: ErrStat2
character(ErrMsgLen) :: ErrMsg2
character(*), parameter :: RoutineName = 'ExtPtfm_CopyInput'
@@ -1213,6 +1594,24 @@ subroutine ExtPtfm_CopyInput(SrcInputData, DstInputData, CtrlCode, ErrStat, ErrM
call MeshCopy(SrcInputData%PtfmMesh, DstInputData%PtfmMesh, CtrlCode, ErrStat2, ErrMsg2 )
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
if (ErrStat >= AbortErrLev) return
+ call MeshCopy(SrcInputData%ConnLdMesh, DstInputData%ConnLdMesh, CtrlCode, ErrStat2, ErrMsg2 )
+ call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ if (ErrStat >= AbortErrLev) return
+ call MeshCopy(SrcInputData%FBMesh, DstInputData%FBMesh, CtrlCode, ErrStat2, ErrMsg2 )
+ call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ if (ErrStat >= AbortErrLev) return
+ if (allocated(SrcInputData%Fm)) then
+ LB(1:1) = lbound(SrcInputData%Fm)
+ UB(1:1) = ubound(SrcInputData%Fm)
+ if (.not. allocated(DstInputData%Fm)) then
+ allocate(DstInputData%Fm(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstInputData%Fm.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstInputData%Fm = SrcInputData%Fm
+ end if
end subroutine
subroutine ExtPtfm_DestroyInput(InputData, ErrStat, ErrMsg)
@@ -1226,6 +1625,13 @@ subroutine ExtPtfm_DestroyInput(InputData, ErrStat, ErrMsg)
ErrMsg = ''
call MeshDestroy( InputData%PtfmMesh, ErrStat2, ErrMsg2)
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call MeshDestroy( InputData%ConnLdMesh, ErrStat2, ErrMsg2)
+ call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call MeshDestroy( InputData%FBMesh, ErrStat2, ErrMsg2)
+ call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ if (allocated(InputData%Fm)) then
+ deallocate(InputData%Fm)
+ end if
end subroutine
subroutine ExtPtfm_PackInput(RF, Indata)
@@ -1234,6 +1640,9 @@ subroutine ExtPtfm_PackInput(RF, Indata)
character(*), parameter :: RoutineName = 'ExtPtfm_PackInput'
if (RF%ErrStat >= AbortErrLev) return
call MeshPack(RF, InData%PtfmMesh)
+ call MeshPack(RF, InData%ConnLdMesh)
+ call MeshPack(RF, InData%FBMesh)
+ call RegPackAlloc(RF, InData%Fm)
if (RegCheckErr(RF, RoutineName)) return
end subroutine
@@ -1241,8 +1650,14 @@ subroutine ExtPtfm_UnPackInput(RF, OutData)
type(RegFile), intent(inout) :: RF
type(ExtPtfm_InputType), intent(inout) :: OutData
character(*), parameter :: RoutineName = 'ExtPtfm_UnPackInput'
+ integer(B4Ki) :: LB(1), UB(1)
+ integer(IntKi) :: stat
+ logical :: IsAllocAssoc
if (RF%ErrStat /= ErrID_None) return
call MeshUnpack(RF, OutData%PtfmMesh) ! PtfmMesh
+ call MeshUnpack(RF, OutData%ConnLdMesh) ! ConnLdMesh
+ call MeshUnpack(RF, OutData%FBMesh) ! FBMesh
+ call RegUnpackAlloc(RF, OutData%Fm); if (RegCheckErr(RF, RoutineName)) return
end subroutine
subroutine ExtPtfm_CopyOutput(SrcOutputData, DstOutputData, CtrlCode, ErrStat, ErrMsg)
@@ -1260,6 +1675,48 @@ subroutine ExtPtfm_CopyOutput(SrcOutputData, DstOutputData, CtrlCode, ErrStat, E
call MeshCopy(SrcOutputData%PtfmMesh, DstOutputData%PtfmMesh, CtrlCode, ErrStat2, ErrMsg2 )
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
if (ErrStat >= AbortErrLev) return
+ call MeshCopy(SrcOutputData%ConnMesh, DstOutputData%ConnMesh, CtrlCode, ErrStat2, ErrMsg2 )
+ call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ if (ErrStat >= AbortErrLev) return
+ call MeshCopy(SrcOutputData%FBMesh, DstOutputData%FBMesh, CtrlCode, ErrStat2, ErrMsg2 )
+ call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ if (ErrStat >= AbortErrLev) return
+ if (allocated(SrcOutputData%qm)) then
+ LB(1:1) = lbound(SrcOutputData%qm)
+ UB(1:1) = ubound(SrcOutputData%qm)
+ if (.not. allocated(DstOutputData%qm)) then
+ allocate(DstOutputData%qm(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstOutputData%qm.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstOutputData%qm = SrcOutputData%qm
+ end if
+ if (allocated(SrcOutputData%qmdot)) then
+ LB(1:1) = lbound(SrcOutputData%qmdot)
+ UB(1:1) = ubound(SrcOutputData%qmdot)
+ if (.not. allocated(DstOutputData%qmdot)) then
+ allocate(DstOutputData%qmdot(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstOutputData%qmdot.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstOutputData%qmdot = SrcOutputData%qmdot
+ end if
+ if (allocated(SrcOutputData%qmdotdot)) then
+ LB(1:1) = lbound(SrcOutputData%qmdotdot)
+ UB(1:1) = ubound(SrcOutputData%qmdotdot)
+ if (.not. allocated(DstOutputData%qmdotdot)) then
+ allocate(DstOutputData%qmdotdot(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstOutputData%qmdotdot.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstOutputData%qmdotdot = SrcOutputData%qmdotdot
+ end if
if (allocated(SrcOutputData%WriteOutput)) then
LB(1:1) = lbound(SrcOutputData%WriteOutput)
UB(1:1) = ubound(SrcOutputData%WriteOutput)
@@ -1285,6 +1742,19 @@ subroutine ExtPtfm_DestroyOutput(OutputData, ErrStat, ErrMsg)
ErrMsg = ''
call MeshDestroy( OutputData%PtfmMesh, ErrStat2, ErrMsg2)
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call MeshDestroy( OutputData%ConnMesh, ErrStat2, ErrMsg2)
+ call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call MeshDestroy( OutputData%FBMesh, ErrStat2, ErrMsg2)
+ call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ if (allocated(OutputData%qm)) then
+ deallocate(OutputData%qm)
+ end if
+ if (allocated(OutputData%qmdot)) then
+ deallocate(OutputData%qmdot)
+ end if
+ if (allocated(OutputData%qmdotdot)) then
+ deallocate(OutputData%qmdotdot)
+ end if
if (allocated(OutputData%WriteOutput)) then
deallocate(OutputData%WriteOutput)
end if
@@ -1296,6 +1766,11 @@ subroutine ExtPtfm_PackOutput(RF, Indata)
character(*), parameter :: RoutineName = 'ExtPtfm_PackOutput'
if (RF%ErrStat >= AbortErrLev) return
call MeshPack(RF, InData%PtfmMesh)
+ call MeshPack(RF, InData%ConnMesh)
+ call MeshPack(RF, InData%FBMesh)
+ call RegPackAlloc(RF, InData%qm)
+ call RegPackAlloc(RF, InData%qmdot)
+ call RegPackAlloc(RF, InData%qmdotdot)
call RegPackAlloc(RF, InData%WriteOutput)
if (RegCheckErr(RF, RoutineName)) return
end subroutine
@@ -1309,6 +1784,11 @@ subroutine ExtPtfm_UnPackOutput(RF, OutData)
logical :: IsAllocAssoc
if (RF%ErrStat /= ErrID_None) return
call MeshUnpack(RF, OutData%PtfmMesh) ! PtfmMesh
+ call MeshUnpack(RF, OutData%ConnMesh) ! ConnMesh
+ call MeshUnpack(RF, OutData%FBMesh) ! FBMesh
+ call RegUnpackAlloc(RF, OutData%qm); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%qmdot); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%qmdotdot); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%WriteOutput); if (RegCheckErr(RF, RoutineName)) return
end subroutine
@@ -1349,7 +1829,116 @@ subroutine ExtPtfm_CopyMisc(SrcMiscData, DstMiscData, CtrlCode, ErrStat, ErrMsg)
end if
DstMiscData%F_at_t = SrcMiscData%F_at_t
end if
- DstMiscData%Indx = SrcMiscData%Indx
+ if (allocated(SrcMiscData%FConn_at_t)) then
+ LB(1:1) = lbound(SrcMiscData%FConn_at_t)
+ UB(1:1) = ubound(SrcMiscData%FConn_at_t)
+ if (.not. allocated(DstMiscData%FConn_at_t)) then
+ allocate(DstMiscData%FConn_at_t(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstMiscData%FConn_at_t.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstMiscData%FConn_at_t = SrcMiscData%FConn_at_t
+ end if
+ if (allocated(SrcMiscData%F1)) then
+ LB(1:1) = lbound(SrcMiscData%F1)
+ UB(1:1) = ubound(SrcMiscData%F1)
+ if (.not. allocated(DstMiscData%F1)) then
+ allocate(DstMiscData%F1(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstMiscData%F1.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstMiscData%F1 = SrcMiscData%F1
+ end if
+ if (allocated(SrcMiscData%F2)) then
+ LB(1:1) = lbound(SrcMiscData%F2)
+ UB(1:1) = ubound(SrcMiscData%F2)
+ if (.not. allocated(DstMiscData%F2)) then
+ allocate(DstMiscData%F2(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstMiscData%F2.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstMiscData%F2 = SrcMiscData%F2
+ end if
+ if (allocated(SrcMiscData%Weight)) then
+ LB(1:1) = lbound(SrcMiscData%Weight)
+ UB(1:1) = ubound(SrcMiscData%Weight)
+ if (.not. allocated(DstMiscData%Weight)) then
+ allocate(DstMiscData%Weight(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstMiscData%Weight.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstMiscData%Weight = SrcMiscData%Weight
+ end if
+ if (allocated(SrcMiscData%FConn)) then
+ LB(1:1) = lbound(SrcMiscData%FConn)
+ UB(1:1) = ubound(SrcMiscData%FConn)
+ if (.not. allocated(DstMiscData%FConn)) then
+ allocate(DstMiscData%FConn(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstMiscData%FConn.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstMiscData%FConn = SrcMiscData%FConn
+ end if
+ if (allocated(SrcMiscData%FConnCB)) then
+ LB(1:1) = lbound(SrcMiscData%FConnCB)
+ UB(1:1) = ubound(SrcMiscData%FConnCB)
+ if (.not. allocated(DstMiscData%FConnCB)) then
+ allocate(DstMiscData%FConnCB(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstMiscData%FConnCB.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstMiscData%FConnCB = SrcMiscData%FConnCB
+ end if
+ if (allocated(SrcMiscData%DConn)) then
+ LB(1:1) = lbound(SrcMiscData%DConn)
+ UB(1:1) = ubound(SrcMiscData%DConn)
+ if (.not. allocated(DstMiscData%DConn)) then
+ allocate(DstMiscData%DConn(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstMiscData%DConn.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstMiscData%DConn = SrcMiscData%DConn
+ end if
+ if (allocated(SrcMiscData%VConn)) then
+ LB(1:1) = lbound(SrcMiscData%VConn)
+ UB(1:1) = ubound(SrcMiscData%VConn)
+ if (.not. allocated(DstMiscData%VConn)) then
+ allocate(DstMiscData%VConn(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstMiscData%VConn.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstMiscData%VConn = SrcMiscData%VConn
+ end if
+ if (allocated(SrcMiscData%AConn)) then
+ LB(1:1) = lbound(SrcMiscData%AConn)
+ UB(1:1) = ubound(SrcMiscData%AConn)
+ if (.not. allocated(DstMiscData%AConn)) then
+ allocate(DstMiscData%AConn(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstMiscData%AConn.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstMiscData%AConn = SrcMiscData%AConn
+ end if
+ DstMiscData%Indx_UsrModeF = SrcMiscData%Indx_UsrModeF
+ DstMiscData%Indx_UsrConnF = SrcMiscData%Indx_UsrConnF
DstMiscData%EquilStart = SrcMiscData%EquilStart
if (allocated(SrcMiscData%AllOuts)) then
LB(1:1) = lbound(SrcMiscData%AllOuts)
@@ -1395,6 +1984,33 @@ subroutine ExtPtfm_DestroyMisc(MiscData, ErrStat, ErrMsg)
if (allocated(MiscData%F_at_t)) then
deallocate(MiscData%F_at_t)
end if
+ if (allocated(MiscData%FConn_at_t)) then
+ deallocate(MiscData%FConn_at_t)
+ end if
+ if (allocated(MiscData%F1)) then
+ deallocate(MiscData%F1)
+ end if
+ if (allocated(MiscData%F2)) then
+ deallocate(MiscData%F2)
+ end if
+ if (allocated(MiscData%Weight)) then
+ deallocate(MiscData%Weight)
+ end if
+ if (allocated(MiscData%FConn)) then
+ deallocate(MiscData%FConn)
+ end if
+ if (allocated(MiscData%FConnCB)) then
+ deallocate(MiscData%FConnCB)
+ end if
+ if (allocated(MiscData%DConn)) then
+ deallocate(MiscData%DConn)
+ end if
+ if (allocated(MiscData%VConn)) then
+ deallocate(MiscData%VConn)
+ end if
+ if (allocated(MiscData%AConn)) then
+ deallocate(MiscData%AConn)
+ end if
if (allocated(MiscData%AllOuts)) then
deallocate(MiscData%AllOuts)
end if
@@ -1418,7 +2034,17 @@ subroutine ExtPtfm_PackMisc(RF, Indata)
call RegPackAlloc(RF, InData%xFlat)
call RegPack(RF, InData%uFlat)
call RegPackAlloc(RF, InData%F_at_t)
- call RegPack(RF, InData%Indx)
+ call RegPackAlloc(RF, InData%FConn_at_t)
+ call RegPackAlloc(RF, InData%F1)
+ call RegPackAlloc(RF, InData%F2)
+ call RegPackAlloc(RF, InData%Weight)
+ call RegPackAlloc(RF, InData%FConn)
+ call RegPackAlloc(RF, InData%FConnCB)
+ call RegPackAlloc(RF, InData%DConn)
+ call RegPackAlloc(RF, InData%VConn)
+ call RegPackAlloc(RF, InData%AConn)
+ call RegPack(RF, InData%Indx_UsrModeF)
+ call RegPack(RF, InData%Indx_UsrConnF)
call RegPack(RF, InData%EquilStart)
call RegPackAlloc(RF, InData%AllOuts)
call NWTC_Library_PackModJacType(RF, InData%Jac)
@@ -1440,7 +2066,17 @@ subroutine ExtPtfm_UnPackMisc(RF, OutData)
call RegUnpackAlloc(RF, OutData%xFlat); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%uFlat); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%F_at_t); if (RegCheckErr(RF, RoutineName)) return
- call RegUnpack(RF, OutData%Indx); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%FConn_at_t); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%F1); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%F2); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%Weight); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%FConn); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%FConnCB); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%DConn); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%VConn); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%AConn); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%Indx_UsrModeF); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%Indx_UsrConnF); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%EquilStart); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%AllOuts); if (RegCheckErr(RF, RoutineName)) return
call NWTC_Library_UnpackModJacType(RF, OutData%Jac) ! Jac
@@ -1528,6 +2164,8 @@ SUBROUTINE ExtPtfm_Input_ExtrapInterp1(u1, u2, tin, u_out, tin_out, ErrStat, Err
REAL(DbKi) :: a1, a2 ! temporary for extrapolation/interpolation
INTEGER(IntKi) :: ErrStat2 ! local errors
CHARACTER(ErrMsgLen) :: ErrMsg2 ! local errors
+ INTEGER :: i01 ! dim1 level 0 counter variable for arrays of ddts
+ INTEGER :: i1 ! dim1 counter variable for arrays
! Initialize ErrStat
ErrStat = ErrID_None
ErrMsg = ''
@@ -1547,6 +2185,13 @@ SUBROUTINE ExtPtfm_Input_ExtrapInterp1(u1, u2, tin, u_out, tin_out, ErrStat, Err
CALL MeshExtrapInterp1(u1%PtfmMesh, u2%PtfmMesh, tin, u_out%PtfmMesh, tin_out, ErrStat2, ErrMsg2)
CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
+ CALL MeshExtrapInterp1(u1%ConnLdMesh, u2%ConnLdMesh, tin, u_out%ConnLdMesh, tin_out, ErrStat2, ErrMsg2)
+ CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
+ CALL MeshExtrapInterp1(u1%FBMesh, u2%FBMesh, tin, u_out%FBMesh, tin_out, ErrStat2, ErrMsg2)
+ CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
+ IF (ALLOCATED(u_out%Fm) .AND. ALLOCATED(u1%Fm)) THEN
+ u_out%Fm = a1*u1%Fm + a2*u2%Fm
+ END IF ! check if allocated
END SUBROUTINE
SUBROUTINE ExtPtfm_Input_ExtrapInterp2(u1, u2, u3, tin, u_out, tin_out, ErrStat, ErrMsg )
@@ -1579,6 +2224,8 @@ SUBROUTINE ExtPtfm_Input_ExtrapInterp2(u1, u2, u3, tin, u_out, tin_out, ErrStat,
INTEGER(IntKi) :: ErrStat2 ! local errors
CHARACTER(ErrMsgLen) :: ErrMsg2 ! local errors
CHARACTER(*), PARAMETER :: RoutineName = 'ExtPtfm_Input_ExtrapInterp2'
+ INTEGER :: i01 ! dim1 level 0 counter variable for arrays of ddts
+ INTEGER :: i1 ! dim1 counter variable for arrays
! Initialize ErrStat
ErrStat = ErrID_None
ErrMsg = ''
@@ -1604,6 +2251,13 @@ SUBROUTINE ExtPtfm_Input_ExtrapInterp2(u1, u2, u3, tin, u_out, tin_out, ErrStat,
a3 = (t_out - t(1))*(t_out - t(2))/((t(3) - t(1))*(t(3) - t(2)))
CALL MeshExtrapInterp2(u1%PtfmMesh, u2%PtfmMesh, u3%PtfmMesh, tin, u_out%PtfmMesh, tin_out, ErrStat2, ErrMsg2)
CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
+ CALL MeshExtrapInterp2(u1%ConnLdMesh, u2%ConnLdMesh, u3%ConnLdMesh, tin, u_out%ConnLdMesh, tin_out, ErrStat2, ErrMsg2)
+ CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
+ CALL MeshExtrapInterp2(u1%FBMesh, u2%FBMesh, u3%FBMesh, tin, u_out%FBMesh, tin_out, ErrStat2, ErrMsg2)
+ CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
+ IF (ALLOCATED(u_out%Fm) .AND. ALLOCATED(u1%Fm)) THEN
+ u_out%Fm = a1*u1%Fm + a2*u2%Fm + a3*u3%Fm
+ END IF ! check if allocated
END SUBROUTINE
subroutine ExtPtfm_Output_ExtrapInterp(y, t, y_out, t_out, ErrStat, ErrMsg)
@@ -1705,6 +2359,19 @@ SUBROUTINE ExtPtfm_Output_ExtrapInterp1(y1, y2, tin, y_out, tin_out, ErrStat, Er
CALL MeshExtrapInterp1(y1%PtfmMesh, y2%PtfmMesh, tin, y_out%PtfmMesh, tin_out, ErrStat2, ErrMsg2)
CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
+ CALL MeshExtrapInterp1(y1%ConnMesh, y2%ConnMesh, tin, y_out%ConnMesh, tin_out, ErrStat2, ErrMsg2)
+ CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
+ CALL MeshExtrapInterp1(y1%FBMesh, y2%FBMesh, tin, y_out%FBMesh, tin_out, ErrStat2, ErrMsg2)
+ CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
+ IF (ALLOCATED(y_out%qm) .AND. ALLOCATED(y1%qm)) THEN
+ y_out%qm = a1*y1%qm + a2*y2%qm
+ END IF ! check if allocated
+ IF (ALLOCATED(y_out%qmdot) .AND. ALLOCATED(y1%qmdot)) THEN
+ y_out%qmdot = a1*y1%qmdot + a2*y2%qmdot
+ END IF ! check if allocated
+ IF (ALLOCATED(y_out%qmdotdot) .AND. ALLOCATED(y1%qmdotdot)) THEN
+ y_out%qmdotdot = a1*y1%qmdotdot + a2*y2%qmdotdot
+ END IF ! check if allocated
IF (ALLOCATED(y_out%WriteOutput) .AND. ALLOCATED(y1%WriteOutput)) THEN
y_out%WriteOutput = a1*y1%WriteOutput + a2*y2%WriteOutput
END IF ! check if allocated
@@ -1767,6 +2434,19 @@ SUBROUTINE ExtPtfm_Output_ExtrapInterp2(y1, y2, y3, tin, y_out, tin_out, ErrStat
a3 = (t_out - t(1))*(t_out - t(2))/((t(3) - t(1))*(t(3) - t(2)))
CALL MeshExtrapInterp2(y1%PtfmMesh, y2%PtfmMesh, y3%PtfmMesh, tin, y_out%PtfmMesh, tin_out, ErrStat2, ErrMsg2)
CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
+ CALL MeshExtrapInterp2(y1%ConnMesh, y2%ConnMesh, y3%ConnMesh, tin, y_out%ConnMesh, tin_out, ErrStat2, ErrMsg2)
+ CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
+ CALL MeshExtrapInterp2(y1%FBMesh, y2%FBMesh, y3%FBMesh, tin, y_out%FBMesh, tin_out, ErrStat2, ErrMsg2)
+ CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
+ IF (ALLOCATED(y_out%qm) .AND. ALLOCATED(y1%qm)) THEN
+ y_out%qm = a1*y1%qm + a2*y2%qm + a3*y3%qm
+ END IF ! check if allocated
+ IF (ALLOCATED(y_out%qmdot) .AND. ALLOCATED(y1%qmdot)) THEN
+ y_out%qmdot = a1*y1%qmdot + a2*y2%qmdot + a3*y3%qmdot
+ END IF ! check if allocated
+ IF (ALLOCATED(y_out%qmdotdot) .AND. ALLOCATED(y1%qmdotdot)) THEN
+ y_out%qmdotdot = a1*y1%qmdotdot + a2*y2%qmdotdot + a3*y3%qmdotdot
+ END IF ! check if allocated
IF (ALLOCATED(y_out%WriteOutput) .AND. ALLOCATED(y1%WriteOutput)) THEN
y_out%WriteOutput = a1*y1%WriteOutput + a2*y2%WriteOutput + a3*y3%WriteOutput
END IF ! check if allocated
@@ -1780,6 +2460,10 @@ function ExtPtfm_InputMeshPointer(u, DL) result(Mesh)
select case (DL%Num)
case (ExtPtfm_u_PtfmMesh)
Mesh => u%PtfmMesh
+ case (ExtPtfm_u_ConnLdMesh)
+ Mesh => u%ConnLdMesh
+ case (ExtPtfm_u_FBMesh)
+ Mesh => u%FBMesh
end select
end function
@@ -1791,6 +2475,10 @@ function ExtPtfm_OutputMeshPointer(y, DL) result(Mesh)
select case (DL%Num)
case (ExtPtfm_y_PtfmMesh)
Mesh => y%PtfmMesh
+ case (ExtPtfm_y_ConnMesh)
+ Mesh => y%ConnMesh
+ case (ExtPtfm_y_FBMesh)
+ Mesh => y%FBMesh
end select
end function
@@ -1901,6 +2589,12 @@ subroutine ExtPtfm_VarPackInput(V, u, ValAry)
select case (DL%Num)
case (ExtPtfm_u_PtfmMesh)
call MV_PackMesh(V, u%PtfmMesh, ValAry) ! Mesh
+ case (ExtPtfm_u_ConnLdMesh)
+ call MV_PackMesh(V, u%ConnLdMesh, ValAry) ! Mesh
+ case (ExtPtfm_u_FBMesh)
+ call MV_PackMesh(V, u%FBMesh, ValAry) ! Mesh
+ case (ExtPtfm_u_Fm)
+ VarVals = u%Fm(V%iLB:V%iUB) ! Rank 1 Array
case default
VarVals = 0.0_R8Ki
end select
@@ -1925,6 +2619,12 @@ subroutine ExtPtfm_VarUnpackInput(V, ValAry, u)
select case (DL%Num)
case (ExtPtfm_u_PtfmMesh)
call MV_UnpackMesh(V, ValAry, u%PtfmMesh) ! Mesh
+ case (ExtPtfm_u_ConnLdMesh)
+ call MV_UnpackMesh(V, ValAry, u%ConnLdMesh) ! Mesh
+ case (ExtPtfm_u_FBMesh)
+ call MV_UnpackMesh(V, ValAry, u%FBMesh) ! Mesh
+ case (ExtPtfm_u_Fm)
+ u%Fm(V%iLB:V%iUB) = VarVals ! Rank 1 Array
end select
end associate
end subroutine
@@ -1935,6 +2635,12 @@ function ExtPtfm_InputFieldName(DL) result(Name)
select case (DL%Num)
case (ExtPtfm_u_PtfmMesh)
Name = "u%PtfmMesh"
+ case (ExtPtfm_u_ConnLdMesh)
+ Name = "u%ConnLdMesh"
+ case (ExtPtfm_u_FBMesh)
+ Name = "u%FBMesh"
+ case (ExtPtfm_u_Fm)
+ Name = "u%Fm"
case default
Name = "Unknown Field"
end select
@@ -1958,6 +2664,16 @@ subroutine ExtPtfm_VarPackOutput(V, y, ValAry)
select case (DL%Num)
case (ExtPtfm_y_PtfmMesh)
call MV_PackMesh(V, y%PtfmMesh, ValAry) ! Mesh
+ case (ExtPtfm_y_ConnMesh)
+ call MV_PackMesh(V, y%ConnMesh, ValAry) ! Mesh
+ case (ExtPtfm_y_FBMesh)
+ call MV_PackMesh(V, y%FBMesh, ValAry) ! Mesh
+ case (ExtPtfm_y_qm)
+ VarVals = y%qm(V%iLB:V%iUB) ! Rank 1 Array
+ case (ExtPtfm_y_qmdot)
+ VarVals = y%qmdot(V%iLB:V%iUB) ! Rank 1 Array
+ case (ExtPtfm_y_qmdotdot)
+ VarVals = y%qmdotdot(V%iLB:V%iUB) ! Rank 1 Array
case (ExtPtfm_y_WriteOutput)
VarVals = y%WriteOutput(V%iLB:V%iUB) ! Rank 1 Array
case default
@@ -1984,6 +2700,16 @@ subroutine ExtPtfm_VarUnpackOutput(V, ValAry, y)
select case (DL%Num)
case (ExtPtfm_y_PtfmMesh)
call MV_UnpackMesh(V, ValAry, y%PtfmMesh) ! Mesh
+ case (ExtPtfm_y_ConnMesh)
+ call MV_UnpackMesh(V, ValAry, y%ConnMesh) ! Mesh
+ case (ExtPtfm_y_FBMesh)
+ call MV_UnpackMesh(V, ValAry, y%FBMesh) ! Mesh
+ case (ExtPtfm_y_qm)
+ y%qm(V%iLB:V%iUB) = VarVals ! Rank 1 Array
+ case (ExtPtfm_y_qmdot)
+ y%qmdot(V%iLB:V%iUB) = VarVals ! Rank 1 Array
+ case (ExtPtfm_y_qmdotdot)
+ y%qmdotdot(V%iLB:V%iUB) = VarVals ! Rank 1 Array
case (ExtPtfm_y_WriteOutput)
y%WriteOutput(V%iLB:V%iUB) = VarVals ! Rank 1 Array
end select
@@ -1996,6 +2722,16 @@ function ExtPtfm_OutputFieldName(DL) result(Name)
select case (DL%Num)
case (ExtPtfm_y_PtfmMesh)
Name = "y%PtfmMesh"
+ case (ExtPtfm_y_ConnMesh)
+ Name = "y%ConnMesh"
+ case (ExtPtfm_y_FBMesh)
+ Name = "y%FBMesh"
+ case (ExtPtfm_y_qm)
+ Name = "y%qm"
+ case (ExtPtfm_y_qmdot)
+ Name = "y%qmdot"
+ case (ExtPtfm_y_qmdotdot)
+ Name = "y%qmdotdot"
case (ExtPtfm_y_WriteOutput)
Name = "y%WriteOutput"
case default
diff --git a/modules/hydrodyn/src/Conv_Radiation.f90 b/modules/hydrodyn/src/Conv_Radiation.f90
index cab6699ba6..f8aa84010e 100644
--- a/modules/hydrodyn/src/Conv_Radiation.f90
+++ b/modules/hydrodyn/src/Conv_Radiation.f90
@@ -113,7 +113,8 @@ SUBROUTINE Conv_Rdtn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, InitOut, E
! RdtnOmegaMax, Abort because RdtnDT must be reduced in order to have
! sufficient accuracy in the computation of the radiation impulse response
! functions:
- p%NBody = InitInp%NBody
+ p%NBody = InitInp%NBody ! Can be removed in the future. Role replaced by NDOF.
+ p%NDOF = InitInp%NDOF
p%RdtnDT = InitInp%RdtnDT ! this is also Interval
RdtnOmegaMax = Pi / InitInp%RdtnDT
@@ -125,8 +126,8 @@ SUBROUTINE Conv_Rdtn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, InitOut, E
RETURN
END IF
- call AllocAry( u%Velocity, 6*p%NBody, "u%Velocity" , ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, 'Conv_Rdtn_Init' )
- call AllocAry( y%F_Rdtn , 6*p%NBody, "y%F_Rdtn" , ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, 'Conv_Rdtn_Init' )
+ call AllocAry( u%Velocity, p%NDOF, "u%Velocity" , ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, 'Conv_Rdtn_Init' )
+ call AllocAry( y%F_Rdtn , p%NDOF, "y%F_Rdtn" , ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, 'Conv_Rdtn_Init' )
u%Velocity = 0.0 !this is an initial guess;
@@ -164,14 +165,14 @@ SUBROUTINE Conv_Rdtn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, InitOut, E
RETURN
END IF
- ALLOCATE ( p%RdtnKrnl (6*p%NBody,6*p%NBody,0:p%NStepRdtn-1) , STAT=ErrStat )
+ ALLOCATE ( p%RdtnKrnl (p%NDOF,p%NDOF,0:p%NStepRdtn-1) , STAT=ErrStat )
IF ( ErrStat /= ErrID_None ) THEN
ErrMsg = ' Error allocating memory for the RdtnKrnl array.'
ErrStat = ErrID_Fatal
RETURN
END IF
- ALLOCATE ( xd%XDHistory(6*p%NBody,0:p%NStepRdtn) , STAT=ErrStat ) ! In the numerical convolution we must have NStepRdtn1 elements within the XDHistory array, which is one more than the NStepRdtn elements that are in the RdtnKrnl array
+ ALLOCATE ( xd%XDHistory(p%NDOF,0:p%NStepRdtn) , STAT=ErrStat ) ! In the numerical convolution we must have NStepRdtn1 elements within the XDHistory array, which is one more than the NStepRdtn elements that are in the RdtnKrnl array
IF ( ErrStat /= ErrID_None ) THEN
ErrMsg = ' Error allocating memory for the XDHistory array.'
ErrStat = ErrID_Fatal
@@ -180,7 +181,7 @@ SUBROUTINE Conv_Rdtn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, InitOut, E
! Initialize all elements of the xd%XDHistory array with the initial values of u%Velocity
DO K = 0,p%NStepRdtn-1
- DO J = 1,6*p%NBody ! Loop through all DOFs
+ DO J = 1,p%NDOF ! Loop through all DOFs
xd%XDHistory(J,K) = u%Velocity(J)
END DO
END DO
@@ -218,8 +219,8 @@ SUBROUTINE Conv_Rdtn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, InitOut, E
! transform of the wave radiation kernel:
! Indx = 0
- DO J = 1,6*p%NBody ! Loop through all rows of RdtnKrnl
- DO K = 1,6*p%NBody ! Loop through all columns of RdtnKrnl above and including the diagonal
+ DO J = 1,p%NDOF ! Loop through all rows of RdtnKrnl
+ DO K = 1,p%NDOF ! Loop through all columns of RdtnKrnl above and including the diagonal
!Indx = Indx + 1
p%RdtnKrnl(J,K,I) = Krnl_Fact*Omega*( InterpStp( Omega, InitInp%HdroFreq(:), &
InitInp%HdroAddMs(: ,J,K), LastInd, InitInp%NInpFreq ) &
@@ -243,8 +244,8 @@ SUBROUTINE Conv_Rdtn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, InitOut, E
RETURN
END IF
- DO J = 1,6*p%NBody ! Loop through all rows of RdtnKrnl
- DO K = 1,6*p%NBody ! Loop through all columns of RdtnKrnl above and including the diagonal
+ DO J = 1,p%NDOF ! Loop through all rows of RdtnKrnl
+ DO K = 1,p%NDOF ! Loop through all columns of RdtnKrnl above and including the diagonal
CALL ApplySINT( p%RdtnKrnl(J,K,:), FFT_Data, ErrStat )
IF ( ErrStat /= ErrID_None ) RETURN
END DO ! K - All columns of RdtnKrnl above and including the diagonal
@@ -290,8 +291,8 @@ SUBROUTINE Conv_Rdtn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, InitOut, E
! transform of the wave radiation kernel:
!Indx = 0
- DO J = 1,6*p%NBody ! Loop through all rows of RdtnKrnl
- DO K = 1,6*p%NBody ! Loop through all columns of RdtnKrnl above and including the diagonal
+ DO J = 1,p%NDOF ! Loop through all rows of RdtnKrnl
+ DO K = 1,p%NDOF ! Loop through all columns of RdtnKrnl above and including the diagonal
!Indx = Indx + 1
p%RdtnKrnl(J,K,I) = Krnl_Fact*InterpStp ( Omega, InitInp%HdroFreq(:), InitInp%HdroDmpng(:,J,K), LastInd, InitInp%NInpFreq )
END DO ! K - All columns of RdtnKrnl above and including the diagonal
@@ -312,8 +313,8 @@ SUBROUTINE Conv_Rdtn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, InitOut, E
RETURN
END IF
- DO J = 1,6*p%NBody ! Loop through all rows of RdtnKrnl
- DO K = 1,6*p%NBody ! Loop through all columns of RdtnKrnl above and including the diagonal
+ DO J = 1,p%NDOF ! Loop through all rows of RdtnKrnl
+ DO K = 1,p%NDOF ! Loop through all columns of RdtnKrnl above and including the diagonal
CALL ApplyCOST( p%RdtnKrnl(J,K,:), FFT_Data, ErrStat )
IF ( ErrStat /= ErrID_None ) THEN
ErrMsg = 'Error applying Cosine Transform'
@@ -512,7 +513,7 @@ SUBROUTINE Conv_Rdtn_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat
MaxInd = MIN(p%NStepRdtn-1,OtherState%IndRdtn) ! Note: xd%IndRdtn index is from the previous time-step since this state was for the previous time-step
- call AllocAry(F_RdtnDT, 6*p%NBody, 1, 'F_RdtnDT', ErrStat2, ErrMsg2)
+ call AllocAry(F_RdtnDT, p%NDOF, 1, 'F_RdtnDT', ErrStat2, ErrMsg2)
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
if (ErrStat >= AbortErrLev) return
@@ -536,8 +537,8 @@ SUBROUTINE Conv_Rdtn_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat
! Loop through all wave radiation damping forces and moments
! F_RdtnDT = 0.0
- ! DO I = 1, 6*p%NBody
- ! DO J = 1,6*p%NBody ! Loop through all platform DOFs
+ ! DO I = 1,p%NDOF
+ ! DO J = 1,p%NDOF ! Loop through all platform DOFs
! ! Contribution from the first and last time steps are halved to make the integration 2nd-order accurate
! F_RdtnDT(I) = F_RdtnDT(I) - 0.5_SiKi * p%RdtnKrnl(MaxInd,I,J)*xd%XDHistory(0,J) &
! - 0.5_SiKi * p%RdtnKrnl(0,I,J)*xd%XDHistory(MaxInd,J)
@@ -643,18 +644,18 @@ SUBROUTINE Conv_Rdtn_UpdateDiscState( Time, n, u, p, x, xd, z, OtherState, m, Er
! When IndRdtn > LastIndRdtn, IndRdtn will be greater than LastIndRdtn + 1 if DT > RdtnDT.
IF ( OtherState%IndRdtn < (p%NStepRdtn) ) THEN
- DO J = 1,6*p%NBody ! Loop through all platform DOFs
+ DO J = 1,p%NDOF ! Loop through all platform DOFs
xd%XDHistory(J,OtherState%IndRdtn) = u%Velocity(J) ! XDHistory was allocated as a zero-based array!
END DO ! J - All platform DOFs
ELSE
! Shift the stored history by one index
DO K = 0,p%NStepRdtn-2
- DO J = 1,6*p%NBody ! Loop through all DOFs
+ DO J = 1,p%NDOF ! Loop through all DOFs
xd%XDHistory(J,K) = xd%XDHistory(J,K+1)
END DO
END DO
- DO J = 1,6*p%NBody ! Loop through all platform DOFs
+ DO J = 1,p%NDOF ! Loop through all platform DOFs
xd%XDHistory(J,p%NStepRdtn-1) = u%Velocity(J) ! Set the last array element to the current velocity
END DO ! J - All platform DOFs
END IF
diff --git a/modules/hydrodyn/src/Conv_Radiation.txt b/modules/hydrodyn/src/Conv_Radiation.txt
index 9836df2acf..3ec357e44b 100644
--- a/modules/hydrodyn/src/Conv_Radiation.txt
+++ b/modules/hydrodyn/src/Conv_Radiation.txt
@@ -21,6 +21,7 @@ include Registry_NWTC_Library.txt
typedef Conv_Radiation/Conv_Rdtn InitInputType DbKi RdtnDT - - - "" -
typedef ^ ^ CHARACTER(80) RdtnDTChr
typedef ^ ^ INTEGER NBody - - - "[>=1; only used when PotMod=1. If NBodyMod=1, the WAMIT data contains a vector of size 6*NBody x 1 and matrices of size 6*NBody x 6*NBody; if NBodyMod>1, there are NBody sets of WAMIT data each with a vector of size 6 x 1 and matrices of size 6 x 6]" -
+typedef ^ ^ INTEGER NDOF - - - "Total number of degrees of freedom for all bodies including AddDOF" -
typedef ^ ^ ReKi HighFreq - - - "" -
typedef ^ ^ CHARACTER(1024) WAMITFile - - - "" -
typedef ^ ^ SiKi HdroAddMs {:}{:}{:} - - "" -
@@ -68,6 +69,7 @@ typedef ^ MiscVarType INTEGER
typedef ^ ParameterType DbKi DT - - - "Time step for continuous state integration & discrete state update" seconds
typedef ^ ^ DbKi RdtnDT - - - "" -
typedef ^ ^ INTEGER NBody - - - "[>=1; only used when PotMod=1. If NBodyMod=1, the WAMIT data contains a vector of size 6*NBody x 1 and matrices of size 6*NBody x 6*NBody; if NBodyMod>1, there are NBody sets of WAMIT data each with a vector of size 6 x 1 and matrices of size 6 x 6]" -
+typedef ^ ^ INTEGER NDOF - - - "Total number of degrees of freedom for all bodies including AddDOF" -
typedef ^ ^ SiKi RdtnKrnl {:}{:}{:} - - "" -
typedef ^ ^ INTEGER NStepRdtn - - - "" -
typedef ^ ^ INTEGER NStepRdtn1 - - - "" -
diff --git a/modules/hydrodyn/src/Conv_Radiation_Types.f90 b/modules/hydrodyn/src/Conv_Radiation_Types.f90
index 1cc3ec50bd..dd2c0902a2 100644
--- a/modules/hydrodyn/src/Conv_Radiation_Types.f90
+++ b/modules/hydrodyn/src/Conv_Radiation_Types.f90
@@ -38,6 +38,7 @@ MODULE Conv_Radiation_Types
REAL(DbKi) :: RdtnDT = 0.0_R8Ki !< [-]
CHARACTER(80) :: RdtnDTChr
INTEGER(IntKi) :: NBody = 0_IntKi !< [>=1; only used when PotMod=1. If NBodyMod=1, the WAMIT data contains a vector of size 6*NBody x 1 and matrices of size 6*NBody x 6*NBody; if NBodyMod>1, there are NBody sets of WAMIT data each with a vector of size 6 x 1 and matrices of size 6 x 6] [-]
+ INTEGER(IntKi) :: NDOF = 0_IntKi !< Total number of degrees of freedom for all bodies including AddDOF [-]
REAL(ReKi) :: HighFreq = 0.0_ReKi !< [-]
CHARACTER(1024) :: WAMITFile !< [-]
REAL(SiKi) , DIMENSION(:,:,:), ALLOCATABLE :: HdroAddMs !< [-]
@@ -83,6 +84,7 @@ MODULE Conv_Radiation_Types
REAL(DbKi) :: DT = 0.0_R8Ki !< Time step for continuous state integration & discrete state update [seconds]
REAL(DbKi) :: RdtnDT = 0.0_R8Ki !< [-]
INTEGER(IntKi) :: NBody = 0_IntKi !< [>=1; only used when PotMod=1. If NBodyMod=1, the WAMIT data contains a vector of size 6*NBody x 1 and matrices of size 6*NBody x 6*NBody; if NBodyMod>1, there are NBody sets of WAMIT data each with a vector of size 6 x 1 and matrices of size 6 x 6] [-]
+ INTEGER(IntKi) :: NDOF = 0_IntKi !< Total number of degrees of freedom for all bodies including AddDOF [-]
REAL(SiKi) , DIMENSION(:,:,:), ALLOCATABLE :: RdtnKrnl !< [-]
INTEGER(IntKi) :: NStepRdtn = 0_IntKi !< [-]
INTEGER(IntKi) :: NStepRdtn1 = 0_IntKi !< [-]
@@ -118,6 +120,7 @@ subroutine Conv_Rdtn_CopyInitInput(SrcInitInputData, DstInitInputData, CtrlCode,
DstInitInputData%RdtnDT = SrcInitInputData%RdtnDT
DstInitInputData%RdtnDTChr = SrcInitInputData%RdtnDTChr
DstInitInputData%NBody = SrcInitInputData%NBody
+ DstInitInputData%NDOF = SrcInitInputData%NDOF
DstInitInputData%HighFreq = SrcInitInputData%HighFreq
DstInitInputData%WAMITFile = SrcInitInputData%WAMITFile
if (allocated(SrcInitInputData%HdroAddMs)) then
@@ -186,6 +189,7 @@ subroutine Conv_Rdtn_PackInitInput(RF, Indata)
call RegPack(RF, InData%RdtnDT)
call RegPack(RF, InData%RdtnDTChr)
call RegPack(RF, InData%NBody)
+ call RegPack(RF, InData%NDOF)
call RegPack(RF, InData%HighFreq)
call RegPack(RF, InData%WAMITFile)
call RegPackAlloc(RF, InData%HdroAddMs)
@@ -207,6 +211,7 @@ subroutine Conv_Rdtn_UnPackInitInput(RF, OutData)
call RegUnpack(RF, OutData%RdtnDT); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%RdtnDTChr); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%NBody); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%NDOF); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%HighFreq); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%WAMITFile); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%HdroAddMs); if (RegCheckErr(RF, RoutineName)) return
@@ -480,6 +485,7 @@ subroutine Conv_Rdtn_CopyParam(SrcParamData, DstParamData, CtrlCode, ErrStat, Er
DstParamData%DT = SrcParamData%DT
DstParamData%RdtnDT = SrcParamData%RdtnDT
DstParamData%NBody = SrcParamData%NBody
+ DstParamData%NDOF = SrcParamData%NDOF
if (allocated(SrcParamData%RdtnKrnl)) then
LB(1:3) = lbound(SrcParamData%RdtnKrnl)
UB(1:3) = ubound(SrcParamData%RdtnKrnl)
@@ -516,6 +522,7 @@ subroutine Conv_Rdtn_PackParam(RF, Indata)
call RegPack(RF, InData%DT)
call RegPack(RF, InData%RdtnDT)
call RegPack(RF, InData%NBody)
+ call RegPack(RF, InData%NDOF)
call RegPackAlloc(RF, InData%RdtnKrnl)
call RegPack(RF, InData%NStepRdtn)
call RegPack(RF, InData%NStepRdtn1)
@@ -533,6 +540,7 @@ subroutine Conv_Rdtn_UnPackParam(RF, OutData)
call RegUnpack(RF, OutData%DT); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%RdtnDT); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%NBody); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%NDOF); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%RdtnKrnl); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%NStepRdtn); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%NStepRdtn1); if (RegCheckErr(RF, RoutineName)) return
diff --git a/modules/hydrodyn/src/HydroDyn.f90 b/modules/hydrodyn/src/HydroDyn.f90
index d1ec250277..a8630a4fbe 100644
--- a/modules/hydrodyn/src/HydroDyn.f90
+++ b/modules/hydrodyn/src/HydroDyn.f90
@@ -110,10 +110,7 @@ SUBROUTINE HydroDyn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, I
CHARACTER(1024) :: SummaryName ! name of the HydroDyn summary file
TYPE(HydroDyn_InputFile) :: InputFileData !< Data from input file
TYPE(FileInfoType) :: InFileInfo !< The derived type for holding the full input file for parsing -- we may pass this in the future
-! LOGICAL :: hasWAMITOuts ! Are there any WAMIT-related outputs
-! LOGICAL :: hasMorisonOuts ! Are there any Morison-related outputs
-! INTEGER :: numHydroOuts ! total number of WAMIT and Morison outputs
- INTEGER :: I, J, k, iBody ! Generic counters
+ INTEGER :: I, J, k, iBody, jBody, iWAMIT ! Generic counters
! These are dummy variables to satisfy the framework, but are not used
@@ -295,8 +292,6 @@ SUBROUTINE HydroDyn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, I
InputFileData%WAMIT%PlatformPos = InitInp%PlatformPos ! Initial platform/HD origin position
p%NBody = InputFileData%NBody
p%NBodyMod = InputFileData%NBodyMod
- call AllocAry( m%F_PtfmAdd, 6*InputFileData%NBody, "m%F_PtfmAdd", ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
- call AllocAry( m%F_Waves , 6*InputFileData%NBody, "m%F_Waves" , ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
! Determine how many WAMIT modules we need based on NBody and NBodyMod
if (p%NBodyMod == 1) then
@@ -310,6 +305,7 @@ SUBROUTINE HydroDyn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, I
call AllocAry( InputFileData%WAMIT%PtfmRefztRot, InputFileData%NBody, "PtfmRefztRot", ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
call AllocAry( InputFileData%WAMIT%PtfmCOBxt , InputFileData%NBody, "PtfmCOBxt" , ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
call AllocAry( InputFileData%WAMIT%PtfmCOByt , InputFileData%NBody, "PtfmCOByt" , ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
+ call AllocAry( InputFileData%WAMIT%NAddDOF , InputFileData%NBody, "NAddDOF" , ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
allocate( p%WAMIT( 1), stat = ErrStat2 ); if (ErrStat2 /=0) call SetErrStat( ErrID_Fatal, 'Failed to allocate array p%WAMIT.', ErrStat, ErrMsg, RoutineName )
allocate( x%WAMIT( 1), stat = ErrStat2 ); if (ErrStat2 /=0) call SetErrStat( ErrID_Fatal, 'Failed to allocate array x%WAMIT.', ErrStat, ErrMsg, RoutineName )
allocate( xd%WAMIT( 1), stat = ErrStat2 ); if (ErrStat2 /=0) call SetErrStat( ErrID_Fatal, 'Failed to allocate array xd%WAMIT.', ErrStat, ErrMsg, RoutineName )
@@ -326,6 +322,7 @@ SUBROUTINE HydroDyn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, I
InputFileData%WAMIT%PtfmRefztRot = InputFileData%PtfmRefztRot
InputFileData%WAMIT%PtfmCOBxt = InputFileData%PtfmCOBxt
InputFileData%WAMIT%PtfmCOByt = InputFileData%PtfmCOByt
+ InputFileData%WAMIT%NAddDOF = InputFileData%NAddDOF
else
InputFileData%WAMIT%NBody = 1 ! Each WAMIT object will only contain one of the NBody WAMIT bodies
@@ -337,6 +334,7 @@ SUBROUTINE HydroDyn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, I
call AllocAry( InputFileData%WAMIT%PtfmRefztRot, 1, "PtfmRefztRot", ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
call AllocAry( InputFileData%WAMIT%PtfmCOBxt , 1, "PtfmCOBxt" , ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
call AllocAry( InputFileData%WAMIT%PtfmCOByt , 1, "PtfmCOByt" , ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
+ call AllocAry( InputFileData%WAMIT%NAddDOF , 1, "NAddDOF" , ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
allocate( p%WAMIT( InputFileData%NBody), stat = ErrStat2 ); if (ErrStat2 /=0) call SetErrStat( ErrID_Fatal, 'Failed to allocate array p%WAMIT.', ErrStat, ErrMsg, RoutineName )
allocate( x%WAMIT( InputFileData%NBody), stat = ErrStat2 ); if (ErrStat2 /=0) call SetErrStat( ErrID_Fatal, 'Failed to allocate array x%WAMIT.', ErrStat, ErrMsg, RoutineName )
allocate( xd%WAMIT( InputFileData%NBody), stat = ErrStat2 ); if (ErrStat2 /=0) call SetErrStat( ErrID_Fatal, 'Failed to allocate array xd%WAMIT.', ErrStat, ErrMsg, RoutineName )
@@ -352,6 +350,7 @@ SUBROUTINE HydroDyn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, I
InputFileData%WAMIT%PtfmRefztRot(1) = InputFileData%PtfmRefztRot(1)
InputFileData%WAMIT%PtfmCOBxt (1) = InputFileData%PtfmCOBxt (1)
InputFileData%WAMIT%PtfmCOByt (1) = InputFileData%PtfmCOByt (1)
+ InputFileData%WAMIT%NAddDOF (1) = InputFileData%NAddDOF (1)
end if
@@ -360,7 +359,6 @@ SUBROUTINE HydroDyn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, I
return
end if
-
CALL WAMIT_Init(InputFileData%WAMIT, m%u_WAMIT(1), p%WAMIT(1), x%WAMIT(1), xd%WAMIT(1), z%WAMIT, OtherState%WAMIT(1), &
y%WAMIT(1), m%WAMIT(1), Interval, ErrStat2, ErrMsg2 )
CALL SetErrStat(ErrStat2,ErrMsg2,ErrStat,ErrMsg,RoutineName)
@@ -370,7 +368,7 @@ SUBROUTINE HydroDyn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, I
END IF
- ! For NBodyMod > 1 and NBody > 1, set the body info and init the WAMIT body
+ ! For NBodyMod > 1 and NBody > 1, set the body info and init the WAMIT body
do i = 2, p%nWAMITObj
!-----------------------------------------
! Initialize the WAMIT Calculations
@@ -384,6 +382,7 @@ SUBROUTINE HydroDyn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, I
InputFileData%WAMIT%PtfmRefztRot(1) = InputFileData%PtfmRefztRot(i)
InputFileData%WAMIT%PtfmCOBxt (1) = InputFileData%PtfmCOBxt (i)
InputFileData%WAMIT%PtfmCOByt (1) = InputFileData%PtfmCOByt (i)
+ InputFileData%WAMIT%NAddDOF (1) = InputFileData%NAddDOF (i)
CALL WAMIT_Init(InputFileData%WAMIT, m%u_WAMIT(i), p%WAMIT(i), x%WAMIT(i), xd%WAMIT(i), z%WAMIT, OtherState%WAMIT(i), &
y%WAMIT(i), m%WAMIT(i), Interval, ErrStat2, ErrMsg2 )
@@ -393,6 +392,28 @@ SUBROUTINE HydroDyn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, I
RETURN
END IF
end do
+
+ ! Initialize parameters and input/output arrays associated with generalized DOF
+ call AllocAry( p%NAddDOF , p%NBody, 'p%NAddDOF' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call AllocAry( p%BDOFStrt, p%NBody, 'p%BDOFStrt', ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ p%NAddDOF = InputFileData%WAMIT%NAddDOF
+ p%NDOF = 0_IntKi
+ do iBody = 1, p%NBody
+ p%BDOFStrt(iBody) = p%NDOF + 1_IntKi
+ p%NDOF = p%NDOF + 6_IntKi + p%NAddDOF(iBody)
+ end do
+ p%HasAddDOF = ( p%NDOF > 6*p%NBody )
+
+ if (p%HasAddDOF) then
+ call AllocAry( u%qAddDOF , p%NDOF-6*p%NBody, "u%qAddDOF" , ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
+ call AllocAry( u%qAddDOFDot , p%NDOF-6*p%NBody, "u%qAddDOFDot" , ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
+ call AllocAry( u%qAddDOFDotDot, p%NDOF-6*p%NBody, "u%qAddDOFDotDot", ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
+ call AllocAry( y%FAddDOF , p%NDOF-6*p%NBody, "y%FAddDOF" , ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
+ end if
+
+ ! Initialize misc arrays for output files
+ call AllocAry( m%F_PtfmAdd, p%NDOF, "m%F_PtfmAdd", ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
+ call AllocAry( m%F_Waves , p%NDOF, "m%F_Waves" , ErrStat2, ErrMsg2 ); call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
! Generate Summary file information for WAMIT module
! Compute the load contribution from hydrostatics:
@@ -578,77 +599,71 @@ SUBROUTINE HydroDyn_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, I
!===============================================
p%PotMod = InputFileData%Potmod
IF ( InputFileData%UnSum > 0 ) THEN
-
-
+
IF ( InputFileData%PotMod == 1 .AND. InputFileData%WAMIT%RdtnMod == 1) THEN
! Write the header for this section: Note: When NBodyMod = 1 the kernel is now 6*NBody by 6*Nbody in size,
! and we have NBody 6 by 6 kernels for NBodyMod=2 or 3
- if (p%NBodyMod == 1) then
+ ! if (p%NBodyMod == 1) then
! NBodyMod=1 kernel printout which is 6*NBody x 6*NBody long
- WRITE( InputFileData%UnSum, '(//)' )
- WRITE( InputFileData%UnSum, '(A)' ) 'Radiation memory effect kernel'
- WRITE( InputFileData%UnSum, '(//)' )
-
+ WRITE( InputFileData%UnSum, '(//)' )
+ WRITE( InputFileData%UnSum, '(A)' ) 'Radiation memory effect kernel'
+ WRITE( InputFileData%UnSum, '(//)' )
+
+ do iWAMIT = 1,p%nWAMITObj
WRITE( InputFileData%UnSum, '(1X,A10,2X,A10)',ADVANCE='no' ) ' n ' , ' t '
- do i = 1,6*p%NBody
- do j = 1,6*p%NBody
- WRITE( InputFileData%UnSum, '(2X,A16)',ADVANCE='no' ) 'K'//trim(num2lstr(i))//trim(num2lstr(j))
+ do i = 1,p%WAMIT(iWAMIT)%NDOF
+ do j = 1,p%WAMIT(iWAMIT)%NDOF
+ WRITE( InputFileData%UnSum, '(2X,A16)',ADVANCE='no' ) 'K('//trim(num2lstr(i))//','//trim(num2lstr(j))//')'
end do
end do
write(InputFileData%UnSum,'()') ! end of line character
-
-
- WRITE( InputFileData%UnSum, '(1X,A10,2X,A10)',ADVANCE='no' ) ' (-) ' , ' (s) '
- do i = 1,6*p%NBody
- do j = 1,6*p%NBody
- if ( mod(i-1,6)+1 < 4 ) then
- if ( mod(j-1,6)+1 < 4 ) then
- WRITE( InputFileData%UnSum, '(2X,A16)',ADVANCE='no' ) ' (kg/s^2) '
- else
+
+ WRITE( InputFileData%UnSum, '(1X,A10,2X,A10)',ADVANCE='no' ) ' (-) ' , ' (s) '
+ do i = 1,p%WAMIT(iWAMIT)%NDOF
+ do iBody = 1,p%WAMIT(iWAMIT)%NBody-1_IntKi
+ if ( p%WAMIT(iWAMIT)%BDOFStrt(iBody+1_IntKi)>i ) exit
+ end do
+ if ( p%WAMIT(iWAMIT)%BDOFStrt(p%WAMIT(iWAMIT)%NBody)<=i ) iBody = p%WAMIT(iWAMIT)%NBody
+ do j = 1,p%WAMIT(iWAMIT)%NDOF
+ do jBody = 1,p%WAMIT(iWAMIT)%NBody-1_IntKi
+ if ( p%WAMIT(iWAMIT)%BDOFStrt(jBody+1_IntKi)>j ) exit
+ end do
+ if ( p%WAMIT(iWAMIT)%BDOFStrt(p%WAMIT(iWAMIT)%NBody)<=j ) jBody = p%WAMIT(iWAMIT)%NBody
+ if ( i-p%WAMIT(iWAMIT)%BDOFStrt(iBody) < 3_IntKi ) then
+ if ( j-p%WAMIT(iWAMIT)%BDOFStrt(jBody) < 3_IntKi ) then
+ WRITE( InputFileData%UnSum, '(2X,A16)',ADVANCE='no' ) ' (kg/s^2) '
+ else if ( j-p%WAMIT(iWAMIT)%BDOFStrt(jBody) < 6_IntKi ) then
WRITE( InputFileData%UnSum, '(2X,A16)',ADVANCE='no' ) ' (kgm/s^2) '
+ else
+ WRITE( InputFileData%UnSum, '(2X,A16)',ADVANCE='no' ) ' (-) '
end if
- else
- if ( mod(j-1,6)+1 < 4 ) then
+ else if ( i-p%WAMIT(iWAMIT)%BDOFStrt(iBody) < 6_IntKi ) then
+ if ( j-p%WAMIT(iWAMIT)%BDOFStrt(jBody) < 3_IntKi ) then
WRITE( InputFileData%UnSum, '(2X,A16)',ADVANCE='no' ) ' (kgm/s^2) '
- else
+ else if ( j-p%WAMIT(iWAMIT)%BDOFStrt(jBody) < 6_IntKi ) then
WRITE( InputFileData%UnSum, '(2X,A16)',ADVANCE='no' ) '(kgm^2/s^2)'
- end if
+ else
+ WRITE( InputFileData%UnSum, '(2X,A16)',ADVANCE='no' ) ' (-) '
+ end if
+ else
+ WRITE( InputFileData%UnSum, '(2X,A16)',ADVANCE='no' ) ' (-) '
end if
end do
end do
write(InputFileData%UnSum,'()') ! end of line character
-
- do k= 0,p%WAMIT(1)%Conv_Rdtn%NStepRdtn-1
- WRITE( InputFileData%UnSum, '(1X,I10,2X,E12.5)',ADVANCE='no' ) K, K*p%WAMIT(1)%Conv_Rdtn%RdtnDT
- do i = 1,6*p%NBody
- do j = 1,6*p%NBody
- WRITE( InputFileData%UnSum, '(2X,ES16.5)',ADVANCE='no' ) p%WAMIT(1)%Conv_Rdtn%RdtnKrnl(i,j,k)
+
+ do k= 0,p%WAMIT(iWAMIT)%Conv_Rdtn%NStepRdtn-1
+ WRITE( InputFileData%UnSum, '(1X,I10,2X,E12.5)',ADVANCE='no' ) K, K*p%WAMIT(iWAMIT)%Conv_Rdtn%RdtnDT
+ do i = 1,p%WAMIT(iWAMIT)%NDOF
+ do j = 1,p%WAMIT(iWAMIT)%NDOF
+ WRITE( InputFileData%UnSum, '(2X,ES16.5)',ADVANCE='no' ) p%WAMIT(iWAMIT)%Conv_Rdtn%RdtnKrnl(i,j,k)
end do
end do
write(InputFileData%UnSum,'()') ! end of line character
end do
-
- else
- do j = 1,p%nWAMITObj
- WRITE( InputFileData%UnSum, '(//)' )
- WRITE( InputFileData%UnSum, '(A)' ) 'Radiation memory effect kernel'
- WRITE( InputFileData%UnSum, '(//)' )
- WRITE( InputFileData%UnSum, '(1X,A10,2X,A10,21(2X,A16))' ) ' n ' , ' t ', ' K11 ', ' K12 ', ' K13 ', ' K14 ', ' K15 ', ' K16 ', ' K22 ', ' K23 ', ' K24 ', ' K25 ', ' K26 ', ' K33 ', ' K34 ', ' K35 ', 'K36 ', ' K44 ', ' K45 ', ' K46 ', ' K55 ', ' K56 ', ' K66 '
- WRITE( InputFileData%UnSum, '(1X,A10,2X,A10,21(2X,A16))' ) ' (-) ' , ' (s) ', ' (kg/s^2) ', ' (kg/s^2) ', ' (kg/s^2) ', ' (kgm/s^2) ', ' (kgm/s^2) ', ' (kgm/s^2) ', ' (kg/s^2) ', ' (kg/s^2) ', ' (kgm/s^2) ', ' (kgm/s^2) ', ' (kgm/s^2) ', ' (kg/s^2) ', ' (kgm/s^2) ', ' (kgm/s^2) ', ' (kgm/s^2) ', '(kgm^2/s^2)', '(kgm^2/s^2)', '(kgm^2/s^2)', '(kgm^2/s^2)', '(kgm^2/s^2)', '(kgm^2/s^2)'
-
- ! Write the data
- DO I = 0,p%WAMIT(j)%Conv_Rdtn%NStepRdtn-1
- WRITE( InputFileData%UnSum, '(1X,I10,2X,E12.5,21(2X,ES16.5))' ) I, I*p%WAMIT(j)%Conv_Rdtn%RdtnDT, &
- p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(1,1,I), p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(1,2,I), p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(1,3,I), &
- p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(1,4,I), p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(1,5,I), p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(1,6,I), &
- p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(2,2,I), p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(2,3,I), p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(2,4,I), &
- p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(2,5,I), p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(2,6,I), p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(3,3,I), &
- p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(3,4,I), p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(3,5,I), p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(3,6,I), &
- p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(4,4,I), p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(4,5,I), p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(4,6,I), &
- p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(5,5,I), p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(5,6,I), p%WAMIT(j)%Conv_Rdtn%RdtnKrnl(6,6,I)
- END DO
- end do
- end if
+
+ end do
+
END IF
END IF
@@ -1021,6 +1036,29 @@ subroutine HydroDyn_InitVars(Vars, u, p, x, y, m, InitOut, InputFileData, Linear
call MV_AddMeshVar(Vars%u, "Platform-RefPt", MotionFields, DatLoc(HydroDyn_u_PRPMesh), u%PRPMesh, &
Perturbs=Perturbs)
+ if ( p%HasAddDOF ) then
+ call MV_AddVar(Vars%u, "qAddDOF", FieldScalar, &
+ DL=DatLoc(HydroDyn_u_qAddDOF), &
+ Num=size(u%qAddDOF), &
+ Flags = VF_Linearize, &
+ Perturb = PerturbRot, &
+ LinNames=[('Generalized DOF '//trim(num2lstr(i))//' displacement, -', i=1,size(u%qAddDOF))])
+
+ call MV_AddVar(Vars%u, "qAddDOFDot", FieldScalar, &
+ DL=DatLoc(HydroDyn_u_qAddDOFDot), &
+ Num=size(u%qAddDOFDot), &
+ Flags = VF_Linearize, &
+ Perturb = PerturbRot, &
+ LinNames=[('Generalized DOF '//trim(num2lstr(i))//' velocity, -/s', i=1,size(u%qAddDOFDot))])
+
+ call MV_AddVar(Vars%u, "qAddDOFDotDot", FieldScalar, &
+ DL=DatLoc(HydroDyn_u_qAddDOFDotDot), &
+ Num=size(u%qAddDOFDotDot), &
+ Flags = VF_Linearize, &
+ Perturb = PerturbRot, &
+ LinNames=[('Generalized DOF '//trim(num2lstr(i))//' acceleration, -/s^2', i=1,size(u%qAddDOFDotDot))])
+ end if
+
call MV_AddVar(Vars%u, "WaveElev0", FieldScalar, DatLoc(HydroDyn_u_WaveElev0), &
Flags=VF_ExtLin + VF_Linearize, &
LinNames=['Extended input: wave elevation at platform ref point, m'])
@@ -1045,6 +1083,13 @@ subroutine HydroDyn_InitVars(Vars, u, p, x, y, m, InitOut, InputFileData, Linear
call MV_AddMeshVar(Vars%y, "WAMITLoads", LoadFields, DatLoc(HydroDyn_y_WAMITMesh), y%WAMITMesh)
+ if ( p%HasAddDOF ) then
+ call MV_AddVar(Vars%y, "FAddDOF", FieldScalar, &
+ DL=DatLoc(HydroDyn_y_FAddDOF), &
+ Num=size(y%FAddDOF), &
+ LinNames=[('Generalized DOF '//trim(num2lstr(i))//' force, -', i=1,size(y%FAddDOF))])
+ end if
+
call MV_AddVar(Vars%y, "WriteOutput", FieldScalar, DatLoc(HydroDyn_y_WriteOutput), &
Flags=VF_WriteOut, &
Num=p%NumTotalOuts, &
@@ -1097,6 +1142,7 @@ SUBROUTINE HydroDyn_UpdateStates( t, n, Inputs, InputTimes, p, x, xd, z, OtherSt
! Local variables
INTEGER :: I, iWAMIT ! Generic loop counters
+ INTEGER :: AddDOFCntr
INTEGER(IntKi) :: ErrStat2 ! Error status of the operation (secondary error)
CHARACTER(ErrMsgLen) :: ErrMsg2 ! Error message if ErrStat2 /= ErrID_None
INTEGER :: nTime ! number of inputs
@@ -1190,73 +1236,103 @@ SUBROUTINE HydroDyn_UpdateStates( t, n, Inputs, InputTimes, p, x, xd, z, OtherSt
IF ( p%PotMod == 0 ) THEN
RETURN
ELSEIF ( p%PotMod == 1 ) THEN
-
- ALLOCATE( Inputs_WAMIT(nTime), STAT = ErrStat2 )
- IF (ErrStat2 /=0) THEN
- CALL SetErrStat( ErrID_Fatal, 'Failed to allocate array Inputs_WAMIT.', ErrStat, ErrMsg, RoutineName )
- RETURN
- END IF
if ( p%NBodyMod == 1 .or. p%NBody == 1 ) then
+
+ ALLOCATE( Inputs_WAMIT(nTime), STAT = ErrStat2 )
+ IF (ErrStat2 /=0) THEN
+ CALL SetErrStat( ErrID_Fatal, 'Failed to allocate array Inputs_WAMIT.', ErrStat, ErrMsg, RoutineName )
+ RETURN
+ END IF
+
! For this NBodyMod or NBody=1, there is only one WAMIT object, so copy the necessary inputs and then call WAMIT_UpdateStates
do I=1,nTime
- ! Copy the inputs from the HD mesh into the WAMIT mesh
+ ! Copy the inputs from the HD mesh into the WAMIT mesh
call MeshCopy( Inputs(I)%WAMITMesh, Inputs_WAMIT(I)%Mesh, MESH_NEWCOPY, ErrStat2, ErrMsg2 )
call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
- ! Inputs_WAMIT(I)%PtfmRefY = Inputs(I)%PtfmRefY
Inputs_WAMIT(I)%PtfmRefY = xd%PtfmRefY(I)
+ if (p%HasAddDOF) then
+ call AllocAry( Inputs_WAMIT(I)%qAddDOF, p%NDOF-6*p%NBody, 'u%qAddDOF' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call AllocAry( Inputs_WAMIT(I)%qAddDOFDot, p%NDOF-6*p%NBody, 'u%qAddDOFDot' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call AllocAry( Inputs_WAMIT(I)%qAddDOFDotDot, p%NDOF-6*p%NBody, 'u%qAddDOFDotDot' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ Inputs_WAMIT(I)%qAddDOF = Inputs(I)%qAddDOF
+ Inputs_WAMIT(I)%qAddDOFDot = Inputs(I)%qAddDOFDot
+ Inputs_WAMIT(I)%qAddDOFDotDot = Inputs(I)%qAddDOFDotDot
+ end if
end do
-
- if (ErrStat < AbortErrLev) then ! if there was an error copying the input meshes, we'll skip this step and then cleanup the temporary input meshes
- ! Update the WAMIT module states
-
- call WAMIT_UpdateStates( t, n, Inputs_WAMIT, InputTimes, p%WAMIT(1), x%WAMIT(1), xd%WAMIT(1), z%WAMIT, OtherState%WAMIT(1), m%WAMIT(1), ErrStat2, ErrMsg2 )
- call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
+ if (ErrStat > AbortErrLev) return
+
+ ! Update the WAMIT module states
+ call WAMIT_UpdateStates( t, n, Inputs_WAMIT, InputTimes, p%WAMIT(1), x%WAMIT(1), xd%WAMIT(1), z%WAMIT, OtherState%WAMIT(1), m%WAMIT(1), ErrStat2, ErrMsg2 )
+ call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
+ if (ErrStat > AbortErrLev) return
+
+ ! deallocate temporary inputs
+ do I=1,nTime
+ call WAMIT_DestroyInput( Inputs_WAMIT(I), ErrStat2, ErrMsg2 )
+ call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
+ end do
+ deallocate(Inputs_WAMIT)
- end if
-
else
! We have multiple WAMIT objects
- ! Loop over number of inputs and copy them into an array of WAMIT inputs
+ ! Loop over number of inputs and copy them into an array of WAMIT inputs
+ AddDOFCntr = 0_IntKi
do iWAMIT = 1, p%nWAMITObj
-
+
+ ! We can't reuse Inputs_WAMIT for different WAMIT objects now because the size of qAddDOF, qAddDOFDot, and qAddDOFDotDot can be different
+ ALLOCATE( Inputs_WAMIT(nTime), STAT = ErrStat2 )
+ IF (ErrStat2 /=0) THEN
+ CALL SetErrStat( ErrID_Fatal, 'Failed to allocate array Inputs_WAMIT.', ErrStat, ErrMsg, RoutineName )
+ RETURN
+ END IF
+
do I=1,nTime
- ! We need to create to valid mesh data structures in our Inputs_WAMIT(I)%Mesh using the miscvar version as a template, but the actually data will be generated below
+ ! We need to create to valid mesh data structures in our Inputs_WAMIT(I)%Mesh using the miscvar version as a template, but the actually data will be generated below
call MeshCopy( m%u_WAMIT(iWAMIT)%Mesh, Inputs_WAMIT(I)%Mesh, MESH_NEWCOPY, ErrStat2, ErrMsg2 )
call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
- ! Inputs_WAMIT(I)%PtfmRefY = Inputs(I)%PtfmRefY
- Inputs_WAMIT(I)%PtfmRefY = xd%PtfmRefY(I)
+ if ( p%NAddDOF(iWAMIT)>0_IntKi ) then
+ call AllocAry( Inputs_WAMIT(I)%qAddDOF, p%NAddDOF(iWAMIT), 'u%qAddDOF' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call AllocAry( Inputs_WAMIT(I)%qAddDOFDot, p%NAddDOF(iWAMIT), 'u%qAddDOFDot' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call AllocAry( Inputs_WAMIT(I)%qAddDOFDotDot, p%NAddDOF(iWAMIT), 'u%qAddDOFDotDot' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ end if
end do
if (ErrStat > AbortErrLev) exit
do I=1,nTime
- ! We need to copy the iWAMIT-th node data from the Inputs(I)%WAMITMesh onto the 1st node of the Inputs_WAMIT(I)%Mesh
+ ! We need to copy the iWAMIT-th node data from the Inputs(I)%WAMITMesh onto the 1st node of the Inputs_WAMIT(I)%Mesh
+ Inputs_WAMIT(I)%PtfmRefY = xd%PtfmRefY(I)
Inputs_WAMIT(I)%Mesh%TranslationDisp(:,1) = Inputs(I)%WAMITMesh%TranslationDisp(:,iWAMIT)
Inputs_WAMIT(I)%Mesh%Orientation (:,:,1)= Inputs(I)%WAMITMesh%Orientation (:,:,iWAMIT)
Inputs_WAMIT(I)%Mesh%TranslationVel (:,1) = Inputs(I)%WAMITMesh%TranslationVel (:,iWAMIT)
Inputs_WAMIT(I)%Mesh%RotationVel (:,1) = Inputs(I)%WAMITMesh%RotationVel (:,iWAMIT)
Inputs_WAMIT(I)%Mesh%TranslationAcc (:,1) = Inputs(I)%WAMITMesh%TranslationAcc (:,iWAMIT)
- Inputs_WAMIT(I)%Mesh%RotationAcc (:,1) = Inputs(I)%WAMITMesh%RotationAcc (:,iWAMIT)
+ Inputs_WAMIT(I)%Mesh%RotationAcc (:,1) = Inputs(I)%WAMITMesh%RotationAcc (:,iWAMIT)
+ if (p%NAddDOF(iWAMIT)>0_IntKi) then
+ Inputs_WAMIT(I)%qAddDOF = Inputs(I)%qAddDOF (AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iWAMIT))
+ Inputs_WAMIT(I)%qAddDOFDot = Inputs(I)%qAddDOFDot (AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iWAMIT))
+ Inputs_WAMIT(I)%qAddDOFDotDot = Inputs(I)%qAddDOFDotDot(AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iWAMIT))
+ AddDOFCntr = AddDOFCntr + p%NAddDOF(iWAMIT)
+ end if
end do
! UpdateStates for the iWAMIT-th body
call WAMIT_UpdateStates( t, n, Inputs_WAMIT, InputTimes, p%WAMIT(iWAMIT), x%WAMIT(iWAMIT), xd%WAMIT(iWAMIT), z%WAMIT, OtherState%WAMIT(iWAMIT), m%WAMIT(iWAMIT), ErrStat2, ErrMsg2 )
call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
if (ErrStat > AbortErrLev) exit
+
+ ! deallocate temporary inputs
+ do I=1,nTime
+ call WAMIT_DestroyInput( Inputs_WAMIT(I), ErrStat2, ErrMsg2 )
+ call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
+ end do
+ deallocate(Inputs_WAMIT)
end do
end if
-
- ! deallocate temporary inputs
- do I=1,nTime
- call WAMIT_DestroyInput( Inputs_WAMIT(I), ErrStat2, ErrMsg2 )
- call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
- end do
-
- deallocate(Inputs_WAMIT)
#ifdef USE_FIT
ELSE IF ( p%PotMod == 2 ) THEN ! FIT
@@ -1359,9 +1435,9 @@ SUBROUTINE HydroDyn_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat,
TYPE(FIT_InputType) :: Inputs_FIT
#endif
- REAL(ReKi) :: q(6*p%NBody), qdot(6*p%NBody), qdotsq(6*p%NBody), qdotdot(6*p%NBody)
+ REAL(ReKi) :: q(p%NDOF), qdot(p%NDOF), qdotsq(p%NDOF), qdotdot(p%NDOF)
REAL(ReKi) :: rotdisp(3) ! small angle rotational displacements
- integer(IntKi) :: iBody, indxStart, indxEnd ! Counters
+ integer(IntKi) :: iBody, indxStart, indxEnd, AddDOFCntr ! Counters
REAL(ReKi), ALLOCATABLE :: RRg2b(:,:), RRb2g(:,:)
REAL(ReKi) :: PtfmRefY
REAL(R8Ki) :: PRPRotation(3)
@@ -1419,84 +1495,180 @@ SUBROUTINE HydroDyn_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat,
if ( p%PotMod == 1 ) then
- ! Transformation matrices between global and PRP frame
- ALLOCATE(RRb2g(6*p%NBody,6*p%NBody),STAT=ErrStat2); if (Failed0("RRb2g")) return;
- ALLOCATE(RRg2b(6*p%NBody,6*p%NBody),STAT=ErrStat2); if (Failed0("RRg2b")) return;
- RRg2b(:,:) = 0.0_ReKi
- do iBody = 1, p%NBody
- ! Determine the rotational angles from the direction-cosine matrix
- ! rotdisp = GetRotAngs ( u%PtfmRefY, u%WAMITMesh%Orientation(:,:,iBody), ErrStat2, ErrMsg2 )
- ! if (Failed()) return
- rotdisp = EulerExtractZYX(u%WAMITMesh%Orientation(:,:,iBody))
- indxStart = (iBody-1)*6+1
- indxEnd = indxStart+5
- q (indxStart:indxEnd) = reshape((/real(u%WAMITMesh%TranslationDisp(:,iBody),ReKi),rotdisp(:)/),(/6/))
- qdot (indxStart:indxEnd) = reshape((/u%WAMITMesh%TranslationVel(:,iBody),u%WAMITMesh%RotationVel(:,iBody)/),(/6/))
- qdotdot(indxStart:indxEnd) = reshape((/u%WAMITMesh%TranslationAcc(:,iBody),u%WAMITMesh%RotationAcc(:,iBody)/),(/6/))
- RRg2b(indxStart:(indxStart+2),indxStart:(indxStart+2)) = u%WAMITMesh%Orientation(:,:,iBody)
- RRg2b((indxEnd-2):indxEnd,(indxEnd-2):indxEnd) = u%WAMITMesh%Orientation(:,:,iBody)
- ! qdotsq is only used to compute the quadratic damping load, so convert to body frame here
- qdotsq (indxStart:indxEnd) = matmul(RRg2b(indxStart:indxEnd,indxStart:indxEnd),qdot(indxStart:indxEnd))
- qdotsq (indxStart:indxEnd) = abs( qdotsq (indxStart:indxEnd) ) * qdotsq (indxStart:indxEnd)
- end do
- RRb2g = transpose(RRg2b)
+ ! Compute the load contirbution from user-supplied added stiffness and damping
+ ! Convention: AddF0 and AddCLin are in the earth-fixed frame
+ ! AddBLin and AddBQuad are in the body-fixed frame
+ ! Generalized DOF do not have a frame of reference
if ( p%NBodyMod == 1 ) then
- ! Compute the load contirbution from user-supplied added stiffness and damping
- m%F_PtfmAdd = p%AddF0(:,1) - matmul(p%AddCLin(:,:,1), q) &
- - matmul( matmul(RRb2g,p%AddBLin(:,:,1) ), matmul(RRg2b,qdot) ) &
- - matmul( matmul(RRb2g,p%AddBQuad(:,:,1)), qdotsq) ! Note: qdotsq is already in body frame, see above
+
+ ! Transformation matrices between global and PRP frame
+ allocate(RRb2g(p%NDOF,p%NDOF),STAT=ErrStat2); if (Failed0("RRb2g")) return
+ allocate(RRg2b(p%NDOF,p%NDOF),STAT=ErrStat2); if (Failed0("RRg2b")) return
+ call Eye(RRg2b,ErrStat2,ErrMsg2); if (Failed()) return
+
+ AddDOFCntr = 0_IntKi
do iBody = 1, p%NBody
- indxStart = (iBody-1)*6+1
- indxEnd = indxStart+5
- ! Attach to the output point mesh
- y%WAMITMesh%Force (:,iBody) = m%F_PtfmAdd(indxStart:indxStart+2)
- y%WAMITMesh%Moment(:,iBody) = m%F_PtfmAdd(indxStart+3:indxEnd)
+
+ indxStart = p%BDOFStrt(iBody)
+ indxEnd = p%BDOFStrt(iBody)+5
+ RRg2b(indxStart:(indxStart+2),indxStart:(indxStart+2)) = u%WAMITMesh%Orientation(:,:,iBody)
+ RRg2b((indxEnd-2):indxEnd,(indxEnd-2):indxEnd) = u%WAMITMesh%Orientation(:,:,iBody)
+
+ ! Determine the rotational angles from the direction-cosine matrix
+ rotdisp = EulerExtractZYX(u%WAMITMesh%Orientation(:,:,iBody))
+ q (indxStart:indxEnd) = reshape((/real(u%WAMITMesh%TranslationDisp(:,iBody),ReKi),rotdisp(:)/),(/6/))
+ qdot (indxStart:indxEnd) = reshape((/u%WAMITMesh%TranslationVel(:,iBody),u%WAMITMesh%RotationVel(:,iBody)/),(/6/))
+ qdotdot(indxStart:indxEnd) = reshape((/u%WAMITMesh%TranslationAcc(:,iBody),u%WAMITMesh%RotationAcc(:,iBody)/),(/6/))
+
+ ! Populate generalized modes
+ if ( p%NAddDOF(iBody) > 0_IntKi ) then
+ indxStart = p%BDOFStrt(iBody)+6
+ indxEnd = p%BDOFStrt(iBody)+5+p%NAddDOF(iBody)
+ q (indxStart:indxEnd) = u%qAddDOF (AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iBody))
+ qdot (indxStart:indxEnd) = u%qAddDOFDot (AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iBody))
+ qdotdot(indxStart:indxEnd) = u%qAddDOFDotDot(AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iBody))
+ AddDOFCntr = AddDOFCntr + p%NAddDOF(iBody)
+ end if
+
+ ! qdotsq is only used to compute the quadratic damping load, so convert to body frame here
+ indxStart = p%BDOFStrt(iBody)
+ indxEnd = p%BDOFStrt(iBody)+5+p%NAddDOF(iBody)
+ qdotsq (indxStart:indxEnd) = matmul(RRg2b(indxStart:indxEnd,indxStart:indxEnd),qdot(indxStart:indxEnd))
+ qdotsq (indxStart:indxEnd) = abs( qdotsq (indxStart:indxEnd) ) * qdotsq (indxStart:indxEnd)
+
end do
+ RRb2g = transpose(RRg2b)
+
+ ! Compute forces due to AddF0, AddCLin, AddBLin, and AddBQuad
+ m%F_PtfmAdd = p%AddF0(:,1) - matmul(p%AddCLin(:,:,1), q) &
+ - matmul( matmul(RRb2g,p%AddBLin (:,:,1)), matmul(RRg2b,qdot) ) &
+ - matmul( matmul(RRb2g,p%AddBQuad(:,:,1)), qdotsq) ! Note: qdotsq is already in body frame, see above
+
+ ! Map to output
+ AddDOFCntr = 0_IntKi
+ do iBody = 1, p%NBody
+ indxStart = p%BDOFStrt(iBody)
+ indxEnd = p%BDOFStrt(iBody)+5+p%NAddDOF(iBody)
+
+ ! Attach rigid-body forcing to the output point mesh
+ y%WAMITMesh%Force (:,iBody) = m%F_PtfmAdd(indxStart :indxStart+2)
+ y%WAMITMesh%Moment(:,iBody) = m%F_PtfmAdd(indxStart+3:indxStart+5)
+
+ ! Save generalized DOF forcing to output array
+ if ( p%NAddDOF(iBody) > 0_IntKi ) then
+ y%FAddDOF(AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iBody)) = m%F_PtfmAdd(indxStart+6:indxEnd)
+ AddDOFCntr = AddDOFCntr + p%NAddDOF(iBody)
+ end if
+ end do
+
+ IF (ALLOCATED(RRb2g)) DEALLOCATE(RRb2g)
+ IF (ALLOCATED(RRg2b)) DEALLOCATE(RRg2b)
- else
+ else ! NBodyMod>1
+
+ AddDOFCntr = 0_IntKi
do iBody = 1, p%NBody
- indxStart = (iBody-1)*6+1
- indxEnd = indxStart+5
-
- m%F_PtfmAdd(indxStart:indxEnd) = p%AddF0(:,iBody) - matmul(p%AddCLin(:,:,iBody), q(indxStart:indxEnd)) &
- - matmul( matmul(RRb2g(indxStart:indxEnd,indxStart:indxEnd),p%AddBLin(:,:,iBody)), &
- matmul(RRg2b(indxStart:indxEnd,indxStart:indxEnd),qdot(indxStart:indxEnd)) ) &
- - matmul( matmul(RRb2g(indxStart:indxEnd,indxStart:indxEnd),p%AddBQuad(:,:,iBody)), qdotsq(indxStart:indxEnd))
-
- ! Attach to the output point mesh
- y%WAMITMesh%Force (:,iBody) = m%F_PtfmAdd(indxStart:indxStart+2)
- y%WAMITMesh%Moment(:,iBody) = m%F_PtfmAdd(indxStart+3:indxEnd)
+
+ ! Transformation matrices between global and PRP frame
+ allocate(RRb2g(6+p%NAddDOF(iBody),6+p%NAddDOF(iBody)),STAT=ErrStat2)
+ if (ErrStat2/=0) then
+ call SetErrStat( ErrID_Fatal, 'Failed to allocate matrix RRb2g.', ErrStat, ErrMsg, RoutineName )
+ return
+ end if
+ allocate(RRg2b(6+p%NAddDOF(iBody),6+p%NAddDOF(iBody)),STAT=ErrStat2)
+ if (ErrStat2/=0) then
+ call SetErrStat( ErrID_Fatal, 'Failed to allocate matrix RRg2b.', ErrStat, ErrMsg, RoutineName )
+ return
+ end if
+ call Eye(RRg2b,ErrStat2,ErrMsg2); if (Failed()) return
+ RRg2b(1:3,1:3) = u%WAMITMesh%Orientation(:,:,iBody)
+ RRg2b(4:6,4:6) = u%WAMITMesh%Orientation(:,:,iBody)
+ RRb2g = transpose(RRg2b)
+
+ ! Populate rigid-body modes
+ rotdisp = EulerExtractZYX(u%WAMITMesh%Orientation(:,:,iBody))
+ indxStart = p%BDOFStrt(iBody)
+ indxEnd = p%BDOFStrt(iBody)+5
+ q (indxStart:indxEnd) = reshape((/real(u%WAMITMesh%TranslationDisp(:,iBody),ReKi),rotdisp(:)/),(/6/))
+ qdot (indxStart:indxEnd) = reshape((/u%WAMITMesh%TranslationVel(:,iBody),u%WAMITMesh%RotationVel(:,iBody)/),(/6/))
+ qdotdot(indxStart:indxEnd) = reshape((/u%WAMITMesh%TranslationAcc(:,iBody),u%WAMITMesh%RotationAcc(:,iBody)/),(/6/))
+
+ ! Populate generalized modes
+ if ( p%NAddDOF(iBody) > 0_IntKi ) then
+ indxStart = p%BDOFStrt(iBody)+6
+ indxEnd = p%BDOFStrt(iBody)+5+p%NAddDOF(iBody)
+ q (indxStart:indxEnd) = u%qAddDOF (AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iBody))
+ qdot (indxStart:indxEnd) = u%qAddDOFDot (AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iBody))
+ qdotdot(indxStart:indxEnd) = u%qAddDOFDotDot(AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iBody))
+ ! AddDOFCntr is incremented below.
+ end if
+
+ ! Compute forces due to AddF0, AddCLin, AddBLin, and AddBQuad
+ indxStart = p%BDOFStrt(iBody)
+ indxEnd = p%BDOFStrt(iBody)+5+p%NAddDOF(iBody)
+
+ ! qdotsq is only used to compute the quadratic damping load, so convert to body frame here
+ qdotsq (indxStart:indxEnd) = matmul(RRg2b, qdot(indxStart:indxEnd))
+ qdotsq (indxStart:indxEnd) = abs( qdotsq(indxStart:indxEnd) ) * qdotsq (indxStart:indxEnd)
+
+ m%F_PtfmAdd(indxStart:indxEnd) = p%AddF0(:,iBody) &
+ - matmul(p%AddCLin(:,:,iBody), q(indxStart:indxEnd)) &
+ - matmul( matmul(RRb2g,p%AddBLin(:,:,iBody)), &
+ matmul(RRg2b,qdot(indxStart:indxEnd)) ) &
+ - matmul( matmul(RRb2g,p%AddBQuad(:,:,iBody)), &
+ qdotsq(indxStart:indxEnd) )
+
+ ! Attach rigid-body forcing to the output point mesh
+ y%WAMITMesh%Force (:,iBody) = m%F_PtfmAdd(indxStart :indxStart+2)
+ y%WAMITMesh%Moment(:,iBody) = m%F_PtfmAdd(indxStart+3:indxStart+5)
+
+ ! Save generalized DOF forcing to output array
+ if ( p%NAddDOF(iBody) > 0_IntKi ) then
+ y%FAddDOF(AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iBody)) = m%F_PtfmAdd(indxStart+6:indxEnd)
+ AddDOFCntr = AddDOFCntr + p%NAddDOF(iBody)
+ end if
+
+ IF (ALLOCATED(RRb2g)) DEALLOCATE(RRb2g)
+ IF (ALLOCATED(RRg2b)) DEALLOCATE(RRg2b)
+
end do
end if
m%F_Waves = 0.0_ReKi
- if (allocated(m%u_WAMIT)) then ! Check that we allocated u_WAMIT, otherwise there is an error checking the mesh
+ if (allocated(m%u_WAMIT)) then ! Check that we allocated u_WAMIT, otherwise there is an error checking the mesh
if ( m%u_WAMIT(1)%Mesh%Committed ) then ! Make sure we are using WAMIT / there is a valid mesh
if ( p%NBodyMod == 1 .or. p%NBody == 1 ) then
- ! Copy the inputs from the HD mesh into the WAMIT mesh
+ ! Copy the inputs from the HD mesh into the WAMIT mesh
call MeshCopy( u%WAMITMesh, m%u_WAMIT(1)%Mesh, MESH_UPDATECOPY, ErrStat2, ErrMsg2 )
if (Failed()) return
- ! m%u_WAMIT(1)%PtfmRefY = u%PtfmRefY
- m%u_WAMIT(1)%PtfmRefY = PtfmRefY
+ m%u_WAMIT(1)%PtfmRefY = PtfmRefY
+ if ( p%HasAddDOF ) then
+ m%u_WAMIT(1)%qAddDOF = u%qAddDOF
+ m%u_WAMIT(1)%qAddDOFDot = u%qAddDOFDot
+ m%u_WAMIT(1)%qAddDOFDotDot = u%qAddDOFDotDot
+ end if
call WAMIT_CalcOutput( Time, m%u_WAMIT(1), p%WAMIT(1), x%WAMIT(1), xd%WAMIT(1), &
z%WAMIT, OtherState%WAMIT(1), y%WAMIT(1), m%WAMIT(1), ErrStat2, ErrMsg2 )
if (Failed()) return
do iBody=1,p%NBody
y%WAMITMesh%Force (:,iBody) = y%WAMITMesh%Force (:,iBody) + y%WAMIT(1)%Mesh%Force (:,iBody)
y%WAMITMesh%Moment(:,iBody) = y%WAMITMesh%Moment(:,iBody) + y%WAMIT(1)%Mesh%Moment(:,iBody)
-
end do
- ! Copy the F_Waves1 information to the HydroDyn level so we can combine it with the 2nd order
- m%F_Waves = m%F_Waves + m%WAMIT(1)%F_Waves1
+ if ( p%HasAddDOF ) then
+ y%FAddDOF = y%FAddDOF + y%WAMIT(1)%FAddDOF
+ end if
+ ! Copy the F_Waves1 information to the HydroDyn level so we can combine it with the 2nd order
+ m%F_Waves = m%F_Waves + m%WAMIT(1)%F_Waves1
else
+ AddDOFCntr = 0_IntKi
do iBody=1,p%NBody
- ! We need to copy the iWAMIT-th node data from the Inputs(I)%WAMITMesh onto the 1st node of the Inputs_WAMIT(I)%Mesh
+ ! We need to copy the iWAMIT-th node data from the Inputs(I)%WAMITMesh onto the 1st node of the Inputs_WAMIT(I)%Mesh
m%u_WAMIT(iBody)%Mesh%TranslationDisp(:,1) = u%WAMITMesh%TranslationDisp(:,iBody)
m%u_WAMIT(iBody)%Mesh%Orientation (:,:,1)= u%WAMITMesh%Orientation (:,:,iBody)
m%u_WAMIT(iBody)%Mesh%TranslationVel (:,1) = u%WAMITMesh%TranslationVel (:,iBody)
@@ -1505,24 +1677,37 @@ SUBROUTINE HydroDyn_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat,
m%u_WAMIT(iBody)%Mesh%RotationAcc (:,1) = u%WAMITMesh%RotationAcc (:,iBody)
m%u_WAMIT(iBody)%PtfmRefY = PtfmRefY
+
+ if ( p%NAddDOF(iBody) > 0_IntKi ) then
+ m%u_WAMIT(iBody)%qAddDOF = u%qAddDOF (AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iBody))
+ m%u_WAMIT(iBody)%qAddDOFDot = u%qAddDOFDot (AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iBody))
+ m%u_WAMIT(iBody)%qAddDOFDotDot = u%qAddDOFDotDot(AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iBody))
+ ! AddDOFCntr is incremented below.
+ end if
+
call WAMIT_CalcOutput( Time, m%u_WAMIT(iBody), p%WAMIT(iBody), x%WAMIT(iBody), xd%WAMIT(iBody), &
z%WAMIT, OtherState%WAMIT(iBody), y%WAMIT(iBody), m%WAMIT(iBody), ErrStat2, ErrMsg2 )
if (Failed()) return
y%WAMITMesh%Force (:,iBody) = y%WAMITMesh%Force (:,iBody) + y%WAMIT(iBody)%Mesh%Force (:,1)
y%WAMITMesh%Moment(:,iBody) = y%WAMITMesh%Moment(:,iBody) + y%WAMIT(iBody)%Mesh%Moment(:,1)
- ! Copy the F_Waves1 information to the HydroDyn level so we can combine it with the 2nd order
- indxStart = (iBody-1)*6+1
- indxEnd = indxStart+5
+ if ( p%NAddDOF(iBody) > 0_IntKi ) then
+ y%FAddDOF(AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iBody)) = y%FAddDOF(AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iBody)) + y%WAMIT(iBody)%FAddDOF
+ AddDOFCntr = AddDOFCntr + p%NAddDOF(iBody)
+ end if
+
+ ! Copy the F_Waves1 information to the HydroDyn level so we can combine it with the 2nd order
+ indxStart = p%BDOFStrt(iBody)
+ indxEnd = p%BDOFStrt(iBody)+5+p%NAddDOF(iBody)
m%F_Waves(indxStart:indxEnd) = m%F_Waves(indxStart:indxEnd) + m%WAMIT(iBody)%F_Waves1
+
end do
end if
end if ! m%u_WAMIT(1)%Mesh%Committed
end if ! m%u_WAMIT is allocated
-
- ! Second order
+ ! Second order <- No generalized DOF
if (p%WAMIT2used) then
if ( p%NBodyMod == 1 .or. p%NBody == 1 ) then
@@ -1532,8 +1717,13 @@ SUBROUTINE HydroDyn_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat,
y%WAMITMesh%Force (:,iBody) = y%WAMITMesh%Force (:,iBody) + y%WAMIT2(1)%Mesh%Force (:,iBody)
y%WAMITMesh%Moment(:,iBody) = y%WAMITMesh%Moment(:,iBody) + y%WAMIT2(1)%Mesh%Moment(:,iBody)
end do
- ! Add F_Waves2 to m%F_Waves
- m%F_Waves = m%F_Waves + m%WAMIT2(1)%F_Waves2
+
+ ! Add F_Waves2 to m%F_Waves
+ do iBody=1,p%NBody
+ indxStart = p%BDOFStrt(iBody)
+ indxEnd = indxStart+5
+ m%F_Waves(indxStart:indxEnd) = m%F_Waves(indxStart:indxEnd) + m%WAMIT2(1)%F_Waves2(6*(iBody-1)+1:6*(iBody-1)+6)
+ end do
else
do iBody=1,p%NBody
@@ -1542,8 +1732,8 @@ SUBROUTINE HydroDyn_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat,
y%WAMITMesh%Force (:,iBody) = y%WAMITMesh%Force (:,iBody) + y%WAMIT2(iBody)%Mesh%Force (:,1)
y%WAMITMesh%Moment(:,iBody) = y%WAMITMesh%Moment(:,iBody) + y%WAMIT2(iBody)%Mesh%Moment(:,1)
- ! Copy the F_Waves1 information to the HydroDyn level so we can combine it with the 2nd order
- indxStart = (iBody-1)*6+1
+ ! Add F_Waves2 to m%F_Waves
+ indxStart = p%BDOFStrt(iBody)
indxEnd = indxStart+5
m%F_Waves(indxStart:indxEnd) = m%F_Waves(indxStart:indxEnd) + m%WAMIT2(iBody)%F_Waves2
end do
@@ -1595,14 +1785,11 @@ SUBROUTINE HydroDyn_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat,
END IF
m%LastOutTime = Time
-
- IF (ALLOCATED(RRb2g)) DEALLOCATE(RRb2g)
- IF (ALLOCATED(RRg2b)) DEALLOCATE(RRg2b)
contains
logical function Failed()
- call SetErrStat(errStat2, errMsg2, errStat, errMsg, RoutineName)
- Failed = errStat >= AbortErrLev
+ call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ Failed = ErrStat >= AbortErrLev
end function Failed
! check for failed where /= 0 is fatal
logical function Failed0(txt)
@@ -1701,8 +1888,8 @@ SUBROUTINE HydroDyn_CalcConstrStateResidual( Time, u, p, x, xd, z, OtherState, m
! Initialize ErrStat
- ErrStat = ErrID_None
- ErrMsg = ""
+ ErrStat = ErrID_None
+ ErrMsg = ""
! Nothing to do here since none of the sub-modules have contraint states
z_residual = z
diff --git a/modules/hydrodyn/src/HydroDyn.txt b/modules/hydrodyn/src/HydroDyn.txt
index 529e73214d..ec28bc5f94 100644
--- a/modules/hydrodyn/src/HydroDyn.txt
+++ b/modules/hydrodyn/src/HydroDyn.txt
@@ -46,6 +46,7 @@ typedef ^ ^ INTEGER
typedef ^ ^ INTEGER NBodyMod - - - "Body coupling model {1: include coupling terms between each body and NBody in HydroDyn equals NBODY in WAMIT, 2: neglect coupling terms between each body and NBODY=1 with XBODY=0 in WAMIT, 3: Neglect coupling terms between each body and NBODY=1 with XBODY=/0 in WAMIT} (switch) [only used when PotMod=1]" -
typedef ^ ^ ReKi PtfmVol0 {:} - - "" -
typedef ^ ^ LOGICAL HasWAMIT - - - ".TRUE. if using WAMIT model, .FALSE. otherwise" -
+typedef ^ ^ LOGICAL HasAddDOF - - - ".TRUE. if additional generalized DOF are present, .FALSE. otherwise" -
typedef ^ ^ ReKi WAMITULEN {:} - - "" -
typedef ^ ^ ReKi PtfmRefxt {:} - - "The xt offset of the body reference point(s) from (0,0,0) [1 to NBody; only used when PotMod=1; must be 0.0 if NBodyMod=2 ]" (m)
typedef ^ ^ ReKi PtfmRefyt {:} - - "The yt offset of the body reference point(s) from (0,0,0) [1 to NBody; only used when PotMod=1; must be 0.0 if NBodyMod=2 ]" (m)
@@ -53,6 +54,7 @@ typedef ^ ^ ReKi
typedef ^ ^ R8Ki PtfmRefztRot {:} - - "The rotation about zt of the body reference frame(s) from xt/yt" radians
typedef ^ ^ ReKi PtfmCOBxt {:} - - "" -
typedef ^ ^ ReKi PtfmCOByt {:} - - "" -
+typedef ^ ^ INTEGER NAddDOF {:} - - "Number of additional generalized degrees of freedom" -
typedef ^ ^ WAMIT_InitInputType WAMIT - - - "Initialization data for WAMIT module" -
typedef ^ ^ WAMIT2_InitInputType WAMIT2 - - - "Initialization data for WAMIT2 module" -
typedef ^ ^ Morison_InitInputType Morison - - - "Initialization data for Morison module" -
@@ -135,7 +137,11 @@ typedef ^ ^ LOGICAL
typedef ^ ^ Morison_ParameterType Morison - - - "Parameter data for the Morison module" -
typedef ^ ^ INTEGER PotMod - - - "1 if using WAMIT model, 0 if no potential flow model, or 2 if FIT model" -
typedef ^ ^ INTEGER NBody - - - "[>=1; only used when PotMod=1. If NBodyMod=1, the WAMIT data contains a vector of size 6*NBody x 1 and matrices of size 6*NBody x 6*NBody; if NBodyMod>1, there are NBody sets of WAMIT data each with a vector of size 6 x 1 and matrices of size 6 x 6]" -
-typedef ^ ^ INTEGER NBodyMod - - - "Body coupling model {1: include coupling terms between each body and NBody in HydroDyn equals NBODY in WAMIT, 2: neglect coupling terms between each body and NBODY=1 with XBODY=0 in WAMIT, 3: Neglect coupling terms between each body and NBODY=1 with XBODY=/0 in WAMIT} (switch) [only used when PotMod=1]" -
+typedef ^ ^ INTEGER NBodyMod - - - "Body coupling model {1: include coupling terms between each body and NBody in HydroDyn equals NBODY in WAMIT, 2: neglect coupling terms between each body and NBODY=1 with XBODY=0 in WAMIT, 3: Neglect coupling terms between each body and NBODY=1 with XBODY=/0 in WAMIT} (switch) [only used when PotMod=1]" -
+typedef ^ ^ LOGICAL HasAddDOF - - - ".TRUE. if additional generalized DOF are present, .FALSE. otherwise" -
+typedef ^ ^ INTEGER NAddDOF {:} - - "Number of additional generalized degrees of freedom" -
+typedef ^ ^ INTEGER NDOF - - - "Total number of degrees of freedom" -
+typedef ^ ^ INTEGER BDOFStrt {:} - - "Starting DOF index for each body" -
typedef ^ ^ INTEGER totalStates - - - "Number of excitation and radiation states for all WAMIT bodies" -
typedef ^ ^ INTEGER totalExctnStates - - - "Number of excitation states for all WAMIT bodies" -
typedef ^ ^ INTEGER totalRdtnStates - - - "Number of radiation states for all WAMIT bodies" -
@@ -167,17 +173,20 @@ typedef ^ ^ ReKi
# Define inputs that are contained on the mesh here:
#
typedef ^ InputType Morison_InputType Morison - - - "Morison module inputs" -
-typedef ^ InputType MeshType WAMITMesh - - - "Motions at the WAMIT reference point(s) in the inertial frame" -
-typedef ^ InputType MeshType PRPMesh - - - "Motions at the Platform reference point in the inertial frame" -
-#
+typedef ^ ^ MeshType WAMITMesh - - - "Motions at the WAMIT reference point(s) in the inertial frame" -
+typedef ^ ^ MeshType PRPMesh - - - "Motions at the Platform reference point in the inertial frame" -
+typedef ^ ^ ReKi qAddDOF {:} - - "Displacement of potential-flow generalized DOF" -
+typedef ^ ^ ReKi qAddDOFDot {:} - - "Velocity of potential-flow generalized DOF" -
+typedef ^ ^ ReKi qAddDOFDotDot {:} - - "Acceleration of potential-flow generalized DOF" -
#
# ..... Outputs ...................................................................................................................
# Define outputs that are contained on the mesh here:
-typedef ^ OutputType WAMIT_OutputType WAMIT {:} - - "WAMIT module outputs" -
-typedef ^ OutputType WAMIT2_OutputType WAMIT2 {:} - - "WAMIT2 module outputs" -
-typedef ^ ^ Morison_OutputType Morison - - - "Morison module outputs" -
-typedef ^ OutputType MeshType WAMITMesh - - - "Point Loads at the WAMIT reference point(s) in the inertial frame" -
-typedef ^ ^ ReKi WriteOutput {:} - - "Outputs to be written to the output file(s)" -
+typedef ^ OutputType WAMIT_OutputType WAMIT {:} - - "WAMIT module outputs" -
+typedef ^ ^ WAMIT2_OutputType WAMIT2 {:} - - "WAMIT2 module outputs" -
+typedef ^ ^ Morison_OutputType Morison - - - "Morison module outputs" -
+typedef ^ ^ MeshType WAMITMesh - - - "Point Loads at the WAMIT reference point(s) in the inertial frame" -
+typedef ^ ^ ReKi WriteOutput {:} - - "Outputs to be written to the output file(s)" -
+typedef ^ ^ ReKi FAddDOF {:} - - "Additional generalized DOF forcing " -
#
#
# ..... Misc/Optimization variables.................................................................................................
diff --git a/modules/hydrodyn/src/HydroDyn_DriverCode.f90 b/modules/hydrodyn/src/HydroDyn_DriverCode.f90
index 185c259746..ffee717a36 100644
--- a/modules/hydrodyn/src/HydroDyn_DriverCode.f90
+++ b/modules/hydrodyn/src/HydroDyn_DriverCode.f90
@@ -233,6 +233,20 @@ PROGRAM HydroDynDriver
end if
END IF
+ IF ( drvrData%PRPInputsMod<-1_IntKi .and. drvrData%NAddDOF>0 ) THEN
+ ErrStat = ErrID_Fatal
+ ErrMsg = 'When multiple WAMIT bodies are present, additional generalized DOF are not supported. Need to set NAddDOF=0.'
+ CALL CheckError()
+ END IF
+
+ IF ( p%PotMod == 1_IntKi ) THEN
+ IF ( drvrData%NAddDOF > p%NAddDOF(1) ) THEN
+ ErrStat = ErrID_Fatal
+ ErrMsg = 'NAddDOF in the HydroDyn driver input file is greater than that in the HydroDyn primary input file. This is not allowed.'
+ CALL CheckError()
+ END IF
+ END IF
+
! Set initial inputs at t = 0
IF (( drvrData%PRPInputsMod /= 2 ) .AND. ( drvrData%PRPInputsMod >= 0 )) THEN
! Set any steady-state inputs, once before the time-stepping loop (these don't change, so we don't need to update them in the time-marching simulation)
diff --git a/modules/hydrodyn/src/HydroDyn_DriverSubs.f90 b/modules/hydrodyn/src/HydroDyn_DriverSubs.f90
index 5a370672ce..4723bb37ce 100644
--- a/modules/hydrodyn/src/HydroDyn_DriverSubs.f90
+++ b/modules/hydrodyn/src/HydroDyn_DriverSubs.f90
@@ -89,6 +89,7 @@ MODULE HydroDynDriverSubs
REAL(R8Ki), ALLOCATABLE :: PRPin(:,:) ! Variable for storing time, forces, and body velocities, in m/s or rad/s for PRP
REAL(R8Ki), ALLOCATABLE :: PRPinTime(:) ! Variable for storing time, forces, and body velocities, in m/s or rad/s for PRP
INTEGER(IntKi) :: NBody ! Number of WAMIT bodies to work with if prescribing kinematics on each body (PRPInputsMod<0)
+ INTEGER(IntKi) :: NAddDOF ! Number of additional generalized DOF of each WAMIT body (currently only supports NBody=1, i.e., PRPInputsMod=-1)
TYPE(HD_Drvr_OutputFile) :: OutData
character(500) :: FTitle ! description from 2nd line of driver file
@@ -254,6 +255,10 @@ SUBROUTINE ReadDriverInputFile( FileName, drvrData, ErrStat, ErrMsg )
CALL ReadVar ( UnIn, FileName, drvrData%PRPInputsMod, 'PRPInputsMod', 'Model for the PRP (principal reference point) inputs', ErrStat2, ErrMsg2, UnEchoLocal )
if (Failed()) return
+ ! NAddDOF
+ CALL ReadVar ( UnIn, FileName, drvrData%NAddDOF, 'NAddDOF', 'Number of additional generalized DOF of each WAMIT body (currently only supports NBODY=1, i.e., PRPInputsMod=-1)', ErrStat2, ErrMsg2, UnEchoLocal )
+ if (Failed()) return
+
! PtfmRefzt
CALL ReadVar ( UnIn, FileName, drvrData%PtfmRefzt, 'PtfmRefzt', 'Vertical distance from the ground level to the platform reference point', ErrStat, ErrMsg, UnEchoLocal )
if (Failed()) return
@@ -323,7 +328,7 @@ SUBROUTINE ReadPRPInputsFile( drvrData, ErrStat, ErrMsg )
INTEGER :: UnEchoLocal ! The local unit number for this module's echo file
! CHARACTER(1024) :: EchoFile ! Name of HydroDyn echo file
- integer(IntKi) :: n, sizeAry
+ integer(IntKi) :: n, sizeAry, sizeAryActual
integer(IntKi) :: errStat2 ! temporary error status of the operation
character(ErrMsgLen) :: errMsg2 ! temporary error message
character(*), parameter :: RoutineName = 'ReadDriverInputFile'
@@ -345,7 +350,11 @@ SUBROUTINE ReadPRPInputsFile( drvrData, ErrStat, ErrMsg )
! multi-body kinematics driver option (time, PRP DOFs 1-6, body1 DOFs 1-6, body2 DOFs 1-6...)
drvrData%NBody = -drvrData%PRPInputsMod
- sizeAry = 7 + 6*drvrData%NBody
+ IF ( drvrData%NBody == 1_IntKi ) THEN
+ sizeAry = 7 + 6*drvrData%NBody + drvrData%NAddDOF
+ ELSE
+ sizeAry = 7 + 6*drvrData%NBody
+ END IF
call WrScr( 'NBody is '//trim(Num2LStr(drvrData%NBody))//' and planning to read in '//trim(Num2LStr(sizeAry))//' columns from the input file' )
@@ -354,15 +363,22 @@ SUBROUTINE ReadPRPInputsFile( drvrData, ErrStat, ErrMsg )
RETURN
END IF
-
+
! Open the (PRP or WAMIT) inputs data file
CALL GetNewUnit( UnIn )
CALL OpenFInpFile ( UnIn, trim(drvrData%PRPInputsFile), ErrStat2, ErrMsg2 )
if (Failed()) return
! Determine how many lines of data (how many time steps) are in the PRP input file
- CALL GetFileLength(UnIn, trim(drvrData%PRPInputsFile), sizeAry, NumDataLines, NumHeaderLines, ErrStat2, ErrMsg2)
+ CALL GetFileLength(UnIn, trim(drvrData%PRPInputsFile), sizeAryActual, NumDataLines, NumHeaderLines, ErrStat2, ErrMsg2)
if (Failed()) return
+
+ if (sizeAry /= sizeAryActual) then
+ ErrStat = ErrID_Fatal
+ ErrMsg = 'Expected '//trim(num2lstr(sizeAry))//' columns in the PRPInputsFile but found '//trim(num2lstr(sizeAryActual))//' columns instead.'
+ return
+ end if
+
CALL AllocAry(TmpAry, sizeAry, 'TmpAry', ErrStat2, ErrMsg2)
if (Failed()) return
CALL AllocAry(drvrData%PRPin, NumDataLines, sizeAry-1, 'PRPin', ErrStat2, ErrMsg2)
@@ -792,6 +808,12 @@ SUBROUTINE SetHDInputs_Constant(u_HD, mappingData, drvrData, ErrStat, ErrMsg)
CALL PRP_TransferToMotionInputs(u_HD, mappingData, ErrStat2, ErrMsg2 )
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ IF (ALLOCATED( u_HD%qAddDOF )) THEN
+ u_HD%qAddDOF = 0.0_ReKi
+ u_HD%qAddDOFDot = 0.0_ReKi
+ u_HD%qAddDOFDotDot = 0.0_ReKi
+ END IF
+
END IF
END SUBROUTINE SetHDInputs_Constant
@@ -818,6 +840,12 @@ SUBROUTINE SetHDInputs(time, n, u_HD, mappingData, drvrData, ErrStat, ErrMsg)
ErrStat = ErrID_None
ErrMsg = ""
+ IF (ALLOCATED( u_HD%qAddDOF )) THEN
+ u_HD%qAddDOF = 0.0_ReKi
+ u_HD%qAddDOFDot = 0.0_ReKi
+ u_HD%qAddDOFDotDot = 0.0_ReKi
+ END IF
+
! PRPInputsMod 2: Reads time series of positions, velocities, and accelerations for the platform reference point
IF ( drvrData%PRPInputsMod == 2 ) THEN
@@ -859,7 +887,7 @@ SUBROUTINE SetHDInputs(time, n, u_HD, mappingData, drvrData, ErrStat, ErrMsg)
call SetErrStat(ErrID_Fatal, 'time does not match PRP input file data', ErrStat, ErrMsg, RoutineName)
return
end if
-
+
! platform reference point (PRP), and body 1-NBody displacements
u_HD%PRPMesh%TranslationDisp(:,1) = drvrData%PRPin(n,1:3)
DO I=1,drvrData%NBody
@@ -868,11 +896,15 @@ SUBROUTINE SetHDInputs(time, n, u_HD, mappingData, drvrData, ErrStat, ErrMsg)
! PRP and body 1-NBody orientations (skipping the maxAngle stuff)
u_HD%PRPMesh%Orientation(:,:,1) = EulerConstructZYX(drvrData%PRPin(n,4:6))
-
DO I=1, drvrData%NBody
u_HD%WAMITMesh%Orientation(:,:,I) = EulerConstructZYX(drvrData%PRPin(n,(6*I+4):(6*I+6)))
END DO
+ ! Generalized DOF displacement of WAMIT body
+ IF ( drvrData%NAddDOF > 0_IntKi ) THEN ! Currently only allowed if NBody = 1
+ u_HD%qAddDOF(1:drvrData%NAddDOF) = drvrData%PRPin(n, 13:(12+drvrData%NAddDOF))
+ END IF
+
! use finite differences for velocities and accelerations
IF (n == 1) THEN ! use forward differences for first time step
indxHigh = n+2
@@ -887,6 +919,10 @@ SUBROUTINE SetHDInputs(time, n, u_HD, mappingData, drvrData, ErrStat, ErrMsg)
u_HD%WAMITMesh%RotationVel( :,I) = (drvrData%PRPin(indxMid, 6*I+4:6*I+6) - drvrData%PRPin(indxLow, 6*I+4:6*I+6))/drvrData%TimeInterval
END DO
+ IF ( drvrData%NAddDOF > 0_IntKi ) THEN ! Currently only allowed if NBody = 1
+ u_HD%qAddDOFdot(1:drvrData%NAddDOF) = ( drvrData%PRPin(indxMid, 13:(12+drvrData%NAddDOF)) - drvrData%PRPin(indxLow, 13:(12+drvrData%NAddDOF)) )/drvrData%TimeInterval
+ END IF
+
ELSE IF (n >= drvrData%NSteps) THEN ! use backward differences for last time step
indxHigh = n
indxMid = n-1
@@ -899,7 +935,11 @@ SUBROUTINE SetHDInputs(time, n, u_HD, mappingData, drvrData, ErrStat, ErrMsg)
u_HD%WAMITMesh%TranslationVel(:,I) = (drvrData%PRPin(indxHigh, 6*I+1:6*I+3) - drvrData%PRPin(indxMid, 6*I+1:6*I+3))/drvrData%TimeInterval
u_HD%WAMITMesh%RotationVel( :,I) = (drvrData%PRPin(indxHigh, 6*I+4:6*I+6) - drvrData%PRPin(indxMid, 6*I+4:6*I+6))/drvrData%TimeInterval
END DO
-
+
+ IF ( drvrData%NAddDOF > 0_IntKi ) THEN ! Currently only allowed if NBody = 1
+ u_HD%qAddDOFdot(1:drvrData%NAddDOF) = ( drvrData%PRPin(indxHigh, 13:(12+drvrData%NAddDOF)) - drvrData%PRPin(indxMid, 13:(12+drvrData%NAddDOF)) )/drvrData%TimeInterval
+ END IF
+
ELSE ! otherwise use central differences for intermediate time steps
indxHigh = n+1
indxMid = n
@@ -912,19 +952,28 @@ SUBROUTINE SetHDInputs(time, n, u_HD, mappingData, drvrData, ErrStat, ErrMsg)
u_HD%WAMITMesh%TranslationVel(:,I) = (drvrData%PRPin(indxHigh, 6*I+1:6*I+3) - drvrData%PRPin(indxLow, 6*I+1:6*I+3))*0.5/drvrData%TimeInterval
u_HD%WAMITMesh%RotationVel( :,I) = (drvrData%PRPin(indxHigh, 6*I+4:6*I+6) - drvrData%PRPin(indxLow, 6*I+4:6*I+6))*0.5/drvrData%TimeInterval
END DO
-
+
+ IF ( drvrData%NAddDOF > 0_IntKi ) THEN ! Currently only allowed if NBody = 1
+ u_HD%qAddDOFdot(1:drvrData%NAddDOF) = ( drvrData%PRPin(indxHigh, 13:(12+drvrData%NAddDOF)) - drvrData%PRPin(indxLow, 13:(12+drvrData%NAddDOF)) )/drvrData%TimeInterval
+ END IF
+
END IF
! TO DO: Missing the first and last step below!
! calculate accelerations based on displacements:
- u_HD%PRPMesh%TranslationAcc(:,1) = (drvrData%PRPin(indxHigh, 1:3) - 2*drvrData%PRPin(indxMid, 1:3) + drvrData%PRPin(indxLow, 1:3)) /(drvrData%TimeInterval**2)
- u_HD%PRPMesh%RotationAcc( :,1) = (drvrData%PRPin(indxHigh, 4:6) - 2*drvrData%PRPin(indxMid, 4:6) + drvrData%PRPin(indxLow, 4:6)) /(drvrData%TimeInterval**2)
+ u_HD%PRPMesh%TranslationAcc(:,1) = (drvrData%PRPin(indxHigh, 1:3) - 2.0_ReKi*drvrData%PRPin(indxMid, 1:3) + drvrData%PRPin(indxLow, 1:3)) /(drvrData%TimeInterval**2)
+ u_HD%PRPMesh%RotationAcc( :,1) = (drvrData%PRPin(indxHigh, 4:6) - 2.0_ReKi*drvrData%PRPin(indxMid, 4:6) + drvrData%PRPin(indxLow, 4:6)) /(drvrData%TimeInterval**2)
DO I=1,drvrData%NBody
- u_HD%WAMITMesh%TranslationAcc(:,I) = (drvrData%PRPin(indxHigh, 6*I+1:6*I+3) - 2*drvrData%PRPin(indxMid, 6*I+1:6*I+3) + drvrData%PRPin(indxLow, 6*I+1:6*I+3))/(drvrData%TimeInterval**2)
- u_HD%WAMITMesh%RotationAcc( :,I) = (drvrData%PRPin(indxHigh, 6*I+4:6*I+6) - 2*drvrData%PRPin(indxMid, 6*I+4:6*I+6) + drvrData%PRPin(indxLow, 6*I+4:6*I+6))/(drvrData%TimeInterval**2)
+ u_HD%WAMITMesh%TranslationAcc(:,I) = (drvrData%PRPin(indxHigh, 6*I+1:6*I+3) - 2.0_ReKi*drvrData%PRPin(indxMid, 6*I+1:6*I+3) + drvrData%PRPin(indxLow, 6*I+1:6*I+3))/(drvrData%TimeInterval**2)
+ u_HD%WAMITMesh%RotationAcc( :,I) = (drvrData%PRPin(indxHigh, 6*I+4:6*I+6) - 2.0_ReKi*drvrData%PRPin(indxMid, 6*I+4:6*I+6) + drvrData%PRPin(indxLow, 6*I+4:6*I+6))/(drvrData%TimeInterval**2)
END DO
-
+
+ IF ( drvrData%NAddDOF > 0_IntKi ) THEN ! Currently only allowed if NBody = 1
+ u_HD%qAddDOFdotdot(1:drvrData%NAddDOF) = ( drvrData%PRPin(indxHigh, 13:(12+drvrData%NAddDOF)) - 2.0_ReKi*drvrData%PRPin(indxMid, 13:(12+drvrData%NAddDOF)) + drvrData%PRPin(indxLow, 13:(12+drvrData%NAddDOF)) ) &
+ /(drvrData%TimeInterval**2)
+ END IF
+
! Rotation - Compute angular velocity and acceleration from the rotation angles and time derivatives
call EulerDerivativeToAngVelAcc(drvrData%PRPin(n,4:6),&
u_HD%PRPMesh%RotationVel(:,1),&
@@ -945,7 +994,7 @@ SUBROUTINE SetHDInputs(time, n, u_HD, mappingData, drvrData, ErrStat, ErrMsg)
! half of the PRP_TransferToMotionInputs routine:
IF ( u_HD%Morison%Mesh%Initialized ) THEN
- ! Map kinematics to the WAMIT mesh with 1 to NBody nodes
+ ! Map kinematics to the Morison mesh only
CALL Transfer_Point_to_Point( u_HD%PRPMesh, u_HD%Morison%Mesh, mappingData%HD_Ref_2_M_P, ErrStat2, ErrMsg2 )
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
END IF
diff --git a/modules/hydrodyn/src/HydroDyn_Input.f90 b/modules/hydrodyn/src/HydroDyn_Input.f90
index 84298e59a3..94caccc810 100644
--- a/modules/hydrodyn/src/HydroDyn_Input.f90
+++ b/modules/hydrodyn/src/HydroDyn_Input.f90
@@ -81,6 +81,7 @@ SUBROUTINE HydroDyn_ParseInput( InputFileName, OutRootName, FileInfo_In, InputFi
INTEGER :: UnEc ! The local unit number for this module's echo file
CHARACTER(1024) :: EchoFile ! Name of HydroDyn echo file
CHARACTER(MaxFileInfoLineLen) :: Line ! String to temporarially hold value of read line
+ INTEGER :: NDOF ! Number of DOF in each WAMIT module
real(ReKi), ALLOCATABLE :: tmpVec1(:), tmpVec2(:) ! Temporary arrays for WAMIT data
integer(IntKi) :: startIndx, endIndx ! indices into working arrays
INTEGER, ALLOCATABLE :: tmpArray(:) ! Temporary array storage of the joint output list
@@ -206,7 +207,7 @@ SUBROUTINE HydroDyn_ParseInput( InputFileName, OutRootName, FileInfo_In, InputFi
CALL AllocAry( InputFileData%PtfmVol0 , InputFileData%NBody, 'PtfmVol0' , ErrStat2, ErrMsg2); if (Failed()) return;
CALL AllocAry( InputFileData%PtfmCOBxt , InputFileData%NBody, 'PtfmCOBxt' , ErrStat2, ErrMsg2); if (Failed()) return;
CALL AllocAry( InputFileData%PtfmCOByt , InputFileData%NBody, 'PtfmCOByt' , ErrStat2, ErrMsg2); if (Failed()) return;
-
+ CALL AllocAry( InputFileData%NAddDOF , InputFileData%NBody, 'NAddDOF' , ErrStat2, ErrMsg2); if (Failed()) return;
! PotFile - Root name of Potential flow data files (Could be WAMIT files or the FIT input file)
call ParseAry( FileInfo_In, CurLine, 'PotFile', InputFileData%PotFile, InputFileData%nWAMITObj, ErrStat2, ErrMsg2, UnEc )
@@ -245,6 +246,8 @@ SUBROUTINE HydroDyn_ParseInput( InputFileName, OutRootName, FileInfo_In, InputFi
call ParseAry( FileInfo_In, CurLine, 'PtfmCOByt', InputFileData%PtfmCOByt, InputFileData%NBody, ErrStat2, ErrMsg2, UnEc )
if (Failed()) return;
+ call ParseAry( FileInfo_In, CurLine, 'NAddDOF', InputFileData%NAddDOF, InputFileData%NBody, ErrStat2, ErrMsg2, UnEc )
+ if (Failed()) return;
!-------------------------------------------------------------------------------------------------
! Data section for 2nd order WAMIT forces
@@ -277,67 +280,66 @@ SUBROUTINE HydroDyn_ParseInput( InputFileName, OutRootName, FileInfo_In, InputFi
! If NBodyMod = 1 then vecMultiplier = NBody and nWAMITObj = 1
! Else vecMultiplier = 1 and nWAMITObj = NBody
- CALL AllocAry( InputFileData%AddF0, InputFileData%vecMultiplier*6, InputFileData%nWAMITObj, 'InputFileData%AddF0' , ErrStat2, ErrMsg2); if (Failed()) return;
- CALL AllocAry( InputFileData%AddCLin, InputFileData%vecMultiplier*6, InputFileData%vecMultiplier*6, InputFileData%nWAMITObj, 'InputFileData%AddCLin' , ErrStat2, ErrMsg2); if (Failed()) return;
- CALL AllocAry( InputFileData%AddBLin, InputFileData%vecMultiplier*6, InputFileData%vecMultiplier*6, InputFileData%nWAMITObj, 'InputFileData%AddBLin' , ErrStat2, ErrMsg2); if (Failed()) return;
- CALL AllocAry( InputFileData%AddBQuad, InputFileData%vecMultiplier*6, InputFileData%vecMultiplier*6, InputFileData%nWAMITObj, 'InputFileData%AddBQuad' , ErrStat2, ErrMsg2); if (Failed()) return;
- CALL AllocAry( tmpVec1, InputFileData%nWAMITObj, 'tmpVec1', ErrStat2, ErrMsg2); if (Failed()) return;
- CALL AllocAry( tmpVec2, 6*InputFileData%NBody, 'tmpVec2', ErrStat2, ErrMsg2); if (Failed()) return;
-
- ! AddF0 - Additional preload
- do i = 1,6*InputFileData%vecMultiplier
+ if ( InputFileData%NBody == 1_IntKi ) then
+ ! To avoid each WAMITObj having different NDOF, generalized DOF is currently only allowed with NBody = 1
+ NDOF = 6+InputFileData%NAddDOF(1)
+ else
+ NDOF = 6*InputFileData%vecMultiplier
+ end if
+ call AllocAry( InputFileData%AddF0, NDOF, InputFileData%nWAMITObj, 'InputFileData%AddF0' , ErrStat2, ErrMsg2); if (Failed()) return;
+ call AllocAry( InputFileData%AddCLin, NDOF, NDOF, InputFileData%nWAMITObj, 'InputFileData%AddCLin' , ErrStat2, ErrMsg2); if (Failed()) return;
+ call AllocAry( InputFileData%AddBLin, NDOF, NDOF, InputFileData%nWAMITObj, 'InputFileData%AddBLin' , ErrStat2, ErrMsg2); if (Failed()) return;
+ call AllocAry( InputFileData%AddBQuad, NDOF, NDOF, InputFileData%nWAMITObj, 'InputFileData%AddBQuad' , ErrStat2, ErrMsg2); if (Failed()) return;
+ call AllocAry( tmpVec1, InputFileData%nWAMITObj , 'tmpVec1', ErrStat2, ErrMsg2); if (Failed()) return;
+ call AllocAry( tmpVec2, InputFileData%nWAMITObj*NDOF, 'tmpVec2', ErrStat2, ErrMsg2); if (Failed()) return;
+
+ ! AddF0 - Additional preload
+ do i = 1,NDOF
call ParseAry( FileInfo_In, CurLine, 'AddF0', tmpVec1, InputFileData%nWAMITObj, ErrStat2, ErrMsg2, UnEc )
if (Failed()) return;
-
do j = 1, InputFileData%nWAMITObj
InputFileData%AddF0(i,j) = tmpVec1(j)
end do
end do
-
- ! AddCLin
- do i=1,6*InputFileData%vecMultiplier
+ ! AddCLin
+ do i = 1, NDOF
write(strI,'(I2)') i
call ParseAry( FileInfo_In, CurLine, ' Row '//strI//' of the additional linear stiffness matrix', &
- tmpVec2, 6*InputFileData%NBody, ErrStat2, ErrMsg2, UnEc )
+ tmpVec2, InputFileData%nWAMITObj*NDOF, ErrStat2, ErrMsg2, UnEc )
if (Failed()) return;
-
do j = 1, InputFileData%nWAMITObj
- startIndx = 6*InputFileData%vecMultiplier*(j-1) + 1
- endIndx = startIndx + 6*InputFileData%vecMultiplier - 1
+ startIndx = NDOF*(j-1) + 1
+ endIndx = startIndx + NDOF - 1
InputFileData%AddCLin(i,:,j) = tmpVec2(startIndx:endIndx)
end do
end do
-
- ! AddBLin
- DO I=1,6*InputFileData%vecMultiplier
-
+ ! AddBLin
+ do i = 1, NDOF
+ write(strI,'(I2)') i
call ParseAry( FileInfo_In, CurLine, ' Row '//strI//' of the additional linear damping matrix', &
- tmpVec2, 6*InputFileData%NBody, ErrStat2, ErrMsg2, UnEc )
+ tmpVec2, InputFileData%nWAMITObj*NDOF, ErrStat2, ErrMsg2, UnEc )
if (Failed()) return;
-
do j = 1, InputFileData%nWAMITObj
- startIndx = 6*InputFileData%vecMultiplier*(j-1) + 1
- endIndx = startIndx + 6*InputFileData%vecMultiplier - 1
- InputFileData%AddBLin(I,:,j) = tmpVec2(startIndx:endIndx)
+ startIndx = NDOF*(j-1) + 1
+ endIndx = startIndx + NDOF - 1
+ InputFileData%AddBLin(i,:,j) = tmpVec2(startIndx:endIndx)
end do
- END DO
-
-
- ! AddBQuad
- DO I=1,6*InputFileData%vecMultiplier
+ end do
+ ! AddBQuad
+ do i = 1, NDOF
+ write(strI,'(I2)') i
call ParseAry( FileInfo_In, CurLine, ' Row '//strI//' of the additional quadratic damping matrix', &
- tmpVec2, 6*InputFileData%NBody, ErrStat2, ErrMsg2, UnEc )
+ tmpVec2, InputFileData%nWAMITObj*NDOF, ErrStat2, ErrMsg2, UnEc )
if (Failed()) return;
-
do j = 1, InputFileData%nWAMITObj
- startIndx = 6*InputFileData%vecMultiplier*(j-1) + 1
- endIndx = startIndx + 6*InputFileData%vecMultiplier - 1
- InputFileData%AddBQuad(I,:,j) = tmpVec2(startIndx:endIndx)
+ startIndx = NDOF*(j-1) + 1
+ endIndx = startIndx + NDOF - 1
+ InputFileData%AddBQuad(i,:,j) = tmpVec2(startIndx:endIndx)
end do
- END DO
+ end do
!-------------------------------------------------------------------------------------------------
! Strip Theory Section
@@ -1524,6 +1526,29 @@ SUBROUTINE HydroDynInput_ProcessInitData( InitInp, Interval, InputFileData, ErrS
end do
END IF
+ IF ( InputFileData%PotMod == 1 ) THEN
+ do i = 1,InputFileData%NBody
+ IF ( InputFileData%NAddDOF(i) < 0 )THEN
+ CALL SetErrStat( ErrID_Fatal,'NAddDOF must be non-negative for all WAMIT bodies.',ErrStat,ErrMsg,RoutineName)
+ RETURN
+ END IF
+ end do
+ END IF
+
+ InputFileData%hasAddDOF = any( InputFileData%NAddDOF > 0_IntKi )
+ IF ( InputFileData%PotMod == 1 .and. InputFileData%hasAddDOF .and. InputFileData%NBody > 1 ) THEN
+ CALL SetErrStat( ErrID_Fatal,'Nonzero NAddDOF is currently only allowed with NBody=1.',ErrStat,ErrMsg,RoutineName)
+ RETURN
+ END IF
+ IF ( InputFileData%PotMod == 1 .and. InputFileData%hasAddDOF .and. InputFileData%Wamit%ExctnMod == 2 ) THEN
+ CALL SetErrStat( ErrID_Fatal,'Nonzero NAddDOF currently cannot be used with state-space wave exctiation model (ExctnMod=2). Need ExctnMod = 0 or 1.',ErrStat,ErrMsg,RoutineName)
+ RETURN
+ END IF
+ IF ( InputFileData%PotMod == 1 .and. InputFileData%hasAddDOF .and. InputFileData%Wamit%RdtnMod == 2 ) THEN
+ CALL SetErrStat( ErrID_Fatal,'Nonzero NAddDOF currently cannot be used with state-space wave radiation model (RdtnMod=2). Need RdtnMod = 0 or 1.',ErrStat,ErrMsg,RoutineName)
+ RETURN
+ END IF
+
! RdtnTMax - Analysis time for wave radiation kernel calculations
! NOTE: Use RdtnTMax = 0.0 to eliminate wave radiation damping
diff --git a/modules/hydrodyn/src/HydroDyn_Output.f90 b/modules/hydrodyn/src/HydroDyn_Output.f90
index 3d823bcdd9..aab5dab29c 100644
--- a/modules/hydrodyn/src/HydroDyn_Output.f90
+++ b/modules/hydrodyn/src/HydroDyn_Output.f90
@@ -44,537 +44,6774 @@ MODULE HydroDyn_Output
! Time:
- INTEGER(IntKi), PARAMETER :: Time = 0
+ INTEGER(IntKi), PARAMETER :: Time = 0
! Integrated Hydrodynamic Loads at (0,0,0):
- INTEGER(IntKi), PARAMETER :: HydroFxi = 1
- INTEGER(IntKi), PARAMETER :: HydroFyi = 2
- INTEGER(IntKi), PARAMETER :: HydroFzi = 3
- INTEGER(IntKi), PARAMETER :: HydroMxi = 4
- INTEGER(IntKi), PARAMETER :: HydroMyi = 5
- INTEGER(IntKi), PARAMETER :: HydroMzi = 6
+ INTEGER(IntKi), PARAMETER :: HydroFxi = 1
+ INTEGER(IntKi), PARAMETER :: HydroFyi = 2
+ INTEGER(IntKi), PARAMETER :: HydroFzi = 3
+ INTEGER(IntKi), PARAMETER :: HydroMxi = 4
+ INTEGER(IntKi), PARAMETER :: HydroMyi = 5
+ INTEGER(IntKi), PARAMETER :: HydroMzi = 6
! PRP Body Kinematics:
- INTEGER(IntKi), PARAMETER :: PRPSurge = 7
- INTEGER(IntKi), PARAMETER :: PRPSway = 8
- INTEGER(IntKi), PARAMETER :: PRPHeave = 9
- INTEGER(IntKi), PARAMETER :: PRPRoll = 10
- INTEGER(IntKi), PARAMETER :: PRPPitch = 11
- INTEGER(IntKi), PARAMETER :: PRPYaw = 12
- INTEGER(IntKi), PARAMETER :: PRPTVxi = 13
- INTEGER(IntKi), PARAMETER :: PRPTVyi = 14
- INTEGER(IntKi), PARAMETER :: PRPTVzi = 15
- INTEGER(IntKi), PARAMETER :: PRPRVxi = 16
- INTEGER(IntKi), PARAMETER :: PRPRVyi = 17
- INTEGER(IntKi), PARAMETER :: PRPRVzi = 18
- INTEGER(IntKi), PARAMETER :: PRPTAxi = 19
- INTEGER(IntKi), PARAMETER :: PRPTAyi = 20
- INTEGER(IntKi), PARAMETER :: PRPTAzi = 21
- INTEGER(IntKi), PARAMETER :: PRPRAxi = 22
- INTEGER(IntKi), PARAMETER :: PRPRAyi = 23
- INTEGER(IntKi), PARAMETER :: PRPRAzi = 24
+ INTEGER(IntKi), PARAMETER :: PRPSurge = 7
+ INTEGER(IntKi), PARAMETER :: PRPSway = 8
+ INTEGER(IntKi), PARAMETER :: PRPHeave = 9
+ INTEGER(IntKi), PARAMETER :: PRPRoll = 10
+ INTEGER(IntKi), PARAMETER :: PRPPitch = 11
+ INTEGER(IntKi), PARAMETER :: PRPYaw = 12
+ INTEGER(IntKi), PARAMETER :: PRPTVxi = 13
+ INTEGER(IntKi), PARAMETER :: PRPTVyi = 14
+ INTEGER(IntKi), PARAMETER :: PRPTVzi = 15
+ INTEGER(IntKi), PARAMETER :: PRPRVxi = 16
+ INTEGER(IntKi), PARAMETER :: PRPRVyi = 17
+ INTEGER(IntKi), PARAMETER :: PRPRVzi = 18
+ INTEGER(IntKi), PARAMETER :: PRPTAxi = 19
+ INTEGER(IntKi), PARAMETER :: PRPTAyi = 20
+ INTEGER(IntKi), PARAMETER :: PRPTAzi = 21
+ INTEGER(IntKi), PARAMETER :: PRPRAxi = 22
+ INTEGER(IntKi), PARAMETER :: PRPRAyi = 23
+ INTEGER(IntKi), PARAMETER :: PRPRAzi = 24
! WAMIT Body Kinematics:
- INTEGER(IntKi), PARAMETER :: B1Surge = 25
- INTEGER(IntKi), PARAMETER :: B1Sway = 26
- INTEGER(IntKi), PARAMETER :: B1Heave = 27
- INTEGER(IntKi), PARAMETER :: B1Roll = 28
- INTEGER(IntKi), PARAMETER :: B1Pitch = 29
- INTEGER(IntKi), PARAMETER :: B1Yaw = 30
- INTEGER(IntKi), PARAMETER :: B1TVxi = 31
- INTEGER(IntKi), PARAMETER :: B1TVyi = 32
- INTEGER(IntKi), PARAMETER :: B1TVzi = 33
- INTEGER(IntKi), PARAMETER :: B1RVxi = 34
- INTEGER(IntKi), PARAMETER :: B1RVyi = 35
- INTEGER(IntKi), PARAMETER :: B1RVzi = 36
- INTEGER(IntKi), PARAMETER :: B1TAxi = 37
- INTEGER(IntKi), PARAMETER :: B1TAyi = 38
- INTEGER(IntKi), PARAMETER :: B1TAzi = 39
- INTEGER(IntKi), PARAMETER :: B1RAxi = 40
- INTEGER(IntKi), PARAMETER :: B1RAyi = 41
- INTEGER(IntKi), PARAMETER :: B1RAzi = 42
- INTEGER(IntKi), PARAMETER :: B2Surge = 43
- INTEGER(IntKi), PARAMETER :: B2Sway = 44
- INTEGER(IntKi), PARAMETER :: B2Heave = 45
- INTEGER(IntKi), PARAMETER :: B2Roll = 46
- INTEGER(IntKi), PARAMETER :: B2Pitch = 47
- INTEGER(IntKi), PARAMETER :: B2Yaw = 48
- INTEGER(IntKi), PARAMETER :: B2TVxi = 49
- INTEGER(IntKi), PARAMETER :: B2TVyi = 50
- INTEGER(IntKi), PARAMETER :: B2TVzi = 51
- INTEGER(IntKi), PARAMETER :: B2RVxi = 52
- INTEGER(IntKi), PARAMETER :: B2RVyi = 53
- INTEGER(IntKi), PARAMETER :: B2RVzi = 54
- INTEGER(IntKi), PARAMETER :: B2TAxi = 55
- INTEGER(IntKi), PARAMETER :: B2TAyi = 56
- INTEGER(IntKi), PARAMETER :: B2TAzi = 57
- INTEGER(IntKi), PARAMETER :: B2RAxi = 58
- INTEGER(IntKi), PARAMETER :: B2RAyi = 59
- INTEGER(IntKi), PARAMETER :: B2RAzi = 60
- INTEGER(IntKi), PARAMETER :: B3Surge = 61
- INTEGER(IntKi), PARAMETER :: B3Sway = 62
- INTEGER(IntKi), PARAMETER :: B3Heave = 63
- INTEGER(IntKi), PARAMETER :: B3Roll = 64
- INTEGER(IntKi), PARAMETER :: B3Pitch = 65
- INTEGER(IntKi), PARAMETER :: B3Yaw = 66
- INTEGER(IntKi), PARAMETER :: B3TVxi = 67
- INTEGER(IntKi), PARAMETER :: B3TVyi = 68
- INTEGER(IntKi), PARAMETER :: B3TVzi = 69
- INTEGER(IntKi), PARAMETER :: B3RVxi = 70
- INTEGER(IntKi), PARAMETER :: B3RVyi = 71
- INTEGER(IntKi), PARAMETER :: B3RVzi = 72
- INTEGER(IntKi), PARAMETER :: B3TAxi = 73
- INTEGER(IntKi), PARAMETER :: B3TAyi = 74
- INTEGER(IntKi), PARAMETER :: B3TAzi = 75
- INTEGER(IntKi), PARAMETER :: B3RAxi = 76
- INTEGER(IntKi), PARAMETER :: B3RAyi = 77
- INTEGER(IntKi), PARAMETER :: B3RAzi = 78
- INTEGER(IntKi), PARAMETER :: B4Surge = 79
- INTEGER(IntKi), PARAMETER :: B4Sway = 80
- INTEGER(IntKi), PARAMETER :: B4Heave = 81
- INTEGER(IntKi), PARAMETER :: B4Roll = 82
- INTEGER(IntKi), PARAMETER :: B4Pitch = 83
- INTEGER(IntKi), PARAMETER :: B4Yaw = 84
- INTEGER(IntKi), PARAMETER :: B4TVxi = 85
- INTEGER(IntKi), PARAMETER :: B4TVyi = 86
- INTEGER(IntKi), PARAMETER :: B4TVzi = 87
- INTEGER(IntKi), PARAMETER :: B4RVxi = 88
- INTEGER(IntKi), PARAMETER :: B4RVyi = 89
- INTEGER(IntKi), PARAMETER :: B4RVzi = 90
- INTEGER(IntKi), PARAMETER :: B4TAxi = 91
- INTEGER(IntKi), PARAMETER :: B4TAyi = 92
- INTEGER(IntKi), PARAMETER :: B4TAzi = 93
- INTEGER(IntKi), PARAMETER :: B4RAxi = 94
- INTEGER(IntKi), PARAMETER :: B4RAyi = 95
- INTEGER(IntKi), PARAMETER :: B4RAzi = 96
- INTEGER(IntKi), PARAMETER :: B5Surge = 97
- INTEGER(IntKi), PARAMETER :: B5Sway = 98
- INTEGER(IntKi), PARAMETER :: B5Heave = 99
- INTEGER(IntKi), PARAMETER :: B5Roll = 100
- INTEGER(IntKi), PARAMETER :: B5Pitch = 101
- INTEGER(IntKi), PARAMETER :: B5Yaw = 102
- INTEGER(IntKi), PARAMETER :: B5TVxi = 103
- INTEGER(IntKi), PARAMETER :: B5TVyi = 104
- INTEGER(IntKi), PARAMETER :: B5TVzi = 105
- INTEGER(IntKi), PARAMETER :: B5RVxi = 106
- INTEGER(IntKi), PARAMETER :: B5RVyi = 107
- INTEGER(IntKi), PARAMETER :: B5RVzi = 108
- INTEGER(IntKi), PARAMETER :: B5TAxi = 109
- INTEGER(IntKi), PARAMETER :: B5TAyi = 110
- INTEGER(IntKi), PARAMETER :: B5TAzi = 111
- INTEGER(IntKi), PARAMETER :: B5RAxi = 112
- INTEGER(IntKi), PARAMETER :: B5RAyi = 113
- INTEGER(IntKi), PARAMETER :: B5RAzi = 114
- INTEGER(IntKi), PARAMETER :: B6Surge = 115
- INTEGER(IntKi), PARAMETER :: B6Sway = 116
- INTEGER(IntKi), PARAMETER :: B6Heave = 117
- INTEGER(IntKi), PARAMETER :: B6Roll = 118
- INTEGER(IntKi), PARAMETER :: B6Pitch = 119
- INTEGER(IntKi), PARAMETER :: B6Yaw = 120
- INTEGER(IntKi), PARAMETER :: B6TVxi = 121
- INTEGER(IntKi), PARAMETER :: B6TVyi = 122
- INTEGER(IntKi), PARAMETER :: B6TVzi = 123
- INTEGER(IntKi), PARAMETER :: B6RVxi = 124
- INTEGER(IntKi), PARAMETER :: B6RVyi = 125
- INTEGER(IntKi), PARAMETER :: B6RVzi = 126
- INTEGER(IntKi), PARAMETER :: B6TAxi = 127
- INTEGER(IntKi), PARAMETER :: B6TAyi = 128
- INTEGER(IntKi), PARAMETER :: B6TAzi = 129
- INTEGER(IntKi), PARAMETER :: B6RAxi = 130
- INTEGER(IntKi), PARAMETER :: B6RAyi = 131
- INTEGER(IntKi), PARAMETER :: B6RAzi = 132
- INTEGER(IntKi), PARAMETER :: B7Surge = 133
- INTEGER(IntKi), PARAMETER :: B7Sway = 134
- INTEGER(IntKi), PARAMETER :: B7Heave = 135
- INTEGER(IntKi), PARAMETER :: B7Roll = 136
- INTEGER(IntKi), PARAMETER :: B7Pitch = 137
- INTEGER(IntKi), PARAMETER :: B7Yaw = 138
- INTEGER(IntKi), PARAMETER :: B7TVxi = 139
- INTEGER(IntKi), PARAMETER :: B7TVyi = 140
- INTEGER(IntKi), PARAMETER :: B7TVzi = 141
- INTEGER(IntKi), PARAMETER :: B7RVxi = 142
- INTEGER(IntKi), PARAMETER :: B7RVyi = 143
- INTEGER(IntKi), PARAMETER :: B7RVzi = 144
- INTEGER(IntKi), PARAMETER :: B7TAxi = 145
- INTEGER(IntKi), PARAMETER :: B7TAyi = 146
- INTEGER(IntKi), PARAMETER :: B7TAzi = 147
- INTEGER(IntKi), PARAMETER :: B7RAxi = 148
- INTEGER(IntKi), PARAMETER :: B7RAyi = 149
- INTEGER(IntKi), PARAMETER :: B7RAzi = 150
- INTEGER(IntKi), PARAMETER :: B8Surge = 151
- INTEGER(IntKi), PARAMETER :: B8Sway = 152
- INTEGER(IntKi), PARAMETER :: B8Heave = 153
- INTEGER(IntKi), PARAMETER :: B8Roll = 154
- INTEGER(IntKi), PARAMETER :: B8Pitch = 155
- INTEGER(IntKi), PARAMETER :: B8Yaw = 156
- INTEGER(IntKi), PARAMETER :: B8TVxi = 157
- INTEGER(IntKi), PARAMETER :: B8TVyi = 158
- INTEGER(IntKi), PARAMETER :: B8TVzi = 159
- INTEGER(IntKi), PARAMETER :: B8RVxi = 160
- INTEGER(IntKi), PARAMETER :: B8RVyi = 161
- INTEGER(IntKi), PARAMETER :: B8RVzi = 162
- INTEGER(IntKi), PARAMETER :: B8TAxi = 163
- INTEGER(IntKi), PARAMETER :: B8TAyi = 164
- INTEGER(IntKi), PARAMETER :: B8TAzi = 165
- INTEGER(IntKi), PARAMETER :: B8RAxi = 166
- INTEGER(IntKi), PARAMETER :: B8RAyi = 167
- INTEGER(IntKi), PARAMETER :: B8RAzi = 168
- INTEGER(IntKi), PARAMETER :: B9Surge = 169
- INTEGER(IntKi), PARAMETER :: B9Sway = 170
- INTEGER(IntKi), PARAMETER :: B9Heave = 171
- INTEGER(IntKi), PARAMETER :: B9Roll = 172
- INTEGER(IntKi), PARAMETER :: B9Pitch = 173
- INTEGER(IntKi), PARAMETER :: B9Yaw = 174
- INTEGER(IntKi), PARAMETER :: B9TVxi = 175
- INTEGER(IntKi), PARAMETER :: B9TVyi = 176
- INTEGER(IntKi), PARAMETER :: B9TVzi = 177
- INTEGER(IntKi), PARAMETER :: B9RVxi = 178
- INTEGER(IntKi), PARAMETER :: B9RVyi = 179
- INTEGER(IntKi), PARAMETER :: B9RVzi = 180
- INTEGER(IntKi), PARAMETER :: B9TAxi = 181
- INTEGER(IntKi), PARAMETER :: B9TAyi = 182
- INTEGER(IntKi), PARAMETER :: B9TAzi = 183
- INTEGER(IntKi), PARAMETER :: B9RAxi = 184
- INTEGER(IntKi), PARAMETER :: B9RAyi = 185
- INTEGER(IntKi), PARAMETER :: B9RAzi = 186
+ INTEGER(IntKi), PARAMETER :: B1Surge = 25
+ INTEGER(IntKi), PARAMETER :: B1Sway = 26
+ INTEGER(IntKi), PARAMETER :: B1Heave = 27
+ INTEGER(IntKi), PARAMETER :: B1Roll = 28
+ INTEGER(IntKi), PARAMETER :: B1Pitch = 29
+ INTEGER(IntKi), PARAMETER :: B1Yaw = 30
+ INTEGER(IntKi), PARAMETER :: B1TVxi = 31
+ INTEGER(IntKi), PARAMETER :: B1TVyi = 32
+ INTEGER(IntKi), PARAMETER :: B1TVzi = 33
+ INTEGER(IntKi), PARAMETER :: B1RVxi = 34
+ INTEGER(IntKi), PARAMETER :: B1RVyi = 35
+ INTEGER(IntKi), PARAMETER :: B1RVzi = 36
+ INTEGER(IntKi), PARAMETER :: B1TAxi = 37
+ INTEGER(IntKi), PARAMETER :: B1TAyi = 38
+ INTEGER(IntKi), PARAMETER :: B1TAzi = 39
+ INTEGER(IntKi), PARAMETER :: B1RAxi = 40
+ INTEGER(IntKi), PARAMETER :: B1RAyi = 41
+ INTEGER(IntKi), PARAMETER :: B1RAzi = 42
+ INTEGER(IntKi), PARAMETER :: B2Surge = 43
+ INTEGER(IntKi), PARAMETER :: B2Sway = 44
+ INTEGER(IntKi), PARAMETER :: B2Heave = 45
+ INTEGER(IntKi), PARAMETER :: B2Roll = 46
+ INTEGER(IntKi), PARAMETER :: B2Pitch = 47
+ INTEGER(IntKi), PARAMETER :: B2Yaw = 48
+ INTEGER(IntKi), PARAMETER :: B2TVxi = 49
+ INTEGER(IntKi), PARAMETER :: B2TVyi = 50
+ INTEGER(IntKi), PARAMETER :: B2TVzi = 51
+ INTEGER(IntKi), PARAMETER :: B2RVxi = 52
+ INTEGER(IntKi), PARAMETER :: B2RVyi = 53
+ INTEGER(IntKi), PARAMETER :: B2RVzi = 54
+ INTEGER(IntKi), PARAMETER :: B2TAxi = 55
+ INTEGER(IntKi), PARAMETER :: B2TAyi = 56
+ INTEGER(IntKi), PARAMETER :: B2TAzi = 57
+ INTEGER(IntKi), PARAMETER :: B2RAxi = 58
+ INTEGER(IntKi), PARAMETER :: B2RAyi = 59
+ INTEGER(IntKi), PARAMETER :: B2RAzi = 60
+ INTEGER(IntKi), PARAMETER :: B3Surge = 61
+ INTEGER(IntKi), PARAMETER :: B3Sway = 62
+ INTEGER(IntKi), PARAMETER :: B3Heave = 63
+ INTEGER(IntKi), PARAMETER :: B3Roll = 64
+ INTEGER(IntKi), PARAMETER :: B3Pitch = 65
+ INTEGER(IntKi), PARAMETER :: B3Yaw = 66
+ INTEGER(IntKi), PARAMETER :: B3TVxi = 67
+ INTEGER(IntKi), PARAMETER :: B3TVyi = 68
+ INTEGER(IntKi), PARAMETER :: B3TVzi = 69
+ INTEGER(IntKi), PARAMETER :: B3RVxi = 70
+ INTEGER(IntKi), PARAMETER :: B3RVyi = 71
+ INTEGER(IntKi), PARAMETER :: B3RVzi = 72
+ INTEGER(IntKi), PARAMETER :: B3TAxi = 73
+ INTEGER(IntKi), PARAMETER :: B3TAyi = 74
+ INTEGER(IntKi), PARAMETER :: B3TAzi = 75
+ INTEGER(IntKi), PARAMETER :: B3RAxi = 76
+ INTEGER(IntKi), PARAMETER :: B3RAyi = 77
+ INTEGER(IntKi), PARAMETER :: B3RAzi = 78
+ INTEGER(IntKi), PARAMETER :: B4Surge = 79
+ INTEGER(IntKi), PARAMETER :: B4Sway = 80
+ INTEGER(IntKi), PARAMETER :: B4Heave = 81
+ INTEGER(IntKi), PARAMETER :: B4Roll = 82
+ INTEGER(IntKi), PARAMETER :: B4Pitch = 83
+ INTEGER(IntKi), PARAMETER :: B4Yaw = 84
+ INTEGER(IntKi), PARAMETER :: B4TVxi = 85
+ INTEGER(IntKi), PARAMETER :: B4TVyi = 86
+ INTEGER(IntKi), PARAMETER :: B4TVzi = 87
+ INTEGER(IntKi), PARAMETER :: B4RVxi = 88
+ INTEGER(IntKi), PARAMETER :: B4RVyi = 89
+ INTEGER(IntKi), PARAMETER :: B4RVzi = 90
+ INTEGER(IntKi), PARAMETER :: B4TAxi = 91
+ INTEGER(IntKi), PARAMETER :: B4TAyi = 92
+ INTEGER(IntKi), PARAMETER :: B4TAzi = 93
+ INTEGER(IntKi), PARAMETER :: B4RAxi = 94
+ INTEGER(IntKi), PARAMETER :: B4RAyi = 95
+ INTEGER(IntKi), PARAMETER :: B4RAzi = 96
+ INTEGER(IntKi), PARAMETER :: B5Surge = 97
+ INTEGER(IntKi), PARAMETER :: B5Sway = 98
+ INTEGER(IntKi), PARAMETER :: B5Heave = 99
+ INTEGER(IntKi), PARAMETER :: B5Roll = 100
+ INTEGER(IntKi), PARAMETER :: B5Pitch = 101
+ INTEGER(IntKi), PARAMETER :: B5Yaw = 102
+ INTEGER(IntKi), PARAMETER :: B5TVxi = 103
+ INTEGER(IntKi), PARAMETER :: B5TVyi = 104
+ INTEGER(IntKi), PARAMETER :: B5TVzi = 105
+ INTEGER(IntKi), PARAMETER :: B5RVxi = 106
+ INTEGER(IntKi), PARAMETER :: B5RVyi = 107
+ INTEGER(IntKi), PARAMETER :: B5RVzi = 108
+ INTEGER(IntKi), PARAMETER :: B5TAxi = 109
+ INTEGER(IntKi), PARAMETER :: B5TAyi = 110
+ INTEGER(IntKi), PARAMETER :: B5TAzi = 111
+ INTEGER(IntKi), PARAMETER :: B5RAxi = 112
+ INTEGER(IntKi), PARAMETER :: B5RAyi = 113
+ INTEGER(IntKi), PARAMETER :: B5RAzi = 114
+ INTEGER(IntKi), PARAMETER :: B6Surge = 115
+ INTEGER(IntKi), PARAMETER :: B6Sway = 116
+ INTEGER(IntKi), PARAMETER :: B6Heave = 117
+ INTEGER(IntKi), PARAMETER :: B6Roll = 118
+ INTEGER(IntKi), PARAMETER :: B6Pitch = 119
+ INTEGER(IntKi), PARAMETER :: B6Yaw = 120
+ INTEGER(IntKi), PARAMETER :: B6TVxi = 121
+ INTEGER(IntKi), PARAMETER :: B6TVyi = 122
+ INTEGER(IntKi), PARAMETER :: B6TVzi = 123
+ INTEGER(IntKi), PARAMETER :: B6RVxi = 124
+ INTEGER(IntKi), PARAMETER :: B6RVyi = 125
+ INTEGER(IntKi), PARAMETER :: B6RVzi = 126
+ INTEGER(IntKi), PARAMETER :: B6TAxi = 127
+ INTEGER(IntKi), PARAMETER :: B6TAyi = 128
+ INTEGER(IntKi), PARAMETER :: B6TAzi = 129
+ INTEGER(IntKi), PARAMETER :: B6RAxi = 130
+ INTEGER(IntKi), PARAMETER :: B6RAyi = 131
+ INTEGER(IntKi), PARAMETER :: B6RAzi = 132
+ INTEGER(IntKi), PARAMETER :: B7Surge = 133
+ INTEGER(IntKi), PARAMETER :: B7Sway = 134
+ INTEGER(IntKi), PARAMETER :: B7Heave = 135
+ INTEGER(IntKi), PARAMETER :: B7Roll = 136
+ INTEGER(IntKi), PARAMETER :: B7Pitch = 137
+ INTEGER(IntKi), PARAMETER :: B7Yaw = 138
+ INTEGER(IntKi), PARAMETER :: B7TVxi = 139
+ INTEGER(IntKi), PARAMETER :: B7TVyi = 140
+ INTEGER(IntKi), PARAMETER :: B7TVzi = 141
+ INTEGER(IntKi), PARAMETER :: B7RVxi = 142
+ INTEGER(IntKi), PARAMETER :: B7RVyi = 143
+ INTEGER(IntKi), PARAMETER :: B7RVzi = 144
+ INTEGER(IntKi), PARAMETER :: B7TAxi = 145
+ INTEGER(IntKi), PARAMETER :: B7TAyi = 146
+ INTEGER(IntKi), PARAMETER :: B7TAzi = 147
+ INTEGER(IntKi), PARAMETER :: B7RAxi = 148
+ INTEGER(IntKi), PARAMETER :: B7RAyi = 149
+ INTEGER(IntKi), PARAMETER :: B7RAzi = 150
+ INTEGER(IntKi), PARAMETER :: B8Surge = 151
+ INTEGER(IntKi), PARAMETER :: B8Sway = 152
+ INTEGER(IntKi), PARAMETER :: B8Heave = 153
+ INTEGER(IntKi), PARAMETER :: B8Roll = 154
+ INTEGER(IntKi), PARAMETER :: B8Pitch = 155
+ INTEGER(IntKi), PARAMETER :: B8Yaw = 156
+ INTEGER(IntKi), PARAMETER :: B8TVxi = 157
+ INTEGER(IntKi), PARAMETER :: B8TVyi = 158
+ INTEGER(IntKi), PARAMETER :: B8TVzi = 159
+ INTEGER(IntKi), PARAMETER :: B8RVxi = 160
+ INTEGER(IntKi), PARAMETER :: B8RVyi = 161
+ INTEGER(IntKi), PARAMETER :: B8RVzi = 162
+ INTEGER(IntKi), PARAMETER :: B8TAxi = 163
+ INTEGER(IntKi), PARAMETER :: B8TAyi = 164
+ INTEGER(IntKi), PARAMETER :: B8TAzi = 165
+ INTEGER(IntKi), PARAMETER :: B8RAxi = 166
+ INTEGER(IntKi), PARAMETER :: B8RAyi = 167
+ INTEGER(IntKi), PARAMETER :: B8RAzi = 168
+ INTEGER(IntKi), PARAMETER :: B9Surge = 169
+ INTEGER(IntKi), PARAMETER :: B9Sway = 170
+ INTEGER(IntKi), PARAMETER :: B9Heave = 171
+ INTEGER(IntKi), PARAMETER :: B9Roll = 172
+ INTEGER(IntKi), PARAMETER :: B9Pitch = 173
+ INTEGER(IntKi), PARAMETER :: B9Yaw = 174
+ INTEGER(IntKi), PARAMETER :: B9TVxi = 175
+ INTEGER(IntKi), PARAMETER :: B9TVyi = 176
+ INTEGER(IntKi), PARAMETER :: B9TVzi = 177
+ INTEGER(IntKi), PARAMETER :: B9RVxi = 178
+ INTEGER(IntKi), PARAMETER :: B9RVyi = 179
+ INTEGER(IntKi), PARAMETER :: B9RVzi = 180
+ INTEGER(IntKi), PARAMETER :: B9TAxi = 181
+ INTEGER(IntKi), PARAMETER :: B9TAyi = 182
+ INTEGER(IntKi), PARAMETER :: B9TAzi = 183
+ INTEGER(IntKi), PARAMETER :: B9RAxi = 184
+ INTEGER(IntKi), PARAMETER :: B9RAyi = 185
+ INTEGER(IntKi), PARAMETER :: B9RAzi = 186
+ INTEGER(IntKi), PARAMETER :: B1ADOF1D = 187
+ INTEGER(IntKi), PARAMETER :: B1ADOF2D = 188
+ INTEGER(IntKi), PARAMETER :: B1ADOF3D = 189
+ INTEGER(IntKi), PARAMETER :: B1ADOF4D = 190
+ INTEGER(IntKi), PARAMETER :: B1ADOF5D = 191
+ INTEGER(IntKi), PARAMETER :: B1ADOF6D = 192
+ INTEGER(IntKi), PARAMETER :: B1ADOF7D = 193
+ INTEGER(IntKi), PARAMETER :: B1ADOF8D = 194
+ INTEGER(IntKi), PARAMETER :: B1ADOF9D = 195
+ INTEGER(IntKi), PARAMETER :: B1ADOF10D = 196
+ INTEGER(IntKi), PARAMETER :: B1ADOF11D = 197
+ INTEGER(IntKi), PARAMETER :: B1ADOF12D = 198
+ INTEGER(IntKi), PARAMETER :: B1ADOF13D = 199
+ INTEGER(IntKi), PARAMETER :: B1ADOF14D = 200
+ INTEGER(IntKi), PARAMETER :: B1ADOF15D = 201
+ INTEGER(IntKi), PARAMETER :: B1ADOF16D = 202
+ INTEGER(IntKi), PARAMETER :: B1ADOF17D = 203
+ INTEGER(IntKi), PARAMETER :: B1ADOF18D = 204
+ INTEGER(IntKi), PARAMETER :: B1ADOF19D = 205
+ INTEGER(IntKi), PARAMETER :: B1ADOF20D = 206
+ INTEGER(IntKi), PARAMETER :: B1ADOF21D = 207
+ INTEGER(IntKi), PARAMETER :: B1ADOF22D = 208
+ INTEGER(IntKi), PARAMETER :: B1ADOF23D = 209
+ INTEGER(IntKi), PARAMETER :: B1ADOF24D = 210
+ INTEGER(IntKi), PARAMETER :: B1ADOF25D = 211
+ INTEGER(IntKi), PARAMETER :: B1ADOF26D = 212
+ INTEGER(IntKi), PARAMETER :: B1ADOF27D = 213
+ INTEGER(IntKi), PARAMETER :: B1ADOF28D = 214
+ INTEGER(IntKi), PARAMETER :: B1ADOF29D = 215
+ INTEGER(IntKi), PARAMETER :: B1ADOF30D = 216
+ INTEGER(IntKi), PARAMETER :: B1ADOF31D = 217
+ INTEGER(IntKi), PARAMETER :: B1ADOF32D = 218
+ INTEGER(IntKi), PARAMETER :: B1ADOF33D = 219
+ INTEGER(IntKi), PARAMETER :: B1ADOF34D = 220
+ INTEGER(IntKi), PARAMETER :: B1ADOF35D = 221
+ INTEGER(IntKi), PARAMETER :: B1ADOF36D = 222
+ INTEGER(IntKi), PARAMETER :: B1ADOF37D = 223
+ INTEGER(IntKi), PARAMETER :: B1ADOF38D = 224
+ INTEGER(IntKi), PARAMETER :: B1ADOF39D = 225
+ INTEGER(IntKi), PARAMETER :: B1ADOF40D = 226
+ INTEGER(IntKi), PARAMETER :: B1ADOF41D = 227
+ INTEGER(IntKi), PARAMETER :: B1ADOF42D = 228
+ INTEGER(IntKi), PARAMETER :: B1ADOF43D = 229
+ INTEGER(IntKi), PARAMETER :: B1ADOF44D = 230
+ INTEGER(IntKi), PARAMETER :: B1ADOF45D = 231
+ INTEGER(IntKi), PARAMETER :: B1ADOF46D = 232
+ INTEGER(IntKi), PARAMETER :: B1ADOF47D = 233
+ INTEGER(IntKi), PARAMETER :: B1ADOF48D = 234
+ INTEGER(IntKi), PARAMETER :: B1ADOF49D = 235
+ INTEGER(IntKi), PARAMETER :: B1ADOF50D = 236
+ INTEGER(IntKi), PARAMETER :: B1ADOF51D = 237
+ INTEGER(IntKi), PARAMETER :: B1ADOF52D = 238
+ INTEGER(IntKi), PARAMETER :: B1ADOF53D = 239
+ INTEGER(IntKi), PARAMETER :: B1ADOF54D = 240
+ INTEGER(IntKi), PARAMETER :: B1ADOF55D = 241
+ INTEGER(IntKi), PARAMETER :: B1ADOF56D = 242
+ INTEGER(IntKi), PARAMETER :: B1ADOF57D = 243
+ INTEGER(IntKi), PARAMETER :: B1ADOF58D = 244
+ INTEGER(IntKi), PARAMETER :: B1ADOF59D = 245
+ INTEGER(IntKi), PARAMETER :: B1ADOF60D = 246
+ INTEGER(IntKi), PARAMETER :: B1ADOF61D = 247
+ INTEGER(IntKi), PARAMETER :: B1ADOF62D = 248
+ INTEGER(IntKi), PARAMETER :: B1ADOF63D = 249
+ INTEGER(IntKi), PARAMETER :: B1ADOF64D = 250
+ INTEGER(IntKi), PARAMETER :: B1ADOF65D = 251
+ INTEGER(IntKi), PARAMETER :: B1ADOF66D = 252
+ INTEGER(IntKi), PARAMETER :: B1ADOF67D = 253
+ INTEGER(IntKi), PARAMETER :: B1ADOF68D = 254
+ INTEGER(IntKi), PARAMETER :: B1ADOF69D = 255
+ INTEGER(IntKi), PARAMETER :: B1ADOF70D = 256
+ INTEGER(IntKi), PARAMETER :: B1ADOF71D = 257
+ INTEGER(IntKi), PARAMETER :: B1ADOF72D = 258
+ INTEGER(IntKi), PARAMETER :: B1ADOF73D = 259
+ INTEGER(IntKi), PARAMETER :: B1ADOF74D = 260
+ INTEGER(IntKi), PARAMETER :: B1ADOF75D = 261
+ INTEGER(IntKi), PARAMETER :: B1ADOF76D = 262
+ INTEGER(IntKi), PARAMETER :: B1ADOF77D = 263
+ INTEGER(IntKi), PARAMETER :: B1ADOF78D = 264
+ INTEGER(IntKi), PARAMETER :: B1ADOF79D = 265
+ INTEGER(IntKi), PARAMETER :: B1ADOF80D = 266
+ INTEGER(IntKi), PARAMETER :: B1ADOF81D = 267
+ INTEGER(IntKi), PARAMETER :: B1ADOF82D = 268
+ INTEGER(IntKi), PARAMETER :: B1ADOF83D = 269
+ INTEGER(IntKi), PARAMETER :: B1ADOF84D = 270
+ INTEGER(IntKi), PARAMETER :: B1ADOF85D = 271
+ INTEGER(IntKi), PARAMETER :: B1ADOF86D = 272
+ INTEGER(IntKi), PARAMETER :: B1ADOF87D = 273
+ INTEGER(IntKi), PARAMETER :: B1ADOF88D = 274
+ INTEGER(IntKi), PARAMETER :: B1ADOF89D = 275
+ INTEGER(IntKi), PARAMETER :: B1ADOF90D = 276
+ INTEGER(IntKi), PARAMETER :: B1ADOF91D = 277
+ INTEGER(IntKi), PARAMETER :: B1ADOF92D = 278
+ INTEGER(IntKi), PARAMETER :: B1ADOF93D = 279
+ INTEGER(IntKi), PARAMETER :: B1ADOF94D = 280
+ INTEGER(IntKi), PARAMETER :: B1ADOF95D = 281
+ INTEGER(IntKi), PARAMETER :: B1ADOF96D = 282
+ INTEGER(IntKi), PARAMETER :: B1ADOF97D = 283
+ INTEGER(IntKi), PARAMETER :: B1ADOF98D = 284
+ INTEGER(IntKi), PARAMETER :: B1ADOF99D = 285
+ INTEGER(IntKi), PARAMETER :: B2ADOF1D = 286
+ INTEGER(IntKi), PARAMETER :: B2ADOF2D = 287
+ INTEGER(IntKi), PARAMETER :: B2ADOF3D = 288
+ INTEGER(IntKi), PARAMETER :: B2ADOF4D = 289
+ INTEGER(IntKi), PARAMETER :: B2ADOF5D = 290
+ INTEGER(IntKi), PARAMETER :: B2ADOF6D = 291
+ INTEGER(IntKi), PARAMETER :: B2ADOF7D = 292
+ INTEGER(IntKi), PARAMETER :: B2ADOF8D = 293
+ INTEGER(IntKi), PARAMETER :: B2ADOF9D = 294
+ INTEGER(IntKi), PARAMETER :: B2ADOF10D = 295
+ INTEGER(IntKi), PARAMETER :: B2ADOF11D = 296
+ INTEGER(IntKi), PARAMETER :: B2ADOF12D = 297
+ INTEGER(IntKi), PARAMETER :: B2ADOF13D = 298
+ INTEGER(IntKi), PARAMETER :: B2ADOF14D = 299
+ INTEGER(IntKi), PARAMETER :: B2ADOF15D = 300
+ INTEGER(IntKi), PARAMETER :: B2ADOF16D = 301
+ INTEGER(IntKi), PARAMETER :: B2ADOF17D = 302
+ INTEGER(IntKi), PARAMETER :: B2ADOF18D = 303
+ INTEGER(IntKi), PARAMETER :: B2ADOF19D = 304
+ INTEGER(IntKi), PARAMETER :: B2ADOF20D = 305
+ INTEGER(IntKi), PARAMETER :: B2ADOF21D = 306
+ INTEGER(IntKi), PARAMETER :: B2ADOF22D = 307
+ INTEGER(IntKi), PARAMETER :: B2ADOF23D = 308
+ INTEGER(IntKi), PARAMETER :: B2ADOF24D = 309
+ INTEGER(IntKi), PARAMETER :: B2ADOF25D = 310
+ INTEGER(IntKi), PARAMETER :: B2ADOF26D = 311
+ INTEGER(IntKi), PARAMETER :: B2ADOF27D = 312
+ INTEGER(IntKi), PARAMETER :: B2ADOF28D = 313
+ INTEGER(IntKi), PARAMETER :: B2ADOF29D = 314
+ INTEGER(IntKi), PARAMETER :: B2ADOF30D = 315
+ INTEGER(IntKi), PARAMETER :: B2ADOF31D = 316
+ INTEGER(IntKi), PARAMETER :: B2ADOF32D = 317
+ INTEGER(IntKi), PARAMETER :: B2ADOF33D = 318
+ INTEGER(IntKi), PARAMETER :: B2ADOF34D = 319
+ INTEGER(IntKi), PARAMETER :: B2ADOF35D = 320
+ INTEGER(IntKi), PARAMETER :: B2ADOF36D = 321
+ INTEGER(IntKi), PARAMETER :: B2ADOF37D = 322
+ INTEGER(IntKi), PARAMETER :: B2ADOF38D = 323
+ INTEGER(IntKi), PARAMETER :: B2ADOF39D = 324
+ INTEGER(IntKi), PARAMETER :: B2ADOF40D = 325
+ INTEGER(IntKi), PARAMETER :: B2ADOF41D = 326
+ INTEGER(IntKi), PARAMETER :: B2ADOF42D = 327
+ INTEGER(IntKi), PARAMETER :: B2ADOF43D = 328
+ INTEGER(IntKi), PARAMETER :: B2ADOF44D = 329
+ INTEGER(IntKi), PARAMETER :: B2ADOF45D = 330
+ INTEGER(IntKi), PARAMETER :: B2ADOF46D = 331
+ INTEGER(IntKi), PARAMETER :: B2ADOF47D = 332
+ INTEGER(IntKi), PARAMETER :: B2ADOF48D = 333
+ INTEGER(IntKi), PARAMETER :: B2ADOF49D = 334
+ INTEGER(IntKi), PARAMETER :: B2ADOF50D = 335
+ INTEGER(IntKi), PARAMETER :: B2ADOF51D = 336
+ INTEGER(IntKi), PARAMETER :: B2ADOF52D = 337
+ INTEGER(IntKi), PARAMETER :: B2ADOF53D = 338
+ INTEGER(IntKi), PARAMETER :: B2ADOF54D = 339
+ INTEGER(IntKi), PARAMETER :: B2ADOF55D = 340
+ INTEGER(IntKi), PARAMETER :: B2ADOF56D = 341
+ INTEGER(IntKi), PARAMETER :: B2ADOF57D = 342
+ INTEGER(IntKi), PARAMETER :: B2ADOF58D = 343
+ INTEGER(IntKi), PARAMETER :: B2ADOF59D = 344
+ INTEGER(IntKi), PARAMETER :: B2ADOF60D = 345
+ INTEGER(IntKi), PARAMETER :: B2ADOF61D = 346
+ INTEGER(IntKi), PARAMETER :: B2ADOF62D = 347
+ INTEGER(IntKi), PARAMETER :: B2ADOF63D = 348
+ INTEGER(IntKi), PARAMETER :: B2ADOF64D = 349
+ INTEGER(IntKi), PARAMETER :: B2ADOF65D = 350
+ INTEGER(IntKi), PARAMETER :: B2ADOF66D = 351
+ INTEGER(IntKi), PARAMETER :: B2ADOF67D = 352
+ INTEGER(IntKi), PARAMETER :: B2ADOF68D = 353
+ INTEGER(IntKi), PARAMETER :: B2ADOF69D = 354
+ INTEGER(IntKi), PARAMETER :: B2ADOF70D = 355
+ INTEGER(IntKi), PARAMETER :: B2ADOF71D = 356
+ INTEGER(IntKi), PARAMETER :: B2ADOF72D = 357
+ INTEGER(IntKi), PARAMETER :: B2ADOF73D = 358
+ INTEGER(IntKi), PARAMETER :: B2ADOF74D = 359
+ INTEGER(IntKi), PARAMETER :: B2ADOF75D = 360
+ INTEGER(IntKi), PARAMETER :: B2ADOF76D = 361
+ INTEGER(IntKi), PARAMETER :: B2ADOF77D = 362
+ INTEGER(IntKi), PARAMETER :: B2ADOF78D = 363
+ INTEGER(IntKi), PARAMETER :: B2ADOF79D = 364
+ INTEGER(IntKi), PARAMETER :: B2ADOF80D = 365
+ INTEGER(IntKi), PARAMETER :: B2ADOF81D = 366
+ INTEGER(IntKi), PARAMETER :: B2ADOF82D = 367
+ INTEGER(IntKi), PARAMETER :: B2ADOF83D = 368
+ INTEGER(IntKi), PARAMETER :: B2ADOF84D = 369
+ INTEGER(IntKi), PARAMETER :: B2ADOF85D = 370
+ INTEGER(IntKi), PARAMETER :: B2ADOF86D = 371
+ INTEGER(IntKi), PARAMETER :: B2ADOF87D = 372
+ INTEGER(IntKi), PARAMETER :: B2ADOF88D = 373
+ INTEGER(IntKi), PARAMETER :: B2ADOF89D = 374
+ INTEGER(IntKi), PARAMETER :: B2ADOF90D = 375
+ INTEGER(IntKi), PARAMETER :: B2ADOF91D = 376
+ INTEGER(IntKi), PARAMETER :: B2ADOF92D = 377
+ INTEGER(IntKi), PARAMETER :: B2ADOF93D = 378
+ INTEGER(IntKi), PARAMETER :: B2ADOF94D = 379
+ INTEGER(IntKi), PARAMETER :: B2ADOF95D = 380
+ INTEGER(IntKi), PARAMETER :: B2ADOF96D = 381
+ INTEGER(IntKi), PARAMETER :: B2ADOF97D = 382
+ INTEGER(IntKi), PARAMETER :: B2ADOF98D = 383
+ INTEGER(IntKi), PARAMETER :: B2ADOF99D = 384
+ INTEGER(IntKi), PARAMETER :: B3ADOF1D = 385
+ INTEGER(IntKi), PARAMETER :: B3ADOF2D = 386
+ INTEGER(IntKi), PARAMETER :: B3ADOF3D = 387
+ INTEGER(IntKi), PARAMETER :: B3ADOF4D = 388
+ INTEGER(IntKi), PARAMETER :: B3ADOF5D = 389
+ INTEGER(IntKi), PARAMETER :: B3ADOF6D = 390
+ INTEGER(IntKi), PARAMETER :: B3ADOF7D = 391
+ INTEGER(IntKi), PARAMETER :: B3ADOF8D = 392
+ INTEGER(IntKi), PARAMETER :: B3ADOF9D = 393
+ INTEGER(IntKi), PARAMETER :: B3ADOF10D = 394
+ INTEGER(IntKi), PARAMETER :: B3ADOF11D = 395
+ INTEGER(IntKi), PARAMETER :: B3ADOF12D = 396
+ INTEGER(IntKi), PARAMETER :: B3ADOF13D = 397
+ INTEGER(IntKi), PARAMETER :: B3ADOF14D = 398
+ INTEGER(IntKi), PARAMETER :: B3ADOF15D = 399
+ INTEGER(IntKi), PARAMETER :: B3ADOF16D = 400
+ INTEGER(IntKi), PARAMETER :: B3ADOF17D = 401
+ INTEGER(IntKi), PARAMETER :: B3ADOF18D = 402
+ INTEGER(IntKi), PARAMETER :: B3ADOF19D = 403
+ INTEGER(IntKi), PARAMETER :: B3ADOF20D = 404
+ INTEGER(IntKi), PARAMETER :: B3ADOF21D = 405
+ INTEGER(IntKi), PARAMETER :: B3ADOF22D = 406
+ INTEGER(IntKi), PARAMETER :: B3ADOF23D = 407
+ INTEGER(IntKi), PARAMETER :: B3ADOF24D = 408
+ INTEGER(IntKi), PARAMETER :: B3ADOF25D = 409
+ INTEGER(IntKi), PARAMETER :: B3ADOF26D = 410
+ INTEGER(IntKi), PARAMETER :: B3ADOF27D = 411
+ INTEGER(IntKi), PARAMETER :: B3ADOF28D = 412
+ INTEGER(IntKi), PARAMETER :: B3ADOF29D = 413
+ INTEGER(IntKi), PARAMETER :: B3ADOF30D = 414
+ INTEGER(IntKi), PARAMETER :: B3ADOF31D = 415
+ INTEGER(IntKi), PARAMETER :: B3ADOF32D = 416
+ INTEGER(IntKi), PARAMETER :: B3ADOF33D = 417
+ INTEGER(IntKi), PARAMETER :: B3ADOF34D = 418
+ INTEGER(IntKi), PARAMETER :: B3ADOF35D = 419
+ INTEGER(IntKi), PARAMETER :: B3ADOF36D = 420
+ INTEGER(IntKi), PARAMETER :: B3ADOF37D = 421
+ INTEGER(IntKi), PARAMETER :: B3ADOF38D = 422
+ INTEGER(IntKi), PARAMETER :: B3ADOF39D = 423
+ INTEGER(IntKi), PARAMETER :: B3ADOF40D = 424
+ INTEGER(IntKi), PARAMETER :: B3ADOF41D = 425
+ INTEGER(IntKi), PARAMETER :: B3ADOF42D = 426
+ INTEGER(IntKi), PARAMETER :: B3ADOF43D = 427
+ INTEGER(IntKi), PARAMETER :: B3ADOF44D = 428
+ INTEGER(IntKi), PARAMETER :: B3ADOF45D = 429
+ INTEGER(IntKi), PARAMETER :: B3ADOF46D = 430
+ INTEGER(IntKi), PARAMETER :: B3ADOF47D = 431
+ INTEGER(IntKi), PARAMETER :: B3ADOF48D = 432
+ INTEGER(IntKi), PARAMETER :: B3ADOF49D = 433
+ INTEGER(IntKi), PARAMETER :: B3ADOF50D = 434
+ INTEGER(IntKi), PARAMETER :: B3ADOF51D = 435
+ INTEGER(IntKi), PARAMETER :: B3ADOF52D = 436
+ INTEGER(IntKi), PARAMETER :: B3ADOF53D = 437
+ INTEGER(IntKi), PARAMETER :: B3ADOF54D = 438
+ INTEGER(IntKi), PARAMETER :: B3ADOF55D = 439
+ INTEGER(IntKi), PARAMETER :: B3ADOF56D = 440
+ INTEGER(IntKi), PARAMETER :: B3ADOF57D = 441
+ INTEGER(IntKi), PARAMETER :: B3ADOF58D = 442
+ INTEGER(IntKi), PARAMETER :: B3ADOF59D = 443
+ INTEGER(IntKi), PARAMETER :: B3ADOF60D = 444
+ INTEGER(IntKi), PARAMETER :: B3ADOF61D = 445
+ INTEGER(IntKi), PARAMETER :: B3ADOF62D = 446
+ INTEGER(IntKi), PARAMETER :: B3ADOF63D = 447
+ INTEGER(IntKi), PARAMETER :: B3ADOF64D = 448
+ INTEGER(IntKi), PARAMETER :: B3ADOF65D = 449
+ INTEGER(IntKi), PARAMETER :: B3ADOF66D = 450
+ INTEGER(IntKi), PARAMETER :: B3ADOF67D = 451
+ INTEGER(IntKi), PARAMETER :: B3ADOF68D = 452
+ INTEGER(IntKi), PARAMETER :: B3ADOF69D = 453
+ INTEGER(IntKi), PARAMETER :: B3ADOF70D = 454
+ INTEGER(IntKi), PARAMETER :: B3ADOF71D = 455
+ INTEGER(IntKi), PARAMETER :: B3ADOF72D = 456
+ INTEGER(IntKi), PARAMETER :: B3ADOF73D = 457
+ INTEGER(IntKi), PARAMETER :: B3ADOF74D = 458
+ INTEGER(IntKi), PARAMETER :: B3ADOF75D = 459
+ INTEGER(IntKi), PARAMETER :: B3ADOF76D = 460
+ INTEGER(IntKi), PARAMETER :: B3ADOF77D = 461
+ INTEGER(IntKi), PARAMETER :: B3ADOF78D = 462
+ INTEGER(IntKi), PARAMETER :: B3ADOF79D = 463
+ INTEGER(IntKi), PARAMETER :: B3ADOF80D = 464
+ INTEGER(IntKi), PARAMETER :: B3ADOF81D = 465
+ INTEGER(IntKi), PARAMETER :: B3ADOF82D = 466
+ INTEGER(IntKi), PARAMETER :: B3ADOF83D = 467
+ INTEGER(IntKi), PARAMETER :: B3ADOF84D = 468
+ INTEGER(IntKi), PARAMETER :: B3ADOF85D = 469
+ INTEGER(IntKi), PARAMETER :: B3ADOF86D = 470
+ INTEGER(IntKi), PARAMETER :: B3ADOF87D = 471
+ INTEGER(IntKi), PARAMETER :: B3ADOF88D = 472
+ INTEGER(IntKi), PARAMETER :: B3ADOF89D = 473
+ INTEGER(IntKi), PARAMETER :: B3ADOF90D = 474
+ INTEGER(IntKi), PARAMETER :: B3ADOF91D = 475
+ INTEGER(IntKi), PARAMETER :: B3ADOF92D = 476
+ INTEGER(IntKi), PARAMETER :: B3ADOF93D = 477
+ INTEGER(IntKi), PARAMETER :: B3ADOF94D = 478
+ INTEGER(IntKi), PARAMETER :: B3ADOF95D = 479
+ INTEGER(IntKi), PARAMETER :: B3ADOF96D = 480
+ INTEGER(IntKi), PARAMETER :: B3ADOF97D = 481
+ INTEGER(IntKi), PARAMETER :: B3ADOF98D = 482
+ INTEGER(IntKi), PARAMETER :: B3ADOF99D = 483
+ INTEGER(IntKi), PARAMETER :: B4ADOF1D = 484
+ INTEGER(IntKi), PARAMETER :: B4ADOF2D = 485
+ INTEGER(IntKi), PARAMETER :: B4ADOF3D = 486
+ INTEGER(IntKi), PARAMETER :: B4ADOF4D = 487
+ INTEGER(IntKi), PARAMETER :: B4ADOF5D = 488
+ INTEGER(IntKi), PARAMETER :: B4ADOF6D = 489
+ INTEGER(IntKi), PARAMETER :: B4ADOF7D = 490
+ INTEGER(IntKi), PARAMETER :: B4ADOF8D = 491
+ INTEGER(IntKi), PARAMETER :: B4ADOF9D = 492
+ INTEGER(IntKi), PARAMETER :: B4ADOF10D = 493
+ INTEGER(IntKi), PARAMETER :: B4ADOF11D = 494
+ INTEGER(IntKi), PARAMETER :: B4ADOF12D = 495
+ INTEGER(IntKi), PARAMETER :: B4ADOF13D = 496
+ INTEGER(IntKi), PARAMETER :: B4ADOF14D = 497
+ INTEGER(IntKi), PARAMETER :: B4ADOF15D = 498
+ INTEGER(IntKi), PARAMETER :: B4ADOF16D = 499
+ INTEGER(IntKi), PARAMETER :: B4ADOF17D = 500
+ INTEGER(IntKi), PARAMETER :: B4ADOF18D = 501
+ INTEGER(IntKi), PARAMETER :: B4ADOF19D = 502
+ INTEGER(IntKi), PARAMETER :: B4ADOF20D = 503
+ INTEGER(IntKi), PARAMETER :: B4ADOF21D = 504
+ INTEGER(IntKi), PARAMETER :: B4ADOF22D = 505
+ INTEGER(IntKi), PARAMETER :: B4ADOF23D = 506
+ INTEGER(IntKi), PARAMETER :: B4ADOF24D = 507
+ INTEGER(IntKi), PARAMETER :: B4ADOF25D = 508
+ INTEGER(IntKi), PARAMETER :: B4ADOF26D = 509
+ INTEGER(IntKi), PARAMETER :: B4ADOF27D = 510
+ INTEGER(IntKi), PARAMETER :: B4ADOF28D = 511
+ INTEGER(IntKi), PARAMETER :: B4ADOF29D = 512
+ INTEGER(IntKi), PARAMETER :: B4ADOF30D = 513
+ INTEGER(IntKi), PARAMETER :: B4ADOF31D = 514
+ INTEGER(IntKi), PARAMETER :: B4ADOF32D = 515
+ INTEGER(IntKi), PARAMETER :: B4ADOF33D = 516
+ INTEGER(IntKi), PARAMETER :: B4ADOF34D = 517
+ INTEGER(IntKi), PARAMETER :: B4ADOF35D = 518
+ INTEGER(IntKi), PARAMETER :: B4ADOF36D = 519
+ INTEGER(IntKi), PARAMETER :: B4ADOF37D = 520
+ INTEGER(IntKi), PARAMETER :: B4ADOF38D = 521
+ INTEGER(IntKi), PARAMETER :: B4ADOF39D = 522
+ INTEGER(IntKi), PARAMETER :: B4ADOF40D = 523
+ INTEGER(IntKi), PARAMETER :: B4ADOF41D = 524
+ INTEGER(IntKi), PARAMETER :: B4ADOF42D = 525
+ INTEGER(IntKi), PARAMETER :: B4ADOF43D = 526
+ INTEGER(IntKi), PARAMETER :: B4ADOF44D = 527
+ INTEGER(IntKi), PARAMETER :: B4ADOF45D = 528
+ INTEGER(IntKi), PARAMETER :: B4ADOF46D = 529
+ INTEGER(IntKi), PARAMETER :: B4ADOF47D = 530
+ INTEGER(IntKi), PARAMETER :: B4ADOF48D = 531
+ INTEGER(IntKi), PARAMETER :: B4ADOF49D = 532
+ INTEGER(IntKi), PARAMETER :: B4ADOF50D = 533
+ INTEGER(IntKi), PARAMETER :: B4ADOF51D = 534
+ INTEGER(IntKi), PARAMETER :: B4ADOF52D = 535
+ INTEGER(IntKi), PARAMETER :: B4ADOF53D = 536
+ INTEGER(IntKi), PARAMETER :: B4ADOF54D = 537
+ INTEGER(IntKi), PARAMETER :: B4ADOF55D = 538
+ INTEGER(IntKi), PARAMETER :: B4ADOF56D = 539
+ INTEGER(IntKi), PARAMETER :: B4ADOF57D = 540
+ INTEGER(IntKi), PARAMETER :: B4ADOF58D = 541
+ INTEGER(IntKi), PARAMETER :: B4ADOF59D = 542
+ INTEGER(IntKi), PARAMETER :: B4ADOF60D = 543
+ INTEGER(IntKi), PARAMETER :: B4ADOF61D = 544
+ INTEGER(IntKi), PARAMETER :: B4ADOF62D = 545
+ INTEGER(IntKi), PARAMETER :: B4ADOF63D = 546
+ INTEGER(IntKi), PARAMETER :: B4ADOF64D = 547
+ INTEGER(IntKi), PARAMETER :: B4ADOF65D = 548
+ INTEGER(IntKi), PARAMETER :: B4ADOF66D = 549
+ INTEGER(IntKi), PARAMETER :: B4ADOF67D = 550
+ INTEGER(IntKi), PARAMETER :: B4ADOF68D = 551
+ INTEGER(IntKi), PARAMETER :: B4ADOF69D = 552
+ INTEGER(IntKi), PARAMETER :: B4ADOF70D = 553
+ INTEGER(IntKi), PARAMETER :: B4ADOF71D = 554
+ INTEGER(IntKi), PARAMETER :: B4ADOF72D = 555
+ INTEGER(IntKi), PARAMETER :: B4ADOF73D = 556
+ INTEGER(IntKi), PARAMETER :: B4ADOF74D = 557
+ INTEGER(IntKi), PARAMETER :: B4ADOF75D = 558
+ INTEGER(IntKi), PARAMETER :: B4ADOF76D = 559
+ INTEGER(IntKi), PARAMETER :: B4ADOF77D = 560
+ INTEGER(IntKi), PARAMETER :: B4ADOF78D = 561
+ INTEGER(IntKi), PARAMETER :: B4ADOF79D = 562
+ INTEGER(IntKi), PARAMETER :: B4ADOF80D = 563
+ INTEGER(IntKi), PARAMETER :: B4ADOF81D = 564
+ INTEGER(IntKi), PARAMETER :: B4ADOF82D = 565
+ INTEGER(IntKi), PARAMETER :: B4ADOF83D = 566
+ INTEGER(IntKi), PARAMETER :: B4ADOF84D = 567
+ INTEGER(IntKi), PARAMETER :: B4ADOF85D = 568
+ INTEGER(IntKi), PARAMETER :: B4ADOF86D = 569
+ INTEGER(IntKi), PARAMETER :: B4ADOF87D = 570
+ INTEGER(IntKi), PARAMETER :: B4ADOF88D = 571
+ INTEGER(IntKi), PARAMETER :: B4ADOF89D = 572
+ INTEGER(IntKi), PARAMETER :: B4ADOF90D = 573
+ INTEGER(IntKi), PARAMETER :: B4ADOF91D = 574
+ INTEGER(IntKi), PARAMETER :: B4ADOF92D = 575
+ INTEGER(IntKi), PARAMETER :: B4ADOF93D = 576
+ INTEGER(IntKi), PARAMETER :: B4ADOF94D = 577
+ INTEGER(IntKi), PARAMETER :: B4ADOF95D = 578
+ INTEGER(IntKi), PARAMETER :: B4ADOF96D = 579
+ INTEGER(IntKi), PARAMETER :: B4ADOF97D = 580
+ INTEGER(IntKi), PARAMETER :: B4ADOF98D = 581
+ INTEGER(IntKi), PARAMETER :: B4ADOF99D = 582
+ INTEGER(IntKi), PARAMETER :: B5ADOF1D = 583
+ INTEGER(IntKi), PARAMETER :: B5ADOF2D = 584
+ INTEGER(IntKi), PARAMETER :: B5ADOF3D = 585
+ INTEGER(IntKi), PARAMETER :: B5ADOF4D = 586
+ INTEGER(IntKi), PARAMETER :: B5ADOF5D = 587
+ INTEGER(IntKi), PARAMETER :: B5ADOF6D = 588
+ INTEGER(IntKi), PARAMETER :: B5ADOF7D = 589
+ INTEGER(IntKi), PARAMETER :: B5ADOF8D = 590
+ INTEGER(IntKi), PARAMETER :: B5ADOF9D = 591
+ INTEGER(IntKi), PARAMETER :: B5ADOF10D = 592
+ INTEGER(IntKi), PARAMETER :: B5ADOF11D = 593
+ INTEGER(IntKi), PARAMETER :: B5ADOF12D = 594
+ INTEGER(IntKi), PARAMETER :: B5ADOF13D = 595
+ INTEGER(IntKi), PARAMETER :: B5ADOF14D = 596
+ INTEGER(IntKi), PARAMETER :: B5ADOF15D = 597
+ INTEGER(IntKi), PARAMETER :: B5ADOF16D = 598
+ INTEGER(IntKi), PARAMETER :: B5ADOF17D = 599
+ INTEGER(IntKi), PARAMETER :: B5ADOF18D = 600
+ INTEGER(IntKi), PARAMETER :: B5ADOF19D = 601
+ INTEGER(IntKi), PARAMETER :: B5ADOF20D = 602
+ INTEGER(IntKi), PARAMETER :: B5ADOF21D = 603
+ INTEGER(IntKi), PARAMETER :: B5ADOF22D = 604
+ INTEGER(IntKi), PARAMETER :: B5ADOF23D = 605
+ INTEGER(IntKi), PARAMETER :: B5ADOF24D = 606
+ INTEGER(IntKi), PARAMETER :: B5ADOF25D = 607
+ INTEGER(IntKi), PARAMETER :: B5ADOF26D = 608
+ INTEGER(IntKi), PARAMETER :: B5ADOF27D = 609
+ INTEGER(IntKi), PARAMETER :: B5ADOF28D = 610
+ INTEGER(IntKi), PARAMETER :: B5ADOF29D = 611
+ INTEGER(IntKi), PARAMETER :: B5ADOF30D = 612
+ INTEGER(IntKi), PARAMETER :: B5ADOF31D = 613
+ INTEGER(IntKi), PARAMETER :: B5ADOF32D = 614
+ INTEGER(IntKi), PARAMETER :: B5ADOF33D = 615
+ INTEGER(IntKi), PARAMETER :: B5ADOF34D = 616
+ INTEGER(IntKi), PARAMETER :: B5ADOF35D = 617
+ INTEGER(IntKi), PARAMETER :: B5ADOF36D = 618
+ INTEGER(IntKi), PARAMETER :: B5ADOF37D = 619
+ INTEGER(IntKi), PARAMETER :: B5ADOF38D = 620
+ INTEGER(IntKi), PARAMETER :: B5ADOF39D = 621
+ INTEGER(IntKi), PARAMETER :: B5ADOF40D = 622
+ INTEGER(IntKi), PARAMETER :: B5ADOF41D = 623
+ INTEGER(IntKi), PARAMETER :: B5ADOF42D = 624
+ INTEGER(IntKi), PARAMETER :: B5ADOF43D = 625
+ INTEGER(IntKi), PARAMETER :: B5ADOF44D = 626
+ INTEGER(IntKi), PARAMETER :: B5ADOF45D = 627
+ INTEGER(IntKi), PARAMETER :: B5ADOF46D = 628
+ INTEGER(IntKi), PARAMETER :: B5ADOF47D = 629
+ INTEGER(IntKi), PARAMETER :: B5ADOF48D = 630
+ INTEGER(IntKi), PARAMETER :: B5ADOF49D = 631
+ INTEGER(IntKi), PARAMETER :: B5ADOF50D = 632
+ INTEGER(IntKi), PARAMETER :: B5ADOF51D = 633
+ INTEGER(IntKi), PARAMETER :: B5ADOF52D = 634
+ INTEGER(IntKi), PARAMETER :: B5ADOF53D = 635
+ INTEGER(IntKi), PARAMETER :: B5ADOF54D = 636
+ INTEGER(IntKi), PARAMETER :: B5ADOF55D = 637
+ INTEGER(IntKi), PARAMETER :: B5ADOF56D = 638
+ INTEGER(IntKi), PARAMETER :: B5ADOF57D = 639
+ INTEGER(IntKi), PARAMETER :: B5ADOF58D = 640
+ INTEGER(IntKi), PARAMETER :: B5ADOF59D = 641
+ INTEGER(IntKi), PARAMETER :: B5ADOF60D = 642
+ INTEGER(IntKi), PARAMETER :: B5ADOF61D = 643
+ INTEGER(IntKi), PARAMETER :: B5ADOF62D = 644
+ INTEGER(IntKi), PARAMETER :: B5ADOF63D = 645
+ INTEGER(IntKi), PARAMETER :: B5ADOF64D = 646
+ INTEGER(IntKi), PARAMETER :: B5ADOF65D = 647
+ INTEGER(IntKi), PARAMETER :: B5ADOF66D = 648
+ INTEGER(IntKi), PARAMETER :: B5ADOF67D = 649
+ INTEGER(IntKi), PARAMETER :: B5ADOF68D = 650
+ INTEGER(IntKi), PARAMETER :: B5ADOF69D = 651
+ INTEGER(IntKi), PARAMETER :: B5ADOF70D = 652
+ INTEGER(IntKi), PARAMETER :: B5ADOF71D = 653
+ INTEGER(IntKi), PARAMETER :: B5ADOF72D = 654
+ INTEGER(IntKi), PARAMETER :: B5ADOF73D = 655
+ INTEGER(IntKi), PARAMETER :: B5ADOF74D = 656
+ INTEGER(IntKi), PARAMETER :: B5ADOF75D = 657
+ INTEGER(IntKi), PARAMETER :: B5ADOF76D = 658
+ INTEGER(IntKi), PARAMETER :: B5ADOF77D = 659
+ INTEGER(IntKi), PARAMETER :: B5ADOF78D = 660
+ INTEGER(IntKi), PARAMETER :: B5ADOF79D = 661
+ INTEGER(IntKi), PARAMETER :: B5ADOF80D = 662
+ INTEGER(IntKi), PARAMETER :: B5ADOF81D = 663
+ INTEGER(IntKi), PARAMETER :: B5ADOF82D = 664
+ INTEGER(IntKi), PARAMETER :: B5ADOF83D = 665
+ INTEGER(IntKi), PARAMETER :: B5ADOF84D = 666
+ INTEGER(IntKi), PARAMETER :: B5ADOF85D = 667
+ INTEGER(IntKi), PARAMETER :: B5ADOF86D = 668
+ INTEGER(IntKi), PARAMETER :: B5ADOF87D = 669
+ INTEGER(IntKi), PARAMETER :: B5ADOF88D = 670
+ INTEGER(IntKi), PARAMETER :: B5ADOF89D = 671
+ INTEGER(IntKi), PARAMETER :: B5ADOF90D = 672
+ INTEGER(IntKi), PARAMETER :: B5ADOF91D = 673
+ INTEGER(IntKi), PARAMETER :: B5ADOF92D = 674
+ INTEGER(IntKi), PARAMETER :: B5ADOF93D = 675
+ INTEGER(IntKi), PARAMETER :: B5ADOF94D = 676
+ INTEGER(IntKi), PARAMETER :: B5ADOF95D = 677
+ INTEGER(IntKi), PARAMETER :: B5ADOF96D = 678
+ INTEGER(IntKi), PARAMETER :: B5ADOF97D = 679
+ INTEGER(IntKi), PARAMETER :: B5ADOF98D = 680
+ INTEGER(IntKi), PARAMETER :: B5ADOF99D = 681
+ INTEGER(IntKi), PARAMETER :: B6ADOF1D = 682
+ INTEGER(IntKi), PARAMETER :: B6ADOF2D = 683
+ INTEGER(IntKi), PARAMETER :: B6ADOF3D = 684
+ INTEGER(IntKi), PARAMETER :: B6ADOF4D = 685
+ INTEGER(IntKi), PARAMETER :: B6ADOF5D = 686
+ INTEGER(IntKi), PARAMETER :: B6ADOF6D = 687
+ INTEGER(IntKi), PARAMETER :: B6ADOF7D = 688
+ INTEGER(IntKi), PARAMETER :: B6ADOF8D = 689
+ INTEGER(IntKi), PARAMETER :: B6ADOF9D = 690
+ INTEGER(IntKi), PARAMETER :: B6ADOF10D = 691
+ INTEGER(IntKi), PARAMETER :: B6ADOF11D = 692
+ INTEGER(IntKi), PARAMETER :: B6ADOF12D = 693
+ INTEGER(IntKi), PARAMETER :: B6ADOF13D = 694
+ INTEGER(IntKi), PARAMETER :: B6ADOF14D = 695
+ INTEGER(IntKi), PARAMETER :: B6ADOF15D = 696
+ INTEGER(IntKi), PARAMETER :: B6ADOF16D = 697
+ INTEGER(IntKi), PARAMETER :: B6ADOF17D = 698
+ INTEGER(IntKi), PARAMETER :: B6ADOF18D = 699
+ INTEGER(IntKi), PARAMETER :: B6ADOF19D = 700
+ INTEGER(IntKi), PARAMETER :: B6ADOF20D = 701
+ INTEGER(IntKi), PARAMETER :: B6ADOF21D = 702
+ INTEGER(IntKi), PARAMETER :: B6ADOF22D = 703
+ INTEGER(IntKi), PARAMETER :: B6ADOF23D = 704
+ INTEGER(IntKi), PARAMETER :: B6ADOF24D = 705
+ INTEGER(IntKi), PARAMETER :: B6ADOF25D = 706
+ INTEGER(IntKi), PARAMETER :: B6ADOF26D = 707
+ INTEGER(IntKi), PARAMETER :: B6ADOF27D = 708
+ INTEGER(IntKi), PARAMETER :: B6ADOF28D = 709
+ INTEGER(IntKi), PARAMETER :: B6ADOF29D = 710
+ INTEGER(IntKi), PARAMETER :: B6ADOF30D = 711
+ INTEGER(IntKi), PARAMETER :: B6ADOF31D = 712
+ INTEGER(IntKi), PARAMETER :: B6ADOF32D = 713
+ INTEGER(IntKi), PARAMETER :: B6ADOF33D = 714
+ INTEGER(IntKi), PARAMETER :: B6ADOF34D = 715
+ INTEGER(IntKi), PARAMETER :: B6ADOF35D = 716
+ INTEGER(IntKi), PARAMETER :: B6ADOF36D = 717
+ INTEGER(IntKi), PARAMETER :: B6ADOF37D = 718
+ INTEGER(IntKi), PARAMETER :: B6ADOF38D = 719
+ INTEGER(IntKi), PARAMETER :: B6ADOF39D = 720
+ INTEGER(IntKi), PARAMETER :: B6ADOF40D = 721
+ INTEGER(IntKi), PARAMETER :: B6ADOF41D = 722
+ INTEGER(IntKi), PARAMETER :: B6ADOF42D = 723
+ INTEGER(IntKi), PARAMETER :: B6ADOF43D = 724
+ INTEGER(IntKi), PARAMETER :: B6ADOF44D = 725
+ INTEGER(IntKi), PARAMETER :: B6ADOF45D = 726
+ INTEGER(IntKi), PARAMETER :: B6ADOF46D = 727
+ INTEGER(IntKi), PARAMETER :: B6ADOF47D = 728
+ INTEGER(IntKi), PARAMETER :: B6ADOF48D = 729
+ INTEGER(IntKi), PARAMETER :: B6ADOF49D = 730
+ INTEGER(IntKi), PARAMETER :: B6ADOF50D = 731
+ INTEGER(IntKi), PARAMETER :: B6ADOF51D = 732
+ INTEGER(IntKi), PARAMETER :: B6ADOF52D = 733
+ INTEGER(IntKi), PARAMETER :: B6ADOF53D = 734
+ INTEGER(IntKi), PARAMETER :: B6ADOF54D = 735
+ INTEGER(IntKi), PARAMETER :: B6ADOF55D = 736
+ INTEGER(IntKi), PARAMETER :: B6ADOF56D = 737
+ INTEGER(IntKi), PARAMETER :: B6ADOF57D = 738
+ INTEGER(IntKi), PARAMETER :: B6ADOF58D = 739
+ INTEGER(IntKi), PARAMETER :: B6ADOF59D = 740
+ INTEGER(IntKi), PARAMETER :: B6ADOF60D = 741
+ INTEGER(IntKi), PARAMETER :: B6ADOF61D = 742
+ INTEGER(IntKi), PARAMETER :: B6ADOF62D = 743
+ INTEGER(IntKi), PARAMETER :: B6ADOF63D = 744
+ INTEGER(IntKi), PARAMETER :: B6ADOF64D = 745
+ INTEGER(IntKi), PARAMETER :: B6ADOF65D = 746
+ INTEGER(IntKi), PARAMETER :: B6ADOF66D = 747
+ INTEGER(IntKi), PARAMETER :: B6ADOF67D = 748
+ INTEGER(IntKi), PARAMETER :: B6ADOF68D = 749
+ INTEGER(IntKi), PARAMETER :: B6ADOF69D = 750
+ INTEGER(IntKi), PARAMETER :: B6ADOF70D = 751
+ INTEGER(IntKi), PARAMETER :: B6ADOF71D = 752
+ INTEGER(IntKi), PARAMETER :: B6ADOF72D = 753
+ INTEGER(IntKi), PARAMETER :: B6ADOF73D = 754
+ INTEGER(IntKi), PARAMETER :: B6ADOF74D = 755
+ INTEGER(IntKi), PARAMETER :: B6ADOF75D = 756
+ INTEGER(IntKi), PARAMETER :: B6ADOF76D = 757
+ INTEGER(IntKi), PARAMETER :: B6ADOF77D = 758
+ INTEGER(IntKi), PARAMETER :: B6ADOF78D = 759
+ INTEGER(IntKi), PARAMETER :: B6ADOF79D = 760
+ INTEGER(IntKi), PARAMETER :: B6ADOF80D = 761
+ INTEGER(IntKi), PARAMETER :: B6ADOF81D = 762
+ INTEGER(IntKi), PARAMETER :: B6ADOF82D = 763
+ INTEGER(IntKi), PARAMETER :: B6ADOF83D = 764
+ INTEGER(IntKi), PARAMETER :: B6ADOF84D = 765
+ INTEGER(IntKi), PARAMETER :: B6ADOF85D = 766
+ INTEGER(IntKi), PARAMETER :: B6ADOF86D = 767
+ INTEGER(IntKi), PARAMETER :: B6ADOF87D = 768
+ INTEGER(IntKi), PARAMETER :: B6ADOF88D = 769
+ INTEGER(IntKi), PARAMETER :: B6ADOF89D = 770
+ INTEGER(IntKi), PARAMETER :: B6ADOF90D = 771
+ INTEGER(IntKi), PARAMETER :: B6ADOF91D = 772
+ INTEGER(IntKi), PARAMETER :: B6ADOF92D = 773
+ INTEGER(IntKi), PARAMETER :: B6ADOF93D = 774
+ INTEGER(IntKi), PARAMETER :: B6ADOF94D = 775
+ INTEGER(IntKi), PARAMETER :: B6ADOF95D = 776
+ INTEGER(IntKi), PARAMETER :: B6ADOF96D = 777
+ INTEGER(IntKi), PARAMETER :: B6ADOF97D = 778
+ INTEGER(IntKi), PARAMETER :: B6ADOF98D = 779
+ INTEGER(IntKi), PARAMETER :: B6ADOF99D = 780
+ INTEGER(IntKi), PARAMETER :: B7ADOF1D = 781
+ INTEGER(IntKi), PARAMETER :: B7ADOF2D = 782
+ INTEGER(IntKi), PARAMETER :: B7ADOF3D = 783
+ INTEGER(IntKi), PARAMETER :: B7ADOF4D = 784
+ INTEGER(IntKi), PARAMETER :: B7ADOF5D = 785
+ INTEGER(IntKi), PARAMETER :: B7ADOF6D = 786
+ INTEGER(IntKi), PARAMETER :: B7ADOF7D = 787
+ INTEGER(IntKi), PARAMETER :: B7ADOF8D = 788
+ INTEGER(IntKi), PARAMETER :: B7ADOF9D = 789
+ INTEGER(IntKi), PARAMETER :: B7ADOF10D = 790
+ INTEGER(IntKi), PARAMETER :: B7ADOF11D = 791
+ INTEGER(IntKi), PARAMETER :: B7ADOF12D = 792
+ INTEGER(IntKi), PARAMETER :: B7ADOF13D = 793
+ INTEGER(IntKi), PARAMETER :: B7ADOF14D = 794
+ INTEGER(IntKi), PARAMETER :: B7ADOF15D = 795
+ INTEGER(IntKi), PARAMETER :: B7ADOF16D = 796
+ INTEGER(IntKi), PARAMETER :: B7ADOF17D = 797
+ INTEGER(IntKi), PARAMETER :: B7ADOF18D = 798
+ INTEGER(IntKi), PARAMETER :: B7ADOF19D = 799
+ INTEGER(IntKi), PARAMETER :: B7ADOF20D = 800
+ INTEGER(IntKi), PARAMETER :: B7ADOF21D = 801
+ INTEGER(IntKi), PARAMETER :: B7ADOF22D = 802
+ INTEGER(IntKi), PARAMETER :: B7ADOF23D = 803
+ INTEGER(IntKi), PARAMETER :: B7ADOF24D = 804
+ INTEGER(IntKi), PARAMETER :: B7ADOF25D = 805
+ INTEGER(IntKi), PARAMETER :: B7ADOF26D = 806
+ INTEGER(IntKi), PARAMETER :: B7ADOF27D = 807
+ INTEGER(IntKi), PARAMETER :: B7ADOF28D = 808
+ INTEGER(IntKi), PARAMETER :: B7ADOF29D = 809
+ INTEGER(IntKi), PARAMETER :: B7ADOF30D = 810
+ INTEGER(IntKi), PARAMETER :: B7ADOF31D = 811
+ INTEGER(IntKi), PARAMETER :: B7ADOF32D = 812
+ INTEGER(IntKi), PARAMETER :: B7ADOF33D = 813
+ INTEGER(IntKi), PARAMETER :: B7ADOF34D = 814
+ INTEGER(IntKi), PARAMETER :: B7ADOF35D = 815
+ INTEGER(IntKi), PARAMETER :: B7ADOF36D = 816
+ INTEGER(IntKi), PARAMETER :: B7ADOF37D = 817
+ INTEGER(IntKi), PARAMETER :: B7ADOF38D = 818
+ INTEGER(IntKi), PARAMETER :: B7ADOF39D = 819
+ INTEGER(IntKi), PARAMETER :: B7ADOF40D = 820
+ INTEGER(IntKi), PARAMETER :: B7ADOF41D = 821
+ INTEGER(IntKi), PARAMETER :: B7ADOF42D = 822
+ INTEGER(IntKi), PARAMETER :: B7ADOF43D = 823
+ INTEGER(IntKi), PARAMETER :: B7ADOF44D = 824
+ INTEGER(IntKi), PARAMETER :: B7ADOF45D = 825
+ INTEGER(IntKi), PARAMETER :: B7ADOF46D = 826
+ INTEGER(IntKi), PARAMETER :: B7ADOF47D = 827
+ INTEGER(IntKi), PARAMETER :: B7ADOF48D = 828
+ INTEGER(IntKi), PARAMETER :: B7ADOF49D = 829
+ INTEGER(IntKi), PARAMETER :: B7ADOF50D = 830
+ INTEGER(IntKi), PARAMETER :: B7ADOF51D = 831
+ INTEGER(IntKi), PARAMETER :: B7ADOF52D = 832
+ INTEGER(IntKi), PARAMETER :: B7ADOF53D = 833
+ INTEGER(IntKi), PARAMETER :: B7ADOF54D = 834
+ INTEGER(IntKi), PARAMETER :: B7ADOF55D = 835
+ INTEGER(IntKi), PARAMETER :: B7ADOF56D = 836
+ INTEGER(IntKi), PARAMETER :: B7ADOF57D = 837
+ INTEGER(IntKi), PARAMETER :: B7ADOF58D = 838
+ INTEGER(IntKi), PARAMETER :: B7ADOF59D = 839
+ INTEGER(IntKi), PARAMETER :: B7ADOF60D = 840
+ INTEGER(IntKi), PARAMETER :: B7ADOF61D = 841
+ INTEGER(IntKi), PARAMETER :: B7ADOF62D = 842
+ INTEGER(IntKi), PARAMETER :: B7ADOF63D = 843
+ INTEGER(IntKi), PARAMETER :: B7ADOF64D = 844
+ INTEGER(IntKi), PARAMETER :: B7ADOF65D = 845
+ INTEGER(IntKi), PARAMETER :: B7ADOF66D = 846
+ INTEGER(IntKi), PARAMETER :: B7ADOF67D = 847
+ INTEGER(IntKi), PARAMETER :: B7ADOF68D = 848
+ INTEGER(IntKi), PARAMETER :: B7ADOF69D = 849
+ INTEGER(IntKi), PARAMETER :: B7ADOF70D = 850
+ INTEGER(IntKi), PARAMETER :: B7ADOF71D = 851
+ INTEGER(IntKi), PARAMETER :: B7ADOF72D = 852
+ INTEGER(IntKi), PARAMETER :: B7ADOF73D = 853
+ INTEGER(IntKi), PARAMETER :: B7ADOF74D = 854
+ INTEGER(IntKi), PARAMETER :: B7ADOF75D = 855
+ INTEGER(IntKi), PARAMETER :: B7ADOF76D = 856
+ INTEGER(IntKi), PARAMETER :: B7ADOF77D = 857
+ INTEGER(IntKi), PARAMETER :: B7ADOF78D = 858
+ INTEGER(IntKi), PARAMETER :: B7ADOF79D = 859
+ INTEGER(IntKi), PARAMETER :: B7ADOF80D = 860
+ INTEGER(IntKi), PARAMETER :: B7ADOF81D = 861
+ INTEGER(IntKi), PARAMETER :: B7ADOF82D = 862
+ INTEGER(IntKi), PARAMETER :: B7ADOF83D = 863
+ INTEGER(IntKi), PARAMETER :: B7ADOF84D = 864
+ INTEGER(IntKi), PARAMETER :: B7ADOF85D = 865
+ INTEGER(IntKi), PARAMETER :: B7ADOF86D = 866
+ INTEGER(IntKi), PARAMETER :: B7ADOF87D = 867
+ INTEGER(IntKi), PARAMETER :: B7ADOF88D = 868
+ INTEGER(IntKi), PARAMETER :: B7ADOF89D = 869
+ INTEGER(IntKi), PARAMETER :: B7ADOF90D = 870
+ INTEGER(IntKi), PARAMETER :: B7ADOF91D = 871
+ INTEGER(IntKi), PARAMETER :: B7ADOF92D = 872
+ INTEGER(IntKi), PARAMETER :: B7ADOF93D = 873
+ INTEGER(IntKi), PARAMETER :: B7ADOF94D = 874
+ INTEGER(IntKi), PARAMETER :: B7ADOF95D = 875
+ INTEGER(IntKi), PARAMETER :: B7ADOF96D = 876
+ INTEGER(IntKi), PARAMETER :: B7ADOF97D = 877
+ INTEGER(IntKi), PARAMETER :: B7ADOF98D = 878
+ INTEGER(IntKi), PARAMETER :: B7ADOF99D = 879
+ INTEGER(IntKi), PARAMETER :: B8ADOF1D = 880
+ INTEGER(IntKi), PARAMETER :: B8ADOF2D = 881
+ INTEGER(IntKi), PARAMETER :: B8ADOF3D = 882
+ INTEGER(IntKi), PARAMETER :: B8ADOF4D = 883
+ INTEGER(IntKi), PARAMETER :: B8ADOF5D = 884
+ INTEGER(IntKi), PARAMETER :: B8ADOF6D = 885
+ INTEGER(IntKi), PARAMETER :: B8ADOF7D = 886
+ INTEGER(IntKi), PARAMETER :: B8ADOF8D = 887
+ INTEGER(IntKi), PARAMETER :: B8ADOF9D = 888
+ INTEGER(IntKi), PARAMETER :: B8ADOF10D = 889
+ INTEGER(IntKi), PARAMETER :: B8ADOF11D = 890
+ INTEGER(IntKi), PARAMETER :: B8ADOF12D = 891
+ INTEGER(IntKi), PARAMETER :: B8ADOF13D = 892
+ INTEGER(IntKi), PARAMETER :: B8ADOF14D = 893
+ INTEGER(IntKi), PARAMETER :: B8ADOF15D = 894
+ INTEGER(IntKi), PARAMETER :: B8ADOF16D = 895
+ INTEGER(IntKi), PARAMETER :: B8ADOF17D = 896
+ INTEGER(IntKi), PARAMETER :: B8ADOF18D = 897
+ INTEGER(IntKi), PARAMETER :: B8ADOF19D = 898
+ INTEGER(IntKi), PARAMETER :: B8ADOF20D = 899
+ INTEGER(IntKi), PARAMETER :: B8ADOF21D = 900
+ INTEGER(IntKi), PARAMETER :: B8ADOF22D = 901
+ INTEGER(IntKi), PARAMETER :: B8ADOF23D = 902
+ INTEGER(IntKi), PARAMETER :: B8ADOF24D = 903
+ INTEGER(IntKi), PARAMETER :: B8ADOF25D = 904
+ INTEGER(IntKi), PARAMETER :: B8ADOF26D = 905
+ INTEGER(IntKi), PARAMETER :: B8ADOF27D = 906
+ INTEGER(IntKi), PARAMETER :: B8ADOF28D = 907
+ INTEGER(IntKi), PARAMETER :: B8ADOF29D = 908
+ INTEGER(IntKi), PARAMETER :: B8ADOF30D = 909
+ INTEGER(IntKi), PARAMETER :: B8ADOF31D = 910
+ INTEGER(IntKi), PARAMETER :: B8ADOF32D = 911
+ INTEGER(IntKi), PARAMETER :: B8ADOF33D = 912
+ INTEGER(IntKi), PARAMETER :: B8ADOF34D = 913
+ INTEGER(IntKi), PARAMETER :: B8ADOF35D = 914
+ INTEGER(IntKi), PARAMETER :: B8ADOF36D = 915
+ INTEGER(IntKi), PARAMETER :: B8ADOF37D = 916
+ INTEGER(IntKi), PARAMETER :: B8ADOF38D = 917
+ INTEGER(IntKi), PARAMETER :: B8ADOF39D = 918
+ INTEGER(IntKi), PARAMETER :: B8ADOF40D = 919
+ INTEGER(IntKi), PARAMETER :: B8ADOF41D = 920
+ INTEGER(IntKi), PARAMETER :: B8ADOF42D = 921
+ INTEGER(IntKi), PARAMETER :: B8ADOF43D = 922
+ INTEGER(IntKi), PARAMETER :: B8ADOF44D = 923
+ INTEGER(IntKi), PARAMETER :: B8ADOF45D = 924
+ INTEGER(IntKi), PARAMETER :: B8ADOF46D = 925
+ INTEGER(IntKi), PARAMETER :: B8ADOF47D = 926
+ INTEGER(IntKi), PARAMETER :: B8ADOF48D = 927
+ INTEGER(IntKi), PARAMETER :: B8ADOF49D = 928
+ INTEGER(IntKi), PARAMETER :: B8ADOF50D = 929
+ INTEGER(IntKi), PARAMETER :: B8ADOF51D = 930
+ INTEGER(IntKi), PARAMETER :: B8ADOF52D = 931
+ INTEGER(IntKi), PARAMETER :: B8ADOF53D = 932
+ INTEGER(IntKi), PARAMETER :: B8ADOF54D = 933
+ INTEGER(IntKi), PARAMETER :: B8ADOF55D = 934
+ INTEGER(IntKi), PARAMETER :: B8ADOF56D = 935
+ INTEGER(IntKi), PARAMETER :: B8ADOF57D = 936
+ INTEGER(IntKi), PARAMETER :: B8ADOF58D = 937
+ INTEGER(IntKi), PARAMETER :: B8ADOF59D = 938
+ INTEGER(IntKi), PARAMETER :: B8ADOF60D = 939
+ INTEGER(IntKi), PARAMETER :: B8ADOF61D = 940
+ INTEGER(IntKi), PARAMETER :: B8ADOF62D = 941
+ INTEGER(IntKi), PARAMETER :: B8ADOF63D = 942
+ INTEGER(IntKi), PARAMETER :: B8ADOF64D = 943
+ INTEGER(IntKi), PARAMETER :: B8ADOF65D = 944
+ INTEGER(IntKi), PARAMETER :: B8ADOF66D = 945
+ INTEGER(IntKi), PARAMETER :: B8ADOF67D = 946
+ INTEGER(IntKi), PARAMETER :: B8ADOF68D = 947
+ INTEGER(IntKi), PARAMETER :: B8ADOF69D = 948
+ INTEGER(IntKi), PARAMETER :: B8ADOF70D = 949
+ INTEGER(IntKi), PARAMETER :: B8ADOF71D = 950
+ INTEGER(IntKi), PARAMETER :: B8ADOF72D = 951
+ INTEGER(IntKi), PARAMETER :: B8ADOF73D = 952
+ INTEGER(IntKi), PARAMETER :: B8ADOF74D = 953
+ INTEGER(IntKi), PARAMETER :: B8ADOF75D = 954
+ INTEGER(IntKi), PARAMETER :: B8ADOF76D = 955
+ INTEGER(IntKi), PARAMETER :: B8ADOF77D = 956
+ INTEGER(IntKi), PARAMETER :: B8ADOF78D = 957
+ INTEGER(IntKi), PARAMETER :: B8ADOF79D = 958
+ INTEGER(IntKi), PARAMETER :: B8ADOF80D = 959
+ INTEGER(IntKi), PARAMETER :: B8ADOF81D = 960
+ INTEGER(IntKi), PARAMETER :: B8ADOF82D = 961
+ INTEGER(IntKi), PARAMETER :: B8ADOF83D = 962
+ INTEGER(IntKi), PARAMETER :: B8ADOF84D = 963
+ INTEGER(IntKi), PARAMETER :: B8ADOF85D = 964
+ INTEGER(IntKi), PARAMETER :: B8ADOF86D = 965
+ INTEGER(IntKi), PARAMETER :: B8ADOF87D = 966
+ INTEGER(IntKi), PARAMETER :: B8ADOF88D = 967
+ INTEGER(IntKi), PARAMETER :: B8ADOF89D = 968
+ INTEGER(IntKi), PARAMETER :: B8ADOF90D = 969
+ INTEGER(IntKi), PARAMETER :: B8ADOF91D = 970
+ INTEGER(IntKi), PARAMETER :: B8ADOF92D = 971
+ INTEGER(IntKi), PARAMETER :: B8ADOF93D = 972
+ INTEGER(IntKi), PARAMETER :: B8ADOF94D = 973
+ INTEGER(IntKi), PARAMETER :: B8ADOF95D = 974
+ INTEGER(IntKi), PARAMETER :: B8ADOF96D = 975
+ INTEGER(IntKi), PARAMETER :: B8ADOF97D = 976
+ INTEGER(IntKi), PARAMETER :: B8ADOF98D = 977
+ INTEGER(IntKi), PARAMETER :: B8ADOF99D = 978
+ INTEGER(IntKi), PARAMETER :: B9ADOF1D = 979
+ INTEGER(IntKi), PARAMETER :: B9ADOF2D = 980
+ INTEGER(IntKi), PARAMETER :: B9ADOF3D = 981
+ INTEGER(IntKi), PARAMETER :: B9ADOF4D = 982
+ INTEGER(IntKi), PARAMETER :: B9ADOF5D = 983
+ INTEGER(IntKi), PARAMETER :: B9ADOF6D = 984
+ INTEGER(IntKi), PARAMETER :: B9ADOF7D = 985
+ INTEGER(IntKi), PARAMETER :: B9ADOF8D = 986
+ INTEGER(IntKi), PARAMETER :: B9ADOF9D = 987
+ INTEGER(IntKi), PARAMETER :: B9ADOF10D = 988
+ INTEGER(IntKi), PARAMETER :: B9ADOF11D = 989
+ INTEGER(IntKi), PARAMETER :: B9ADOF12D = 990
+ INTEGER(IntKi), PARAMETER :: B9ADOF13D = 991
+ INTEGER(IntKi), PARAMETER :: B9ADOF14D = 992
+ INTEGER(IntKi), PARAMETER :: B9ADOF15D = 993
+ INTEGER(IntKi), PARAMETER :: B9ADOF16D = 994
+ INTEGER(IntKi), PARAMETER :: B9ADOF17D = 995
+ INTEGER(IntKi), PARAMETER :: B9ADOF18D = 996
+ INTEGER(IntKi), PARAMETER :: B9ADOF19D = 997
+ INTEGER(IntKi), PARAMETER :: B9ADOF20D = 998
+ INTEGER(IntKi), PARAMETER :: B9ADOF21D = 999
+ INTEGER(IntKi), PARAMETER :: B9ADOF22D = 1000
+ INTEGER(IntKi), PARAMETER :: B9ADOF23D = 1001
+ INTEGER(IntKi), PARAMETER :: B9ADOF24D = 1002
+ INTEGER(IntKi), PARAMETER :: B9ADOF25D = 1003
+ INTEGER(IntKi), PARAMETER :: B9ADOF26D = 1004
+ INTEGER(IntKi), PARAMETER :: B9ADOF27D = 1005
+ INTEGER(IntKi), PARAMETER :: B9ADOF28D = 1006
+ INTEGER(IntKi), PARAMETER :: B9ADOF29D = 1007
+ INTEGER(IntKi), PARAMETER :: B9ADOF30D = 1008
+ INTEGER(IntKi), PARAMETER :: B9ADOF31D = 1009
+ INTEGER(IntKi), PARAMETER :: B9ADOF32D = 1010
+ INTEGER(IntKi), PARAMETER :: B9ADOF33D = 1011
+ INTEGER(IntKi), PARAMETER :: B9ADOF34D = 1012
+ INTEGER(IntKi), PARAMETER :: B9ADOF35D = 1013
+ INTEGER(IntKi), PARAMETER :: B9ADOF36D = 1014
+ INTEGER(IntKi), PARAMETER :: B9ADOF37D = 1015
+ INTEGER(IntKi), PARAMETER :: B9ADOF38D = 1016
+ INTEGER(IntKi), PARAMETER :: B9ADOF39D = 1017
+ INTEGER(IntKi), PARAMETER :: B9ADOF40D = 1018
+ INTEGER(IntKi), PARAMETER :: B9ADOF41D = 1019
+ INTEGER(IntKi), PARAMETER :: B9ADOF42D = 1020
+ INTEGER(IntKi), PARAMETER :: B9ADOF43D = 1021
+ INTEGER(IntKi), PARAMETER :: B9ADOF44D = 1022
+ INTEGER(IntKi), PARAMETER :: B9ADOF45D = 1023
+ INTEGER(IntKi), PARAMETER :: B9ADOF46D = 1024
+ INTEGER(IntKi), PARAMETER :: B9ADOF47D = 1025
+ INTEGER(IntKi), PARAMETER :: B9ADOF48D = 1026
+ INTEGER(IntKi), PARAMETER :: B9ADOF49D = 1027
+ INTEGER(IntKi), PARAMETER :: B9ADOF50D = 1028
+ INTEGER(IntKi), PARAMETER :: B9ADOF51D = 1029
+ INTEGER(IntKi), PARAMETER :: B9ADOF52D = 1030
+ INTEGER(IntKi), PARAMETER :: B9ADOF53D = 1031
+ INTEGER(IntKi), PARAMETER :: B9ADOF54D = 1032
+ INTEGER(IntKi), PARAMETER :: B9ADOF55D = 1033
+ INTEGER(IntKi), PARAMETER :: B9ADOF56D = 1034
+ INTEGER(IntKi), PARAMETER :: B9ADOF57D = 1035
+ INTEGER(IntKi), PARAMETER :: B9ADOF58D = 1036
+ INTEGER(IntKi), PARAMETER :: B9ADOF59D = 1037
+ INTEGER(IntKi), PARAMETER :: B9ADOF60D = 1038
+ INTEGER(IntKi), PARAMETER :: B9ADOF61D = 1039
+ INTEGER(IntKi), PARAMETER :: B9ADOF62D = 1040
+ INTEGER(IntKi), PARAMETER :: B9ADOF63D = 1041
+ INTEGER(IntKi), PARAMETER :: B9ADOF64D = 1042
+ INTEGER(IntKi), PARAMETER :: B9ADOF65D = 1043
+ INTEGER(IntKi), PARAMETER :: B9ADOF66D = 1044
+ INTEGER(IntKi), PARAMETER :: B9ADOF67D = 1045
+ INTEGER(IntKi), PARAMETER :: B9ADOF68D = 1046
+ INTEGER(IntKi), PARAMETER :: B9ADOF69D = 1047
+ INTEGER(IntKi), PARAMETER :: B9ADOF70D = 1048
+ INTEGER(IntKi), PARAMETER :: B9ADOF71D = 1049
+ INTEGER(IntKi), PARAMETER :: B9ADOF72D = 1050
+ INTEGER(IntKi), PARAMETER :: B9ADOF73D = 1051
+ INTEGER(IntKi), PARAMETER :: B9ADOF74D = 1052
+ INTEGER(IntKi), PARAMETER :: B9ADOF75D = 1053
+ INTEGER(IntKi), PARAMETER :: B9ADOF76D = 1054
+ INTEGER(IntKi), PARAMETER :: B9ADOF77D = 1055
+ INTEGER(IntKi), PARAMETER :: B9ADOF78D = 1056
+ INTEGER(IntKi), PARAMETER :: B9ADOF79D = 1057
+ INTEGER(IntKi), PARAMETER :: B9ADOF80D = 1058
+ INTEGER(IntKi), PARAMETER :: B9ADOF81D = 1059
+ INTEGER(IntKi), PARAMETER :: B9ADOF82D = 1060
+ INTEGER(IntKi), PARAMETER :: B9ADOF83D = 1061
+ INTEGER(IntKi), PARAMETER :: B9ADOF84D = 1062
+ INTEGER(IntKi), PARAMETER :: B9ADOF85D = 1063
+ INTEGER(IntKi), PARAMETER :: B9ADOF86D = 1064
+ INTEGER(IntKi), PARAMETER :: B9ADOF87D = 1065
+ INTEGER(IntKi), PARAMETER :: B9ADOF88D = 1066
+ INTEGER(IntKi), PARAMETER :: B9ADOF89D = 1067
+ INTEGER(IntKi), PARAMETER :: B9ADOF90D = 1068
+ INTEGER(IntKi), PARAMETER :: B9ADOF91D = 1069
+ INTEGER(IntKi), PARAMETER :: B9ADOF92D = 1070
+ INTEGER(IntKi), PARAMETER :: B9ADOF93D = 1071
+ INTEGER(IntKi), PARAMETER :: B9ADOF94D = 1072
+ INTEGER(IntKi), PARAMETER :: B9ADOF95D = 1073
+ INTEGER(IntKi), PARAMETER :: B9ADOF96D = 1074
+ INTEGER(IntKi), PARAMETER :: B9ADOF97D = 1075
+ INTEGER(IntKi), PARAMETER :: B9ADOF98D = 1076
+ INTEGER(IntKi), PARAMETER :: B9ADOF99D = 1077
+ INTEGER(IntKi), PARAMETER :: B1ADOF1V = 1078
+ INTEGER(IntKi), PARAMETER :: B1ADOF2V = 1079
+ INTEGER(IntKi), PARAMETER :: B1ADOF3V = 1080
+ INTEGER(IntKi), PARAMETER :: B1ADOF4V = 1081
+ INTEGER(IntKi), PARAMETER :: B1ADOF5V = 1082
+ INTEGER(IntKi), PARAMETER :: B1ADOF6V = 1083
+ INTEGER(IntKi), PARAMETER :: B1ADOF7V = 1084
+ INTEGER(IntKi), PARAMETER :: B1ADOF8V = 1085
+ INTEGER(IntKi), PARAMETER :: B1ADOF9V = 1086
+ INTEGER(IntKi), PARAMETER :: B1ADOF10V = 1087
+ INTEGER(IntKi), PARAMETER :: B1ADOF11V = 1088
+ INTEGER(IntKi), PARAMETER :: B1ADOF12V = 1089
+ INTEGER(IntKi), PARAMETER :: B1ADOF13V = 1090
+ INTEGER(IntKi), PARAMETER :: B1ADOF14V = 1091
+ INTEGER(IntKi), PARAMETER :: B1ADOF15V = 1092
+ INTEGER(IntKi), PARAMETER :: B1ADOF16V = 1093
+ INTEGER(IntKi), PARAMETER :: B1ADOF17V = 1094
+ INTEGER(IntKi), PARAMETER :: B1ADOF18V = 1095
+ INTEGER(IntKi), PARAMETER :: B1ADOF19V = 1096
+ INTEGER(IntKi), PARAMETER :: B1ADOF20V = 1097
+ INTEGER(IntKi), PARAMETER :: B1ADOF21V = 1098
+ INTEGER(IntKi), PARAMETER :: B1ADOF22V = 1099
+ INTEGER(IntKi), PARAMETER :: B1ADOF23V = 1100
+ INTEGER(IntKi), PARAMETER :: B1ADOF24V = 1101
+ INTEGER(IntKi), PARAMETER :: B1ADOF25V = 1102
+ INTEGER(IntKi), PARAMETER :: B1ADOF26V = 1103
+ INTEGER(IntKi), PARAMETER :: B1ADOF27V = 1104
+ INTEGER(IntKi), PARAMETER :: B1ADOF28V = 1105
+ INTEGER(IntKi), PARAMETER :: B1ADOF29V = 1106
+ INTEGER(IntKi), PARAMETER :: B1ADOF30V = 1107
+ INTEGER(IntKi), PARAMETER :: B1ADOF31V = 1108
+ INTEGER(IntKi), PARAMETER :: B1ADOF32V = 1109
+ INTEGER(IntKi), PARAMETER :: B1ADOF33V = 1110
+ INTEGER(IntKi), PARAMETER :: B1ADOF34V = 1111
+ INTEGER(IntKi), PARAMETER :: B1ADOF35V = 1112
+ INTEGER(IntKi), PARAMETER :: B1ADOF36V = 1113
+ INTEGER(IntKi), PARAMETER :: B1ADOF37V = 1114
+ INTEGER(IntKi), PARAMETER :: B1ADOF38V = 1115
+ INTEGER(IntKi), PARAMETER :: B1ADOF39V = 1116
+ INTEGER(IntKi), PARAMETER :: B1ADOF40V = 1117
+ INTEGER(IntKi), PARAMETER :: B1ADOF41V = 1118
+ INTEGER(IntKi), PARAMETER :: B1ADOF42V = 1119
+ INTEGER(IntKi), PARAMETER :: B1ADOF43V = 1120
+ INTEGER(IntKi), PARAMETER :: B1ADOF44V = 1121
+ INTEGER(IntKi), PARAMETER :: B1ADOF45V = 1122
+ INTEGER(IntKi), PARAMETER :: B1ADOF46V = 1123
+ INTEGER(IntKi), PARAMETER :: B1ADOF47V = 1124
+ INTEGER(IntKi), PARAMETER :: B1ADOF48V = 1125
+ INTEGER(IntKi), PARAMETER :: B1ADOF49V = 1126
+ INTEGER(IntKi), PARAMETER :: B1ADOF50V = 1127
+ INTEGER(IntKi), PARAMETER :: B1ADOF51V = 1128
+ INTEGER(IntKi), PARAMETER :: B1ADOF52V = 1129
+ INTEGER(IntKi), PARAMETER :: B1ADOF53V = 1130
+ INTEGER(IntKi), PARAMETER :: B1ADOF54V = 1131
+ INTEGER(IntKi), PARAMETER :: B1ADOF55V = 1132
+ INTEGER(IntKi), PARAMETER :: B1ADOF56V = 1133
+ INTEGER(IntKi), PARAMETER :: B1ADOF57V = 1134
+ INTEGER(IntKi), PARAMETER :: B1ADOF58V = 1135
+ INTEGER(IntKi), PARAMETER :: B1ADOF59V = 1136
+ INTEGER(IntKi), PARAMETER :: B1ADOF60V = 1137
+ INTEGER(IntKi), PARAMETER :: B1ADOF61V = 1138
+ INTEGER(IntKi), PARAMETER :: B1ADOF62V = 1139
+ INTEGER(IntKi), PARAMETER :: B1ADOF63V = 1140
+ INTEGER(IntKi), PARAMETER :: B1ADOF64V = 1141
+ INTEGER(IntKi), PARAMETER :: B1ADOF65V = 1142
+ INTEGER(IntKi), PARAMETER :: B1ADOF66V = 1143
+ INTEGER(IntKi), PARAMETER :: B1ADOF67V = 1144
+ INTEGER(IntKi), PARAMETER :: B1ADOF68V = 1145
+ INTEGER(IntKi), PARAMETER :: B1ADOF69V = 1146
+ INTEGER(IntKi), PARAMETER :: B1ADOF70V = 1147
+ INTEGER(IntKi), PARAMETER :: B1ADOF71V = 1148
+ INTEGER(IntKi), PARAMETER :: B1ADOF72V = 1149
+ INTEGER(IntKi), PARAMETER :: B1ADOF73V = 1150
+ INTEGER(IntKi), PARAMETER :: B1ADOF74V = 1151
+ INTEGER(IntKi), PARAMETER :: B1ADOF75V = 1152
+ INTEGER(IntKi), PARAMETER :: B1ADOF76V = 1153
+ INTEGER(IntKi), PARAMETER :: B1ADOF77V = 1154
+ INTEGER(IntKi), PARAMETER :: B1ADOF78V = 1155
+ INTEGER(IntKi), PARAMETER :: B1ADOF79V = 1156
+ INTEGER(IntKi), PARAMETER :: B1ADOF80V = 1157
+ INTEGER(IntKi), PARAMETER :: B1ADOF81V = 1158
+ INTEGER(IntKi), PARAMETER :: B1ADOF82V = 1159
+ INTEGER(IntKi), PARAMETER :: B1ADOF83V = 1160
+ INTEGER(IntKi), PARAMETER :: B1ADOF84V = 1161
+ INTEGER(IntKi), PARAMETER :: B1ADOF85V = 1162
+ INTEGER(IntKi), PARAMETER :: B1ADOF86V = 1163
+ INTEGER(IntKi), PARAMETER :: B1ADOF87V = 1164
+ INTEGER(IntKi), PARAMETER :: B1ADOF88V = 1165
+ INTEGER(IntKi), PARAMETER :: B1ADOF89V = 1166
+ INTEGER(IntKi), PARAMETER :: B1ADOF90V = 1167
+ INTEGER(IntKi), PARAMETER :: B1ADOF91V = 1168
+ INTEGER(IntKi), PARAMETER :: B1ADOF92V = 1169
+ INTEGER(IntKi), PARAMETER :: B1ADOF93V = 1170
+ INTEGER(IntKi), PARAMETER :: B1ADOF94V = 1171
+ INTEGER(IntKi), PARAMETER :: B1ADOF95V = 1172
+ INTEGER(IntKi), PARAMETER :: B1ADOF96V = 1173
+ INTEGER(IntKi), PARAMETER :: B1ADOF97V = 1174
+ INTEGER(IntKi), PARAMETER :: B1ADOF98V = 1175
+ INTEGER(IntKi), PARAMETER :: B1ADOF99V = 1176
+ INTEGER(IntKi), PARAMETER :: B2ADOF1V = 1177
+ INTEGER(IntKi), PARAMETER :: B2ADOF2V = 1178
+ INTEGER(IntKi), PARAMETER :: B2ADOF3V = 1179
+ INTEGER(IntKi), PARAMETER :: B2ADOF4V = 1180
+ INTEGER(IntKi), PARAMETER :: B2ADOF5V = 1181
+ INTEGER(IntKi), PARAMETER :: B2ADOF6V = 1182
+ INTEGER(IntKi), PARAMETER :: B2ADOF7V = 1183
+ INTEGER(IntKi), PARAMETER :: B2ADOF8V = 1184
+ INTEGER(IntKi), PARAMETER :: B2ADOF9V = 1185
+ INTEGER(IntKi), PARAMETER :: B2ADOF10V = 1186
+ INTEGER(IntKi), PARAMETER :: B2ADOF11V = 1187
+ INTEGER(IntKi), PARAMETER :: B2ADOF12V = 1188
+ INTEGER(IntKi), PARAMETER :: B2ADOF13V = 1189
+ INTEGER(IntKi), PARAMETER :: B2ADOF14V = 1190
+ INTEGER(IntKi), PARAMETER :: B2ADOF15V = 1191
+ INTEGER(IntKi), PARAMETER :: B2ADOF16V = 1192
+ INTEGER(IntKi), PARAMETER :: B2ADOF17V = 1193
+ INTEGER(IntKi), PARAMETER :: B2ADOF18V = 1194
+ INTEGER(IntKi), PARAMETER :: B2ADOF19V = 1195
+ INTEGER(IntKi), PARAMETER :: B2ADOF20V = 1196
+ INTEGER(IntKi), PARAMETER :: B2ADOF21V = 1197
+ INTEGER(IntKi), PARAMETER :: B2ADOF22V = 1198
+ INTEGER(IntKi), PARAMETER :: B2ADOF23V = 1199
+ INTEGER(IntKi), PARAMETER :: B2ADOF24V = 1200
+ INTEGER(IntKi), PARAMETER :: B2ADOF25V = 1201
+ INTEGER(IntKi), PARAMETER :: B2ADOF26V = 1202
+ INTEGER(IntKi), PARAMETER :: B2ADOF27V = 1203
+ INTEGER(IntKi), PARAMETER :: B2ADOF28V = 1204
+ INTEGER(IntKi), PARAMETER :: B2ADOF29V = 1205
+ INTEGER(IntKi), PARAMETER :: B2ADOF30V = 1206
+ INTEGER(IntKi), PARAMETER :: B2ADOF31V = 1207
+ INTEGER(IntKi), PARAMETER :: B2ADOF32V = 1208
+ INTEGER(IntKi), PARAMETER :: B2ADOF33V = 1209
+ INTEGER(IntKi), PARAMETER :: B2ADOF34V = 1210
+ INTEGER(IntKi), PARAMETER :: B2ADOF35V = 1211
+ INTEGER(IntKi), PARAMETER :: B2ADOF36V = 1212
+ INTEGER(IntKi), PARAMETER :: B2ADOF37V = 1213
+ INTEGER(IntKi), PARAMETER :: B2ADOF38V = 1214
+ INTEGER(IntKi), PARAMETER :: B2ADOF39V = 1215
+ INTEGER(IntKi), PARAMETER :: B2ADOF40V = 1216
+ INTEGER(IntKi), PARAMETER :: B2ADOF41V = 1217
+ INTEGER(IntKi), PARAMETER :: B2ADOF42V = 1218
+ INTEGER(IntKi), PARAMETER :: B2ADOF43V = 1219
+ INTEGER(IntKi), PARAMETER :: B2ADOF44V = 1220
+ INTEGER(IntKi), PARAMETER :: B2ADOF45V = 1221
+ INTEGER(IntKi), PARAMETER :: B2ADOF46V = 1222
+ INTEGER(IntKi), PARAMETER :: B2ADOF47V = 1223
+ INTEGER(IntKi), PARAMETER :: B2ADOF48V = 1224
+ INTEGER(IntKi), PARAMETER :: B2ADOF49V = 1225
+ INTEGER(IntKi), PARAMETER :: B2ADOF50V = 1226
+ INTEGER(IntKi), PARAMETER :: B2ADOF51V = 1227
+ INTEGER(IntKi), PARAMETER :: B2ADOF52V = 1228
+ INTEGER(IntKi), PARAMETER :: B2ADOF53V = 1229
+ INTEGER(IntKi), PARAMETER :: B2ADOF54V = 1230
+ INTEGER(IntKi), PARAMETER :: B2ADOF55V = 1231
+ INTEGER(IntKi), PARAMETER :: B2ADOF56V = 1232
+ INTEGER(IntKi), PARAMETER :: B2ADOF57V = 1233
+ INTEGER(IntKi), PARAMETER :: B2ADOF58V = 1234
+ INTEGER(IntKi), PARAMETER :: B2ADOF59V = 1235
+ INTEGER(IntKi), PARAMETER :: B2ADOF60V = 1236
+ INTEGER(IntKi), PARAMETER :: B2ADOF61V = 1237
+ INTEGER(IntKi), PARAMETER :: B2ADOF62V = 1238
+ INTEGER(IntKi), PARAMETER :: B2ADOF63V = 1239
+ INTEGER(IntKi), PARAMETER :: B2ADOF64V = 1240
+ INTEGER(IntKi), PARAMETER :: B2ADOF65V = 1241
+ INTEGER(IntKi), PARAMETER :: B2ADOF66V = 1242
+ INTEGER(IntKi), PARAMETER :: B2ADOF67V = 1243
+ INTEGER(IntKi), PARAMETER :: B2ADOF68V = 1244
+ INTEGER(IntKi), PARAMETER :: B2ADOF69V = 1245
+ INTEGER(IntKi), PARAMETER :: B2ADOF70V = 1246
+ INTEGER(IntKi), PARAMETER :: B2ADOF71V = 1247
+ INTEGER(IntKi), PARAMETER :: B2ADOF72V = 1248
+ INTEGER(IntKi), PARAMETER :: B2ADOF73V = 1249
+ INTEGER(IntKi), PARAMETER :: B2ADOF74V = 1250
+ INTEGER(IntKi), PARAMETER :: B2ADOF75V = 1251
+ INTEGER(IntKi), PARAMETER :: B2ADOF76V = 1252
+ INTEGER(IntKi), PARAMETER :: B2ADOF77V = 1253
+ INTEGER(IntKi), PARAMETER :: B2ADOF78V = 1254
+ INTEGER(IntKi), PARAMETER :: B2ADOF79V = 1255
+ INTEGER(IntKi), PARAMETER :: B2ADOF80V = 1256
+ INTEGER(IntKi), PARAMETER :: B2ADOF81V = 1257
+ INTEGER(IntKi), PARAMETER :: B2ADOF82V = 1258
+ INTEGER(IntKi), PARAMETER :: B2ADOF83V = 1259
+ INTEGER(IntKi), PARAMETER :: B2ADOF84V = 1260
+ INTEGER(IntKi), PARAMETER :: B2ADOF85V = 1261
+ INTEGER(IntKi), PARAMETER :: B2ADOF86V = 1262
+ INTEGER(IntKi), PARAMETER :: B2ADOF87V = 1263
+ INTEGER(IntKi), PARAMETER :: B2ADOF88V = 1264
+ INTEGER(IntKi), PARAMETER :: B2ADOF89V = 1265
+ INTEGER(IntKi), PARAMETER :: B2ADOF90V = 1266
+ INTEGER(IntKi), PARAMETER :: B2ADOF91V = 1267
+ INTEGER(IntKi), PARAMETER :: B2ADOF92V = 1268
+ INTEGER(IntKi), PARAMETER :: B2ADOF93V = 1269
+ INTEGER(IntKi), PARAMETER :: B2ADOF94V = 1270
+ INTEGER(IntKi), PARAMETER :: B2ADOF95V = 1271
+ INTEGER(IntKi), PARAMETER :: B2ADOF96V = 1272
+ INTEGER(IntKi), PARAMETER :: B2ADOF97V = 1273
+ INTEGER(IntKi), PARAMETER :: B2ADOF98V = 1274
+ INTEGER(IntKi), PARAMETER :: B2ADOF99V = 1275
+ INTEGER(IntKi), PARAMETER :: B3ADOF1V = 1276
+ INTEGER(IntKi), PARAMETER :: B3ADOF2V = 1277
+ INTEGER(IntKi), PARAMETER :: B3ADOF3V = 1278
+ INTEGER(IntKi), PARAMETER :: B3ADOF4V = 1279
+ INTEGER(IntKi), PARAMETER :: B3ADOF5V = 1280
+ INTEGER(IntKi), PARAMETER :: B3ADOF6V = 1281
+ INTEGER(IntKi), PARAMETER :: B3ADOF7V = 1282
+ INTEGER(IntKi), PARAMETER :: B3ADOF8V = 1283
+ INTEGER(IntKi), PARAMETER :: B3ADOF9V = 1284
+ INTEGER(IntKi), PARAMETER :: B3ADOF10V = 1285
+ INTEGER(IntKi), PARAMETER :: B3ADOF11V = 1286
+ INTEGER(IntKi), PARAMETER :: B3ADOF12V = 1287
+ INTEGER(IntKi), PARAMETER :: B3ADOF13V = 1288
+ INTEGER(IntKi), PARAMETER :: B3ADOF14V = 1289
+ INTEGER(IntKi), PARAMETER :: B3ADOF15V = 1290
+ INTEGER(IntKi), PARAMETER :: B3ADOF16V = 1291
+ INTEGER(IntKi), PARAMETER :: B3ADOF17V = 1292
+ INTEGER(IntKi), PARAMETER :: B3ADOF18V = 1293
+ INTEGER(IntKi), PARAMETER :: B3ADOF19V = 1294
+ INTEGER(IntKi), PARAMETER :: B3ADOF20V = 1295
+ INTEGER(IntKi), PARAMETER :: B3ADOF21V = 1296
+ INTEGER(IntKi), PARAMETER :: B3ADOF22V = 1297
+ INTEGER(IntKi), PARAMETER :: B3ADOF23V = 1298
+ INTEGER(IntKi), PARAMETER :: B3ADOF24V = 1299
+ INTEGER(IntKi), PARAMETER :: B3ADOF25V = 1300
+ INTEGER(IntKi), PARAMETER :: B3ADOF26V = 1301
+ INTEGER(IntKi), PARAMETER :: B3ADOF27V = 1302
+ INTEGER(IntKi), PARAMETER :: B3ADOF28V = 1303
+ INTEGER(IntKi), PARAMETER :: B3ADOF29V = 1304
+ INTEGER(IntKi), PARAMETER :: B3ADOF30V = 1305
+ INTEGER(IntKi), PARAMETER :: B3ADOF31V = 1306
+ INTEGER(IntKi), PARAMETER :: B3ADOF32V = 1307
+ INTEGER(IntKi), PARAMETER :: B3ADOF33V = 1308
+ INTEGER(IntKi), PARAMETER :: B3ADOF34V = 1309
+ INTEGER(IntKi), PARAMETER :: B3ADOF35V = 1310
+ INTEGER(IntKi), PARAMETER :: B3ADOF36V = 1311
+ INTEGER(IntKi), PARAMETER :: B3ADOF37V = 1312
+ INTEGER(IntKi), PARAMETER :: B3ADOF38V = 1313
+ INTEGER(IntKi), PARAMETER :: B3ADOF39V = 1314
+ INTEGER(IntKi), PARAMETER :: B3ADOF40V = 1315
+ INTEGER(IntKi), PARAMETER :: B3ADOF41V = 1316
+ INTEGER(IntKi), PARAMETER :: B3ADOF42V = 1317
+ INTEGER(IntKi), PARAMETER :: B3ADOF43V = 1318
+ INTEGER(IntKi), PARAMETER :: B3ADOF44V = 1319
+ INTEGER(IntKi), PARAMETER :: B3ADOF45V = 1320
+ INTEGER(IntKi), PARAMETER :: B3ADOF46V = 1321
+ INTEGER(IntKi), PARAMETER :: B3ADOF47V = 1322
+ INTEGER(IntKi), PARAMETER :: B3ADOF48V = 1323
+ INTEGER(IntKi), PARAMETER :: B3ADOF49V = 1324
+ INTEGER(IntKi), PARAMETER :: B3ADOF50V = 1325
+ INTEGER(IntKi), PARAMETER :: B3ADOF51V = 1326
+ INTEGER(IntKi), PARAMETER :: B3ADOF52V = 1327
+ INTEGER(IntKi), PARAMETER :: B3ADOF53V = 1328
+ INTEGER(IntKi), PARAMETER :: B3ADOF54V = 1329
+ INTEGER(IntKi), PARAMETER :: B3ADOF55V = 1330
+ INTEGER(IntKi), PARAMETER :: B3ADOF56V = 1331
+ INTEGER(IntKi), PARAMETER :: B3ADOF57V = 1332
+ INTEGER(IntKi), PARAMETER :: B3ADOF58V = 1333
+ INTEGER(IntKi), PARAMETER :: B3ADOF59V = 1334
+ INTEGER(IntKi), PARAMETER :: B3ADOF60V = 1335
+ INTEGER(IntKi), PARAMETER :: B3ADOF61V = 1336
+ INTEGER(IntKi), PARAMETER :: B3ADOF62V = 1337
+ INTEGER(IntKi), PARAMETER :: B3ADOF63V = 1338
+ INTEGER(IntKi), PARAMETER :: B3ADOF64V = 1339
+ INTEGER(IntKi), PARAMETER :: B3ADOF65V = 1340
+ INTEGER(IntKi), PARAMETER :: B3ADOF66V = 1341
+ INTEGER(IntKi), PARAMETER :: B3ADOF67V = 1342
+ INTEGER(IntKi), PARAMETER :: B3ADOF68V = 1343
+ INTEGER(IntKi), PARAMETER :: B3ADOF69V = 1344
+ INTEGER(IntKi), PARAMETER :: B3ADOF70V = 1345
+ INTEGER(IntKi), PARAMETER :: B3ADOF71V = 1346
+ INTEGER(IntKi), PARAMETER :: B3ADOF72V = 1347
+ INTEGER(IntKi), PARAMETER :: B3ADOF73V = 1348
+ INTEGER(IntKi), PARAMETER :: B3ADOF74V = 1349
+ INTEGER(IntKi), PARAMETER :: B3ADOF75V = 1350
+ INTEGER(IntKi), PARAMETER :: B3ADOF76V = 1351
+ INTEGER(IntKi), PARAMETER :: B3ADOF77V = 1352
+ INTEGER(IntKi), PARAMETER :: B3ADOF78V = 1353
+ INTEGER(IntKi), PARAMETER :: B3ADOF79V = 1354
+ INTEGER(IntKi), PARAMETER :: B3ADOF80V = 1355
+ INTEGER(IntKi), PARAMETER :: B3ADOF81V = 1356
+ INTEGER(IntKi), PARAMETER :: B3ADOF82V = 1357
+ INTEGER(IntKi), PARAMETER :: B3ADOF83V = 1358
+ INTEGER(IntKi), PARAMETER :: B3ADOF84V = 1359
+ INTEGER(IntKi), PARAMETER :: B3ADOF85V = 1360
+ INTEGER(IntKi), PARAMETER :: B3ADOF86V = 1361
+ INTEGER(IntKi), PARAMETER :: B3ADOF87V = 1362
+ INTEGER(IntKi), PARAMETER :: B3ADOF88V = 1363
+ INTEGER(IntKi), PARAMETER :: B3ADOF89V = 1364
+ INTEGER(IntKi), PARAMETER :: B3ADOF90V = 1365
+ INTEGER(IntKi), PARAMETER :: B3ADOF91V = 1366
+ INTEGER(IntKi), PARAMETER :: B3ADOF92V = 1367
+ INTEGER(IntKi), PARAMETER :: B3ADOF93V = 1368
+ INTEGER(IntKi), PARAMETER :: B3ADOF94V = 1369
+ INTEGER(IntKi), PARAMETER :: B3ADOF95V = 1370
+ INTEGER(IntKi), PARAMETER :: B3ADOF96V = 1371
+ INTEGER(IntKi), PARAMETER :: B3ADOF97V = 1372
+ INTEGER(IntKi), PARAMETER :: B3ADOF98V = 1373
+ INTEGER(IntKi), PARAMETER :: B3ADOF99V = 1374
+ INTEGER(IntKi), PARAMETER :: B4ADOF1V = 1375
+ INTEGER(IntKi), PARAMETER :: B4ADOF2V = 1376
+ INTEGER(IntKi), PARAMETER :: B4ADOF3V = 1377
+ INTEGER(IntKi), PARAMETER :: B4ADOF4V = 1378
+ INTEGER(IntKi), PARAMETER :: B4ADOF5V = 1379
+ INTEGER(IntKi), PARAMETER :: B4ADOF6V = 1380
+ INTEGER(IntKi), PARAMETER :: B4ADOF7V = 1381
+ INTEGER(IntKi), PARAMETER :: B4ADOF8V = 1382
+ INTEGER(IntKi), PARAMETER :: B4ADOF9V = 1383
+ INTEGER(IntKi), PARAMETER :: B4ADOF10V = 1384
+ INTEGER(IntKi), PARAMETER :: B4ADOF11V = 1385
+ INTEGER(IntKi), PARAMETER :: B4ADOF12V = 1386
+ INTEGER(IntKi), PARAMETER :: B4ADOF13V = 1387
+ INTEGER(IntKi), PARAMETER :: B4ADOF14V = 1388
+ INTEGER(IntKi), PARAMETER :: B4ADOF15V = 1389
+ INTEGER(IntKi), PARAMETER :: B4ADOF16V = 1390
+ INTEGER(IntKi), PARAMETER :: B4ADOF17V = 1391
+ INTEGER(IntKi), PARAMETER :: B4ADOF18V = 1392
+ INTEGER(IntKi), PARAMETER :: B4ADOF19V = 1393
+ INTEGER(IntKi), PARAMETER :: B4ADOF20V = 1394
+ INTEGER(IntKi), PARAMETER :: B4ADOF21V = 1395
+ INTEGER(IntKi), PARAMETER :: B4ADOF22V = 1396
+ INTEGER(IntKi), PARAMETER :: B4ADOF23V = 1397
+ INTEGER(IntKi), PARAMETER :: B4ADOF24V = 1398
+ INTEGER(IntKi), PARAMETER :: B4ADOF25V = 1399
+ INTEGER(IntKi), PARAMETER :: B4ADOF26V = 1400
+ INTEGER(IntKi), PARAMETER :: B4ADOF27V = 1401
+ INTEGER(IntKi), PARAMETER :: B4ADOF28V = 1402
+ INTEGER(IntKi), PARAMETER :: B4ADOF29V = 1403
+ INTEGER(IntKi), PARAMETER :: B4ADOF30V = 1404
+ INTEGER(IntKi), PARAMETER :: B4ADOF31V = 1405
+ INTEGER(IntKi), PARAMETER :: B4ADOF32V = 1406
+ INTEGER(IntKi), PARAMETER :: B4ADOF33V = 1407
+ INTEGER(IntKi), PARAMETER :: B4ADOF34V = 1408
+ INTEGER(IntKi), PARAMETER :: B4ADOF35V = 1409
+ INTEGER(IntKi), PARAMETER :: B4ADOF36V = 1410
+ INTEGER(IntKi), PARAMETER :: B4ADOF37V = 1411
+ INTEGER(IntKi), PARAMETER :: B4ADOF38V = 1412
+ INTEGER(IntKi), PARAMETER :: B4ADOF39V = 1413
+ INTEGER(IntKi), PARAMETER :: B4ADOF40V = 1414
+ INTEGER(IntKi), PARAMETER :: B4ADOF41V = 1415
+ INTEGER(IntKi), PARAMETER :: B4ADOF42V = 1416
+ INTEGER(IntKi), PARAMETER :: B4ADOF43V = 1417
+ INTEGER(IntKi), PARAMETER :: B4ADOF44V = 1418
+ INTEGER(IntKi), PARAMETER :: B4ADOF45V = 1419
+ INTEGER(IntKi), PARAMETER :: B4ADOF46V = 1420
+ INTEGER(IntKi), PARAMETER :: B4ADOF47V = 1421
+ INTEGER(IntKi), PARAMETER :: B4ADOF48V = 1422
+ INTEGER(IntKi), PARAMETER :: B4ADOF49V = 1423
+ INTEGER(IntKi), PARAMETER :: B4ADOF50V = 1424
+ INTEGER(IntKi), PARAMETER :: B4ADOF51V = 1425
+ INTEGER(IntKi), PARAMETER :: B4ADOF52V = 1426
+ INTEGER(IntKi), PARAMETER :: B4ADOF53V = 1427
+ INTEGER(IntKi), PARAMETER :: B4ADOF54V = 1428
+ INTEGER(IntKi), PARAMETER :: B4ADOF55V = 1429
+ INTEGER(IntKi), PARAMETER :: B4ADOF56V = 1430
+ INTEGER(IntKi), PARAMETER :: B4ADOF57V = 1431
+ INTEGER(IntKi), PARAMETER :: B4ADOF58V = 1432
+ INTEGER(IntKi), PARAMETER :: B4ADOF59V = 1433
+ INTEGER(IntKi), PARAMETER :: B4ADOF60V = 1434
+ INTEGER(IntKi), PARAMETER :: B4ADOF61V = 1435
+ INTEGER(IntKi), PARAMETER :: B4ADOF62V = 1436
+ INTEGER(IntKi), PARAMETER :: B4ADOF63V = 1437
+ INTEGER(IntKi), PARAMETER :: B4ADOF64V = 1438
+ INTEGER(IntKi), PARAMETER :: B4ADOF65V = 1439
+ INTEGER(IntKi), PARAMETER :: B4ADOF66V = 1440
+ INTEGER(IntKi), PARAMETER :: B4ADOF67V = 1441
+ INTEGER(IntKi), PARAMETER :: B4ADOF68V = 1442
+ INTEGER(IntKi), PARAMETER :: B4ADOF69V = 1443
+ INTEGER(IntKi), PARAMETER :: B4ADOF70V = 1444
+ INTEGER(IntKi), PARAMETER :: B4ADOF71V = 1445
+ INTEGER(IntKi), PARAMETER :: B4ADOF72V = 1446
+ INTEGER(IntKi), PARAMETER :: B4ADOF73V = 1447
+ INTEGER(IntKi), PARAMETER :: B4ADOF74V = 1448
+ INTEGER(IntKi), PARAMETER :: B4ADOF75V = 1449
+ INTEGER(IntKi), PARAMETER :: B4ADOF76V = 1450
+ INTEGER(IntKi), PARAMETER :: B4ADOF77V = 1451
+ INTEGER(IntKi), PARAMETER :: B4ADOF78V = 1452
+ INTEGER(IntKi), PARAMETER :: B4ADOF79V = 1453
+ INTEGER(IntKi), PARAMETER :: B4ADOF80V = 1454
+ INTEGER(IntKi), PARAMETER :: B4ADOF81V = 1455
+ INTEGER(IntKi), PARAMETER :: B4ADOF82V = 1456
+ INTEGER(IntKi), PARAMETER :: B4ADOF83V = 1457
+ INTEGER(IntKi), PARAMETER :: B4ADOF84V = 1458
+ INTEGER(IntKi), PARAMETER :: B4ADOF85V = 1459
+ INTEGER(IntKi), PARAMETER :: B4ADOF86V = 1460
+ INTEGER(IntKi), PARAMETER :: B4ADOF87V = 1461
+ INTEGER(IntKi), PARAMETER :: B4ADOF88V = 1462
+ INTEGER(IntKi), PARAMETER :: B4ADOF89V = 1463
+ INTEGER(IntKi), PARAMETER :: B4ADOF90V = 1464
+ INTEGER(IntKi), PARAMETER :: B4ADOF91V = 1465
+ INTEGER(IntKi), PARAMETER :: B4ADOF92V = 1466
+ INTEGER(IntKi), PARAMETER :: B4ADOF93V = 1467
+ INTEGER(IntKi), PARAMETER :: B4ADOF94V = 1468
+ INTEGER(IntKi), PARAMETER :: B4ADOF95V = 1469
+ INTEGER(IntKi), PARAMETER :: B4ADOF96V = 1470
+ INTEGER(IntKi), PARAMETER :: B4ADOF97V = 1471
+ INTEGER(IntKi), PARAMETER :: B4ADOF98V = 1472
+ INTEGER(IntKi), PARAMETER :: B4ADOF99V = 1473
+ INTEGER(IntKi), PARAMETER :: B5ADOF1V = 1474
+ INTEGER(IntKi), PARAMETER :: B5ADOF2V = 1475
+ INTEGER(IntKi), PARAMETER :: B5ADOF3V = 1476
+ INTEGER(IntKi), PARAMETER :: B5ADOF4V = 1477
+ INTEGER(IntKi), PARAMETER :: B5ADOF5V = 1478
+ INTEGER(IntKi), PARAMETER :: B5ADOF6V = 1479
+ INTEGER(IntKi), PARAMETER :: B5ADOF7V = 1480
+ INTEGER(IntKi), PARAMETER :: B5ADOF8V = 1481
+ INTEGER(IntKi), PARAMETER :: B5ADOF9V = 1482
+ INTEGER(IntKi), PARAMETER :: B5ADOF10V = 1483
+ INTEGER(IntKi), PARAMETER :: B5ADOF11V = 1484
+ INTEGER(IntKi), PARAMETER :: B5ADOF12V = 1485
+ INTEGER(IntKi), PARAMETER :: B5ADOF13V = 1486
+ INTEGER(IntKi), PARAMETER :: B5ADOF14V = 1487
+ INTEGER(IntKi), PARAMETER :: B5ADOF15V = 1488
+ INTEGER(IntKi), PARAMETER :: B5ADOF16V = 1489
+ INTEGER(IntKi), PARAMETER :: B5ADOF17V = 1490
+ INTEGER(IntKi), PARAMETER :: B5ADOF18V = 1491
+ INTEGER(IntKi), PARAMETER :: B5ADOF19V = 1492
+ INTEGER(IntKi), PARAMETER :: B5ADOF20V = 1493
+ INTEGER(IntKi), PARAMETER :: B5ADOF21V = 1494
+ INTEGER(IntKi), PARAMETER :: B5ADOF22V = 1495
+ INTEGER(IntKi), PARAMETER :: B5ADOF23V = 1496
+ INTEGER(IntKi), PARAMETER :: B5ADOF24V = 1497
+ INTEGER(IntKi), PARAMETER :: B5ADOF25V = 1498
+ INTEGER(IntKi), PARAMETER :: B5ADOF26V = 1499
+ INTEGER(IntKi), PARAMETER :: B5ADOF27V = 1500
+ INTEGER(IntKi), PARAMETER :: B5ADOF28V = 1501
+ INTEGER(IntKi), PARAMETER :: B5ADOF29V = 1502
+ INTEGER(IntKi), PARAMETER :: B5ADOF30V = 1503
+ INTEGER(IntKi), PARAMETER :: B5ADOF31V = 1504
+ INTEGER(IntKi), PARAMETER :: B5ADOF32V = 1505
+ INTEGER(IntKi), PARAMETER :: B5ADOF33V = 1506
+ INTEGER(IntKi), PARAMETER :: B5ADOF34V = 1507
+ INTEGER(IntKi), PARAMETER :: B5ADOF35V = 1508
+ INTEGER(IntKi), PARAMETER :: B5ADOF36V = 1509
+ INTEGER(IntKi), PARAMETER :: B5ADOF37V = 1510
+ INTEGER(IntKi), PARAMETER :: B5ADOF38V = 1511
+ INTEGER(IntKi), PARAMETER :: B5ADOF39V = 1512
+ INTEGER(IntKi), PARAMETER :: B5ADOF40V = 1513
+ INTEGER(IntKi), PARAMETER :: B5ADOF41V = 1514
+ INTEGER(IntKi), PARAMETER :: B5ADOF42V = 1515
+ INTEGER(IntKi), PARAMETER :: B5ADOF43V = 1516
+ INTEGER(IntKi), PARAMETER :: B5ADOF44V = 1517
+ INTEGER(IntKi), PARAMETER :: B5ADOF45V = 1518
+ INTEGER(IntKi), PARAMETER :: B5ADOF46V = 1519
+ INTEGER(IntKi), PARAMETER :: B5ADOF47V = 1520
+ INTEGER(IntKi), PARAMETER :: B5ADOF48V = 1521
+ INTEGER(IntKi), PARAMETER :: B5ADOF49V = 1522
+ INTEGER(IntKi), PARAMETER :: B5ADOF50V = 1523
+ INTEGER(IntKi), PARAMETER :: B5ADOF51V = 1524
+ INTEGER(IntKi), PARAMETER :: B5ADOF52V = 1525
+ INTEGER(IntKi), PARAMETER :: B5ADOF53V = 1526
+ INTEGER(IntKi), PARAMETER :: B5ADOF54V = 1527
+ INTEGER(IntKi), PARAMETER :: B5ADOF55V = 1528
+ INTEGER(IntKi), PARAMETER :: B5ADOF56V = 1529
+ INTEGER(IntKi), PARAMETER :: B5ADOF57V = 1530
+ INTEGER(IntKi), PARAMETER :: B5ADOF58V = 1531
+ INTEGER(IntKi), PARAMETER :: B5ADOF59V = 1532
+ INTEGER(IntKi), PARAMETER :: B5ADOF60V = 1533
+ INTEGER(IntKi), PARAMETER :: B5ADOF61V = 1534
+ INTEGER(IntKi), PARAMETER :: B5ADOF62V = 1535
+ INTEGER(IntKi), PARAMETER :: B5ADOF63V = 1536
+ INTEGER(IntKi), PARAMETER :: B5ADOF64V = 1537
+ INTEGER(IntKi), PARAMETER :: B5ADOF65V = 1538
+ INTEGER(IntKi), PARAMETER :: B5ADOF66V = 1539
+ INTEGER(IntKi), PARAMETER :: B5ADOF67V = 1540
+ INTEGER(IntKi), PARAMETER :: B5ADOF68V = 1541
+ INTEGER(IntKi), PARAMETER :: B5ADOF69V = 1542
+ INTEGER(IntKi), PARAMETER :: B5ADOF70V = 1543
+ INTEGER(IntKi), PARAMETER :: B5ADOF71V = 1544
+ INTEGER(IntKi), PARAMETER :: B5ADOF72V = 1545
+ INTEGER(IntKi), PARAMETER :: B5ADOF73V = 1546
+ INTEGER(IntKi), PARAMETER :: B5ADOF74V = 1547
+ INTEGER(IntKi), PARAMETER :: B5ADOF75V = 1548
+ INTEGER(IntKi), PARAMETER :: B5ADOF76V = 1549
+ INTEGER(IntKi), PARAMETER :: B5ADOF77V = 1550
+ INTEGER(IntKi), PARAMETER :: B5ADOF78V = 1551
+ INTEGER(IntKi), PARAMETER :: B5ADOF79V = 1552
+ INTEGER(IntKi), PARAMETER :: B5ADOF80V = 1553
+ INTEGER(IntKi), PARAMETER :: B5ADOF81V = 1554
+ INTEGER(IntKi), PARAMETER :: B5ADOF82V = 1555
+ INTEGER(IntKi), PARAMETER :: B5ADOF83V = 1556
+ INTEGER(IntKi), PARAMETER :: B5ADOF84V = 1557
+ INTEGER(IntKi), PARAMETER :: B5ADOF85V = 1558
+ INTEGER(IntKi), PARAMETER :: B5ADOF86V = 1559
+ INTEGER(IntKi), PARAMETER :: B5ADOF87V = 1560
+ INTEGER(IntKi), PARAMETER :: B5ADOF88V = 1561
+ INTEGER(IntKi), PARAMETER :: B5ADOF89V = 1562
+ INTEGER(IntKi), PARAMETER :: B5ADOF90V = 1563
+ INTEGER(IntKi), PARAMETER :: B5ADOF91V = 1564
+ INTEGER(IntKi), PARAMETER :: B5ADOF92V = 1565
+ INTEGER(IntKi), PARAMETER :: B5ADOF93V = 1566
+ INTEGER(IntKi), PARAMETER :: B5ADOF94V = 1567
+ INTEGER(IntKi), PARAMETER :: B5ADOF95V = 1568
+ INTEGER(IntKi), PARAMETER :: B5ADOF96V = 1569
+ INTEGER(IntKi), PARAMETER :: B5ADOF97V = 1570
+ INTEGER(IntKi), PARAMETER :: B5ADOF98V = 1571
+ INTEGER(IntKi), PARAMETER :: B5ADOF99V = 1572
+ INTEGER(IntKi), PARAMETER :: B6ADOF1V = 1573
+ INTEGER(IntKi), PARAMETER :: B6ADOF2V = 1574
+ INTEGER(IntKi), PARAMETER :: B6ADOF3V = 1575
+ INTEGER(IntKi), PARAMETER :: B6ADOF4V = 1576
+ INTEGER(IntKi), PARAMETER :: B6ADOF5V = 1577
+ INTEGER(IntKi), PARAMETER :: B6ADOF6V = 1578
+ INTEGER(IntKi), PARAMETER :: B6ADOF7V = 1579
+ INTEGER(IntKi), PARAMETER :: B6ADOF8V = 1580
+ INTEGER(IntKi), PARAMETER :: B6ADOF9V = 1581
+ INTEGER(IntKi), PARAMETER :: B6ADOF10V = 1582
+ INTEGER(IntKi), PARAMETER :: B6ADOF11V = 1583
+ INTEGER(IntKi), PARAMETER :: B6ADOF12V = 1584
+ INTEGER(IntKi), PARAMETER :: B6ADOF13V = 1585
+ INTEGER(IntKi), PARAMETER :: B6ADOF14V = 1586
+ INTEGER(IntKi), PARAMETER :: B6ADOF15V = 1587
+ INTEGER(IntKi), PARAMETER :: B6ADOF16V = 1588
+ INTEGER(IntKi), PARAMETER :: B6ADOF17V = 1589
+ INTEGER(IntKi), PARAMETER :: B6ADOF18V = 1590
+ INTEGER(IntKi), PARAMETER :: B6ADOF19V = 1591
+ INTEGER(IntKi), PARAMETER :: B6ADOF20V = 1592
+ INTEGER(IntKi), PARAMETER :: B6ADOF21V = 1593
+ INTEGER(IntKi), PARAMETER :: B6ADOF22V = 1594
+ INTEGER(IntKi), PARAMETER :: B6ADOF23V = 1595
+ INTEGER(IntKi), PARAMETER :: B6ADOF24V = 1596
+ INTEGER(IntKi), PARAMETER :: B6ADOF25V = 1597
+ INTEGER(IntKi), PARAMETER :: B6ADOF26V = 1598
+ INTEGER(IntKi), PARAMETER :: B6ADOF27V = 1599
+ INTEGER(IntKi), PARAMETER :: B6ADOF28V = 1600
+ INTEGER(IntKi), PARAMETER :: B6ADOF29V = 1601
+ INTEGER(IntKi), PARAMETER :: B6ADOF30V = 1602
+ INTEGER(IntKi), PARAMETER :: B6ADOF31V = 1603
+ INTEGER(IntKi), PARAMETER :: B6ADOF32V = 1604
+ INTEGER(IntKi), PARAMETER :: B6ADOF33V = 1605
+ INTEGER(IntKi), PARAMETER :: B6ADOF34V = 1606
+ INTEGER(IntKi), PARAMETER :: B6ADOF35V = 1607
+ INTEGER(IntKi), PARAMETER :: B6ADOF36V = 1608
+ INTEGER(IntKi), PARAMETER :: B6ADOF37V = 1609
+ INTEGER(IntKi), PARAMETER :: B6ADOF38V = 1610
+ INTEGER(IntKi), PARAMETER :: B6ADOF39V = 1611
+ INTEGER(IntKi), PARAMETER :: B6ADOF40V = 1612
+ INTEGER(IntKi), PARAMETER :: B6ADOF41V = 1613
+ INTEGER(IntKi), PARAMETER :: B6ADOF42V = 1614
+ INTEGER(IntKi), PARAMETER :: B6ADOF43V = 1615
+ INTEGER(IntKi), PARAMETER :: B6ADOF44V = 1616
+ INTEGER(IntKi), PARAMETER :: B6ADOF45V = 1617
+ INTEGER(IntKi), PARAMETER :: B6ADOF46V = 1618
+ INTEGER(IntKi), PARAMETER :: B6ADOF47V = 1619
+ INTEGER(IntKi), PARAMETER :: B6ADOF48V = 1620
+ INTEGER(IntKi), PARAMETER :: B6ADOF49V = 1621
+ INTEGER(IntKi), PARAMETER :: B6ADOF50V = 1622
+ INTEGER(IntKi), PARAMETER :: B6ADOF51V = 1623
+ INTEGER(IntKi), PARAMETER :: B6ADOF52V = 1624
+ INTEGER(IntKi), PARAMETER :: B6ADOF53V = 1625
+ INTEGER(IntKi), PARAMETER :: B6ADOF54V = 1626
+ INTEGER(IntKi), PARAMETER :: B6ADOF55V = 1627
+ INTEGER(IntKi), PARAMETER :: B6ADOF56V = 1628
+ INTEGER(IntKi), PARAMETER :: B6ADOF57V = 1629
+ INTEGER(IntKi), PARAMETER :: B6ADOF58V = 1630
+ INTEGER(IntKi), PARAMETER :: B6ADOF59V = 1631
+ INTEGER(IntKi), PARAMETER :: B6ADOF60V = 1632
+ INTEGER(IntKi), PARAMETER :: B6ADOF61V = 1633
+ INTEGER(IntKi), PARAMETER :: B6ADOF62V = 1634
+ INTEGER(IntKi), PARAMETER :: B6ADOF63V = 1635
+ INTEGER(IntKi), PARAMETER :: B6ADOF64V = 1636
+ INTEGER(IntKi), PARAMETER :: B6ADOF65V = 1637
+ INTEGER(IntKi), PARAMETER :: B6ADOF66V = 1638
+ INTEGER(IntKi), PARAMETER :: B6ADOF67V = 1639
+ INTEGER(IntKi), PARAMETER :: B6ADOF68V = 1640
+ INTEGER(IntKi), PARAMETER :: B6ADOF69V = 1641
+ INTEGER(IntKi), PARAMETER :: B6ADOF70V = 1642
+ INTEGER(IntKi), PARAMETER :: B6ADOF71V = 1643
+ INTEGER(IntKi), PARAMETER :: B6ADOF72V = 1644
+ INTEGER(IntKi), PARAMETER :: B6ADOF73V = 1645
+ INTEGER(IntKi), PARAMETER :: B6ADOF74V = 1646
+ INTEGER(IntKi), PARAMETER :: B6ADOF75V = 1647
+ INTEGER(IntKi), PARAMETER :: B6ADOF76V = 1648
+ INTEGER(IntKi), PARAMETER :: B6ADOF77V = 1649
+ INTEGER(IntKi), PARAMETER :: B6ADOF78V = 1650
+ INTEGER(IntKi), PARAMETER :: B6ADOF79V = 1651
+ INTEGER(IntKi), PARAMETER :: B6ADOF80V = 1652
+ INTEGER(IntKi), PARAMETER :: B6ADOF81V = 1653
+ INTEGER(IntKi), PARAMETER :: B6ADOF82V = 1654
+ INTEGER(IntKi), PARAMETER :: B6ADOF83V = 1655
+ INTEGER(IntKi), PARAMETER :: B6ADOF84V = 1656
+ INTEGER(IntKi), PARAMETER :: B6ADOF85V = 1657
+ INTEGER(IntKi), PARAMETER :: B6ADOF86V = 1658
+ INTEGER(IntKi), PARAMETER :: B6ADOF87V = 1659
+ INTEGER(IntKi), PARAMETER :: B6ADOF88V = 1660
+ INTEGER(IntKi), PARAMETER :: B6ADOF89V = 1661
+ INTEGER(IntKi), PARAMETER :: B6ADOF90V = 1662
+ INTEGER(IntKi), PARAMETER :: B6ADOF91V = 1663
+ INTEGER(IntKi), PARAMETER :: B6ADOF92V = 1664
+ INTEGER(IntKi), PARAMETER :: B6ADOF93V = 1665
+ INTEGER(IntKi), PARAMETER :: B6ADOF94V = 1666
+ INTEGER(IntKi), PARAMETER :: B6ADOF95V = 1667
+ INTEGER(IntKi), PARAMETER :: B6ADOF96V = 1668
+ INTEGER(IntKi), PARAMETER :: B6ADOF97V = 1669
+ INTEGER(IntKi), PARAMETER :: B6ADOF98V = 1670
+ INTEGER(IntKi), PARAMETER :: B6ADOF99V = 1671
+ INTEGER(IntKi), PARAMETER :: B7ADOF1V = 1672
+ INTEGER(IntKi), PARAMETER :: B7ADOF2V = 1673
+ INTEGER(IntKi), PARAMETER :: B7ADOF3V = 1674
+ INTEGER(IntKi), PARAMETER :: B7ADOF4V = 1675
+ INTEGER(IntKi), PARAMETER :: B7ADOF5V = 1676
+ INTEGER(IntKi), PARAMETER :: B7ADOF6V = 1677
+ INTEGER(IntKi), PARAMETER :: B7ADOF7V = 1678
+ INTEGER(IntKi), PARAMETER :: B7ADOF8V = 1679
+ INTEGER(IntKi), PARAMETER :: B7ADOF9V = 1680
+ INTEGER(IntKi), PARAMETER :: B7ADOF10V = 1681
+ INTEGER(IntKi), PARAMETER :: B7ADOF11V = 1682
+ INTEGER(IntKi), PARAMETER :: B7ADOF12V = 1683
+ INTEGER(IntKi), PARAMETER :: B7ADOF13V = 1684
+ INTEGER(IntKi), PARAMETER :: B7ADOF14V = 1685
+ INTEGER(IntKi), PARAMETER :: B7ADOF15V = 1686
+ INTEGER(IntKi), PARAMETER :: B7ADOF16V = 1687
+ INTEGER(IntKi), PARAMETER :: B7ADOF17V = 1688
+ INTEGER(IntKi), PARAMETER :: B7ADOF18V = 1689
+ INTEGER(IntKi), PARAMETER :: B7ADOF19V = 1690
+ INTEGER(IntKi), PARAMETER :: B7ADOF20V = 1691
+ INTEGER(IntKi), PARAMETER :: B7ADOF21V = 1692
+ INTEGER(IntKi), PARAMETER :: B7ADOF22V = 1693
+ INTEGER(IntKi), PARAMETER :: B7ADOF23V = 1694
+ INTEGER(IntKi), PARAMETER :: B7ADOF24V = 1695
+ INTEGER(IntKi), PARAMETER :: B7ADOF25V = 1696
+ INTEGER(IntKi), PARAMETER :: B7ADOF26V = 1697
+ INTEGER(IntKi), PARAMETER :: B7ADOF27V = 1698
+ INTEGER(IntKi), PARAMETER :: B7ADOF28V = 1699
+ INTEGER(IntKi), PARAMETER :: B7ADOF29V = 1700
+ INTEGER(IntKi), PARAMETER :: B7ADOF30V = 1701
+ INTEGER(IntKi), PARAMETER :: B7ADOF31V = 1702
+ INTEGER(IntKi), PARAMETER :: B7ADOF32V = 1703
+ INTEGER(IntKi), PARAMETER :: B7ADOF33V = 1704
+ INTEGER(IntKi), PARAMETER :: B7ADOF34V = 1705
+ INTEGER(IntKi), PARAMETER :: B7ADOF35V = 1706
+ INTEGER(IntKi), PARAMETER :: B7ADOF36V = 1707
+ INTEGER(IntKi), PARAMETER :: B7ADOF37V = 1708
+ INTEGER(IntKi), PARAMETER :: B7ADOF38V = 1709
+ INTEGER(IntKi), PARAMETER :: B7ADOF39V = 1710
+ INTEGER(IntKi), PARAMETER :: B7ADOF40V = 1711
+ INTEGER(IntKi), PARAMETER :: B7ADOF41V = 1712
+ INTEGER(IntKi), PARAMETER :: B7ADOF42V = 1713
+ INTEGER(IntKi), PARAMETER :: B7ADOF43V = 1714
+ INTEGER(IntKi), PARAMETER :: B7ADOF44V = 1715
+ INTEGER(IntKi), PARAMETER :: B7ADOF45V = 1716
+ INTEGER(IntKi), PARAMETER :: B7ADOF46V = 1717
+ INTEGER(IntKi), PARAMETER :: B7ADOF47V = 1718
+ INTEGER(IntKi), PARAMETER :: B7ADOF48V = 1719
+ INTEGER(IntKi), PARAMETER :: B7ADOF49V = 1720
+ INTEGER(IntKi), PARAMETER :: B7ADOF50V = 1721
+ INTEGER(IntKi), PARAMETER :: B7ADOF51V = 1722
+ INTEGER(IntKi), PARAMETER :: B7ADOF52V = 1723
+ INTEGER(IntKi), PARAMETER :: B7ADOF53V = 1724
+ INTEGER(IntKi), PARAMETER :: B7ADOF54V = 1725
+ INTEGER(IntKi), PARAMETER :: B7ADOF55V = 1726
+ INTEGER(IntKi), PARAMETER :: B7ADOF56V = 1727
+ INTEGER(IntKi), PARAMETER :: B7ADOF57V = 1728
+ INTEGER(IntKi), PARAMETER :: B7ADOF58V = 1729
+ INTEGER(IntKi), PARAMETER :: B7ADOF59V = 1730
+ INTEGER(IntKi), PARAMETER :: B7ADOF60V = 1731
+ INTEGER(IntKi), PARAMETER :: B7ADOF61V = 1732
+ INTEGER(IntKi), PARAMETER :: B7ADOF62V = 1733
+ INTEGER(IntKi), PARAMETER :: B7ADOF63V = 1734
+ INTEGER(IntKi), PARAMETER :: B7ADOF64V = 1735
+ INTEGER(IntKi), PARAMETER :: B7ADOF65V = 1736
+ INTEGER(IntKi), PARAMETER :: B7ADOF66V = 1737
+ INTEGER(IntKi), PARAMETER :: B7ADOF67V = 1738
+ INTEGER(IntKi), PARAMETER :: B7ADOF68V = 1739
+ INTEGER(IntKi), PARAMETER :: B7ADOF69V = 1740
+ INTEGER(IntKi), PARAMETER :: B7ADOF70V = 1741
+ INTEGER(IntKi), PARAMETER :: B7ADOF71V = 1742
+ INTEGER(IntKi), PARAMETER :: B7ADOF72V = 1743
+ INTEGER(IntKi), PARAMETER :: B7ADOF73V = 1744
+ INTEGER(IntKi), PARAMETER :: B7ADOF74V = 1745
+ INTEGER(IntKi), PARAMETER :: B7ADOF75V = 1746
+ INTEGER(IntKi), PARAMETER :: B7ADOF76V = 1747
+ INTEGER(IntKi), PARAMETER :: B7ADOF77V = 1748
+ INTEGER(IntKi), PARAMETER :: B7ADOF78V = 1749
+ INTEGER(IntKi), PARAMETER :: B7ADOF79V = 1750
+ INTEGER(IntKi), PARAMETER :: B7ADOF80V = 1751
+ INTEGER(IntKi), PARAMETER :: B7ADOF81V = 1752
+ INTEGER(IntKi), PARAMETER :: B7ADOF82V = 1753
+ INTEGER(IntKi), PARAMETER :: B7ADOF83V = 1754
+ INTEGER(IntKi), PARAMETER :: B7ADOF84V = 1755
+ INTEGER(IntKi), PARAMETER :: B7ADOF85V = 1756
+ INTEGER(IntKi), PARAMETER :: B7ADOF86V = 1757
+ INTEGER(IntKi), PARAMETER :: B7ADOF87V = 1758
+ INTEGER(IntKi), PARAMETER :: B7ADOF88V = 1759
+ INTEGER(IntKi), PARAMETER :: B7ADOF89V = 1760
+ INTEGER(IntKi), PARAMETER :: B7ADOF90V = 1761
+ INTEGER(IntKi), PARAMETER :: B7ADOF91V = 1762
+ INTEGER(IntKi), PARAMETER :: B7ADOF92V = 1763
+ INTEGER(IntKi), PARAMETER :: B7ADOF93V = 1764
+ INTEGER(IntKi), PARAMETER :: B7ADOF94V = 1765
+ INTEGER(IntKi), PARAMETER :: B7ADOF95V = 1766
+ INTEGER(IntKi), PARAMETER :: B7ADOF96V = 1767
+ INTEGER(IntKi), PARAMETER :: B7ADOF97V = 1768
+ INTEGER(IntKi), PARAMETER :: B7ADOF98V = 1769
+ INTEGER(IntKi), PARAMETER :: B7ADOF99V = 1770
+ INTEGER(IntKi), PARAMETER :: B8ADOF1V = 1771
+ INTEGER(IntKi), PARAMETER :: B8ADOF2V = 1772
+ INTEGER(IntKi), PARAMETER :: B8ADOF3V = 1773
+ INTEGER(IntKi), PARAMETER :: B8ADOF4V = 1774
+ INTEGER(IntKi), PARAMETER :: B8ADOF5V = 1775
+ INTEGER(IntKi), PARAMETER :: B8ADOF6V = 1776
+ INTEGER(IntKi), PARAMETER :: B8ADOF7V = 1777
+ INTEGER(IntKi), PARAMETER :: B8ADOF8V = 1778
+ INTEGER(IntKi), PARAMETER :: B8ADOF9V = 1779
+ INTEGER(IntKi), PARAMETER :: B8ADOF10V = 1780
+ INTEGER(IntKi), PARAMETER :: B8ADOF11V = 1781
+ INTEGER(IntKi), PARAMETER :: B8ADOF12V = 1782
+ INTEGER(IntKi), PARAMETER :: B8ADOF13V = 1783
+ INTEGER(IntKi), PARAMETER :: B8ADOF14V = 1784
+ INTEGER(IntKi), PARAMETER :: B8ADOF15V = 1785
+ INTEGER(IntKi), PARAMETER :: B8ADOF16V = 1786
+ INTEGER(IntKi), PARAMETER :: B8ADOF17V = 1787
+ INTEGER(IntKi), PARAMETER :: B8ADOF18V = 1788
+ INTEGER(IntKi), PARAMETER :: B8ADOF19V = 1789
+ INTEGER(IntKi), PARAMETER :: B8ADOF20V = 1790
+ INTEGER(IntKi), PARAMETER :: B8ADOF21V = 1791
+ INTEGER(IntKi), PARAMETER :: B8ADOF22V = 1792
+ INTEGER(IntKi), PARAMETER :: B8ADOF23V = 1793
+ INTEGER(IntKi), PARAMETER :: B8ADOF24V = 1794
+ INTEGER(IntKi), PARAMETER :: B8ADOF25V = 1795
+ INTEGER(IntKi), PARAMETER :: B8ADOF26V = 1796
+ INTEGER(IntKi), PARAMETER :: B8ADOF27V = 1797
+ INTEGER(IntKi), PARAMETER :: B8ADOF28V = 1798
+ INTEGER(IntKi), PARAMETER :: B8ADOF29V = 1799
+ INTEGER(IntKi), PARAMETER :: B8ADOF30V = 1800
+ INTEGER(IntKi), PARAMETER :: B8ADOF31V = 1801
+ INTEGER(IntKi), PARAMETER :: B8ADOF32V = 1802
+ INTEGER(IntKi), PARAMETER :: B8ADOF33V = 1803
+ INTEGER(IntKi), PARAMETER :: B8ADOF34V = 1804
+ INTEGER(IntKi), PARAMETER :: B8ADOF35V = 1805
+ INTEGER(IntKi), PARAMETER :: B8ADOF36V = 1806
+ INTEGER(IntKi), PARAMETER :: B8ADOF37V = 1807
+ INTEGER(IntKi), PARAMETER :: B8ADOF38V = 1808
+ INTEGER(IntKi), PARAMETER :: B8ADOF39V = 1809
+ INTEGER(IntKi), PARAMETER :: B8ADOF40V = 1810
+ INTEGER(IntKi), PARAMETER :: B8ADOF41V = 1811
+ INTEGER(IntKi), PARAMETER :: B8ADOF42V = 1812
+ INTEGER(IntKi), PARAMETER :: B8ADOF43V = 1813
+ INTEGER(IntKi), PARAMETER :: B8ADOF44V = 1814
+ INTEGER(IntKi), PARAMETER :: B8ADOF45V = 1815
+ INTEGER(IntKi), PARAMETER :: B8ADOF46V = 1816
+ INTEGER(IntKi), PARAMETER :: B8ADOF47V = 1817
+ INTEGER(IntKi), PARAMETER :: B8ADOF48V = 1818
+ INTEGER(IntKi), PARAMETER :: B8ADOF49V = 1819
+ INTEGER(IntKi), PARAMETER :: B8ADOF50V = 1820
+ INTEGER(IntKi), PARAMETER :: B8ADOF51V = 1821
+ INTEGER(IntKi), PARAMETER :: B8ADOF52V = 1822
+ INTEGER(IntKi), PARAMETER :: B8ADOF53V = 1823
+ INTEGER(IntKi), PARAMETER :: B8ADOF54V = 1824
+ INTEGER(IntKi), PARAMETER :: B8ADOF55V = 1825
+ INTEGER(IntKi), PARAMETER :: B8ADOF56V = 1826
+ INTEGER(IntKi), PARAMETER :: B8ADOF57V = 1827
+ INTEGER(IntKi), PARAMETER :: B8ADOF58V = 1828
+ INTEGER(IntKi), PARAMETER :: B8ADOF59V = 1829
+ INTEGER(IntKi), PARAMETER :: B8ADOF60V = 1830
+ INTEGER(IntKi), PARAMETER :: B8ADOF61V = 1831
+ INTEGER(IntKi), PARAMETER :: B8ADOF62V = 1832
+ INTEGER(IntKi), PARAMETER :: B8ADOF63V = 1833
+ INTEGER(IntKi), PARAMETER :: B8ADOF64V = 1834
+ INTEGER(IntKi), PARAMETER :: B8ADOF65V = 1835
+ INTEGER(IntKi), PARAMETER :: B8ADOF66V = 1836
+ INTEGER(IntKi), PARAMETER :: B8ADOF67V = 1837
+ INTEGER(IntKi), PARAMETER :: B8ADOF68V = 1838
+ INTEGER(IntKi), PARAMETER :: B8ADOF69V = 1839
+ INTEGER(IntKi), PARAMETER :: B8ADOF70V = 1840
+ INTEGER(IntKi), PARAMETER :: B8ADOF71V = 1841
+ INTEGER(IntKi), PARAMETER :: B8ADOF72V = 1842
+ INTEGER(IntKi), PARAMETER :: B8ADOF73V = 1843
+ INTEGER(IntKi), PARAMETER :: B8ADOF74V = 1844
+ INTEGER(IntKi), PARAMETER :: B8ADOF75V = 1845
+ INTEGER(IntKi), PARAMETER :: B8ADOF76V = 1846
+ INTEGER(IntKi), PARAMETER :: B8ADOF77V = 1847
+ INTEGER(IntKi), PARAMETER :: B8ADOF78V = 1848
+ INTEGER(IntKi), PARAMETER :: B8ADOF79V = 1849
+ INTEGER(IntKi), PARAMETER :: B8ADOF80V = 1850
+ INTEGER(IntKi), PARAMETER :: B8ADOF81V = 1851
+ INTEGER(IntKi), PARAMETER :: B8ADOF82V = 1852
+ INTEGER(IntKi), PARAMETER :: B8ADOF83V = 1853
+ INTEGER(IntKi), PARAMETER :: B8ADOF84V = 1854
+ INTEGER(IntKi), PARAMETER :: B8ADOF85V = 1855
+ INTEGER(IntKi), PARAMETER :: B8ADOF86V = 1856
+ INTEGER(IntKi), PARAMETER :: B8ADOF87V = 1857
+ INTEGER(IntKi), PARAMETER :: B8ADOF88V = 1858
+ INTEGER(IntKi), PARAMETER :: B8ADOF89V = 1859
+ INTEGER(IntKi), PARAMETER :: B8ADOF90V = 1860
+ INTEGER(IntKi), PARAMETER :: B8ADOF91V = 1861
+ INTEGER(IntKi), PARAMETER :: B8ADOF92V = 1862
+ INTEGER(IntKi), PARAMETER :: B8ADOF93V = 1863
+ INTEGER(IntKi), PARAMETER :: B8ADOF94V = 1864
+ INTEGER(IntKi), PARAMETER :: B8ADOF95V = 1865
+ INTEGER(IntKi), PARAMETER :: B8ADOF96V = 1866
+ INTEGER(IntKi), PARAMETER :: B8ADOF97V = 1867
+ INTEGER(IntKi), PARAMETER :: B8ADOF98V = 1868
+ INTEGER(IntKi), PARAMETER :: B8ADOF99V = 1869
+ INTEGER(IntKi), PARAMETER :: B9ADOF1V = 1870
+ INTEGER(IntKi), PARAMETER :: B9ADOF2V = 1871
+ INTEGER(IntKi), PARAMETER :: B9ADOF3V = 1872
+ INTEGER(IntKi), PARAMETER :: B9ADOF4V = 1873
+ INTEGER(IntKi), PARAMETER :: B9ADOF5V = 1874
+ INTEGER(IntKi), PARAMETER :: B9ADOF6V = 1875
+ INTEGER(IntKi), PARAMETER :: B9ADOF7V = 1876
+ INTEGER(IntKi), PARAMETER :: B9ADOF8V = 1877
+ INTEGER(IntKi), PARAMETER :: B9ADOF9V = 1878
+ INTEGER(IntKi), PARAMETER :: B9ADOF10V = 1879
+ INTEGER(IntKi), PARAMETER :: B9ADOF11V = 1880
+ INTEGER(IntKi), PARAMETER :: B9ADOF12V = 1881
+ INTEGER(IntKi), PARAMETER :: B9ADOF13V = 1882
+ INTEGER(IntKi), PARAMETER :: B9ADOF14V = 1883
+ INTEGER(IntKi), PARAMETER :: B9ADOF15V = 1884
+ INTEGER(IntKi), PARAMETER :: B9ADOF16V = 1885
+ INTEGER(IntKi), PARAMETER :: B9ADOF17V = 1886
+ INTEGER(IntKi), PARAMETER :: B9ADOF18V = 1887
+ INTEGER(IntKi), PARAMETER :: B9ADOF19V = 1888
+ INTEGER(IntKi), PARAMETER :: B9ADOF20V = 1889
+ INTEGER(IntKi), PARAMETER :: B9ADOF21V = 1890
+ INTEGER(IntKi), PARAMETER :: B9ADOF22V = 1891
+ INTEGER(IntKi), PARAMETER :: B9ADOF23V = 1892
+ INTEGER(IntKi), PARAMETER :: B9ADOF24V = 1893
+ INTEGER(IntKi), PARAMETER :: B9ADOF25V = 1894
+ INTEGER(IntKi), PARAMETER :: B9ADOF26V = 1895
+ INTEGER(IntKi), PARAMETER :: B9ADOF27V = 1896
+ INTEGER(IntKi), PARAMETER :: B9ADOF28V = 1897
+ INTEGER(IntKi), PARAMETER :: B9ADOF29V = 1898
+ INTEGER(IntKi), PARAMETER :: B9ADOF30V = 1899
+ INTEGER(IntKi), PARAMETER :: B9ADOF31V = 1900
+ INTEGER(IntKi), PARAMETER :: B9ADOF32V = 1901
+ INTEGER(IntKi), PARAMETER :: B9ADOF33V = 1902
+ INTEGER(IntKi), PARAMETER :: B9ADOF34V = 1903
+ INTEGER(IntKi), PARAMETER :: B9ADOF35V = 1904
+ INTEGER(IntKi), PARAMETER :: B9ADOF36V = 1905
+ INTEGER(IntKi), PARAMETER :: B9ADOF37V = 1906
+ INTEGER(IntKi), PARAMETER :: B9ADOF38V = 1907
+ INTEGER(IntKi), PARAMETER :: B9ADOF39V = 1908
+ INTEGER(IntKi), PARAMETER :: B9ADOF40V = 1909
+ INTEGER(IntKi), PARAMETER :: B9ADOF41V = 1910
+ INTEGER(IntKi), PARAMETER :: B9ADOF42V = 1911
+ INTEGER(IntKi), PARAMETER :: B9ADOF43V = 1912
+ INTEGER(IntKi), PARAMETER :: B9ADOF44V = 1913
+ INTEGER(IntKi), PARAMETER :: B9ADOF45V = 1914
+ INTEGER(IntKi), PARAMETER :: B9ADOF46V = 1915
+ INTEGER(IntKi), PARAMETER :: B9ADOF47V = 1916
+ INTEGER(IntKi), PARAMETER :: B9ADOF48V = 1917
+ INTEGER(IntKi), PARAMETER :: B9ADOF49V = 1918
+ INTEGER(IntKi), PARAMETER :: B9ADOF50V = 1919
+ INTEGER(IntKi), PARAMETER :: B9ADOF51V = 1920
+ INTEGER(IntKi), PARAMETER :: B9ADOF52V = 1921
+ INTEGER(IntKi), PARAMETER :: B9ADOF53V = 1922
+ INTEGER(IntKi), PARAMETER :: B9ADOF54V = 1923
+ INTEGER(IntKi), PARAMETER :: B9ADOF55V = 1924
+ INTEGER(IntKi), PARAMETER :: B9ADOF56V = 1925
+ INTEGER(IntKi), PARAMETER :: B9ADOF57V = 1926
+ INTEGER(IntKi), PARAMETER :: B9ADOF58V = 1927
+ INTEGER(IntKi), PARAMETER :: B9ADOF59V = 1928
+ INTEGER(IntKi), PARAMETER :: B9ADOF60V = 1929
+ INTEGER(IntKi), PARAMETER :: B9ADOF61V = 1930
+ INTEGER(IntKi), PARAMETER :: B9ADOF62V = 1931
+ INTEGER(IntKi), PARAMETER :: B9ADOF63V = 1932
+ INTEGER(IntKi), PARAMETER :: B9ADOF64V = 1933
+ INTEGER(IntKi), PARAMETER :: B9ADOF65V = 1934
+ INTEGER(IntKi), PARAMETER :: B9ADOF66V = 1935
+ INTEGER(IntKi), PARAMETER :: B9ADOF67V = 1936
+ INTEGER(IntKi), PARAMETER :: B9ADOF68V = 1937
+ INTEGER(IntKi), PARAMETER :: B9ADOF69V = 1938
+ INTEGER(IntKi), PARAMETER :: B9ADOF70V = 1939
+ INTEGER(IntKi), PARAMETER :: B9ADOF71V = 1940
+ INTEGER(IntKi), PARAMETER :: B9ADOF72V = 1941
+ INTEGER(IntKi), PARAMETER :: B9ADOF73V = 1942
+ INTEGER(IntKi), PARAMETER :: B9ADOF74V = 1943
+ INTEGER(IntKi), PARAMETER :: B9ADOF75V = 1944
+ INTEGER(IntKi), PARAMETER :: B9ADOF76V = 1945
+ INTEGER(IntKi), PARAMETER :: B9ADOF77V = 1946
+ INTEGER(IntKi), PARAMETER :: B9ADOF78V = 1947
+ INTEGER(IntKi), PARAMETER :: B9ADOF79V = 1948
+ INTEGER(IntKi), PARAMETER :: B9ADOF80V = 1949
+ INTEGER(IntKi), PARAMETER :: B9ADOF81V = 1950
+ INTEGER(IntKi), PARAMETER :: B9ADOF82V = 1951
+ INTEGER(IntKi), PARAMETER :: B9ADOF83V = 1952
+ INTEGER(IntKi), PARAMETER :: B9ADOF84V = 1953
+ INTEGER(IntKi), PARAMETER :: B9ADOF85V = 1954
+ INTEGER(IntKi), PARAMETER :: B9ADOF86V = 1955
+ INTEGER(IntKi), PARAMETER :: B9ADOF87V = 1956
+ INTEGER(IntKi), PARAMETER :: B9ADOF88V = 1957
+ INTEGER(IntKi), PARAMETER :: B9ADOF89V = 1958
+ INTEGER(IntKi), PARAMETER :: B9ADOF90V = 1959
+ INTEGER(IntKi), PARAMETER :: B9ADOF91V = 1960
+ INTEGER(IntKi), PARAMETER :: B9ADOF92V = 1961
+ INTEGER(IntKi), PARAMETER :: B9ADOF93V = 1962
+ INTEGER(IntKi), PARAMETER :: B9ADOF94V = 1963
+ INTEGER(IntKi), PARAMETER :: B9ADOF95V = 1964
+ INTEGER(IntKi), PARAMETER :: B9ADOF96V = 1965
+ INTEGER(IntKi), PARAMETER :: B9ADOF97V = 1966
+ INTEGER(IntKi), PARAMETER :: B9ADOF98V = 1967
+ INTEGER(IntKi), PARAMETER :: B9ADOF99V = 1968
+ INTEGER(IntKi), PARAMETER :: B1ADOF1A = 1969
+ INTEGER(IntKi), PARAMETER :: B1ADOF2A = 1970
+ INTEGER(IntKi), PARAMETER :: B1ADOF3A = 1971
+ INTEGER(IntKi), PARAMETER :: B1ADOF4A = 1972
+ INTEGER(IntKi), PARAMETER :: B1ADOF5A = 1973
+ INTEGER(IntKi), PARAMETER :: B1ADOF6A = 1974
+ INTEGER(IntKi), PARAMETER :: B1ADOF7A = 1975
+ INTEGER(IntKi), PARAMETER :: B1ADOF8A = 1976
+ INTEGER(IntKi), PARAMETER :: B1ADOF9A = 1977
+ INTEGER(IntKi), PARAMETER :: B1ADOF10A = 1978
+ INTEGER(IntKi), PARAMETER :: B1ADOF11A = 1979
+ INTEGER(IntKi), PARAMETER :: B1ADOF12A = 1980
+ INTEGER(IntKi), PARAMETER :: B1ADOF13A = 1981
+ INTEGER(IntKi), PARAMETER :: B1ADOF14A = 1982
+ INTEGER(IntKi), PARAMETER :: B1ADOF15A = 1983
+ INTEGER(IntKi), PARAMETER :: B1ADOF16A = 1984
+ INTEGER(IntKi), PARAMETER :: B1ADOF17A = 1985
+ INTEGER(IntKi), PARAMETER :: B1ADOF18A = 1986
+ INTEGER(IntKi), PARAMETER :: B1ADOF19A = 1987
+ INTEGER(IntKi), PARAMETER :: B1ADOF20A = 1988
+ INTEGER(IntKi), PARAMETER :: B1ADOF21A = 1989
+ INTEGER(IntKi), PARAMETER :: B1ADOF22A = 1990
+ INTEGER(IntKi), PARAMETER :: B1ADOF23A = 1991
+ INTEGER(IntKi), PARAMETER :: B1ADOF24A = 1992
+ INTEGER(IntKi), PARAMETER :: B1ADOF25A = 1993
+ INTEGER(IntKi), PARAMETER :: B1ADOF26A = 1994
+ INTEGER(IntKi), PARAMETER :: B1ADOF27A = 1995
+ INTEGER(IntKi), PARAMETER :: B1ADOF28A = 1996
+ INTEGER(IntKi), PARAMETER :: B1ADOF29A = 1997
+ INTEGER(IntKi), PARAMETER :: B1ADOF30A = 1998
+ INTEGER(IntKi), PARAMETER :: B1ADOF31A = 1999
+ INTEGER(IntKi), PARAMETER :: B1ADOF32A = 2000
+ INTEGER(IntKi), PARAMETER :: B1ADOF33A = 2001
+ INTEGER(IntKi), PARAMETER :: B1ADOF34A = 2002
+ INTEGER(IntKi), PARAMETER :: B1ADOF35A = 2003
+ INTEGER(IntKi), PARAMETER :: B1ADOF36A = 2004
+ INTEGER(IntKi), PARAMETER :: B1ADOF37A = 2005
+ INTEGER(IntKi), PARAMETER :: B1ADOF38A = 2006
+ INTEGER(IntKi), PARAMETER :: B1ADOF39A = 2007
+ INTEGER(IntKi), PARAMETER :: B1ADOF40A = 2008
+ INTEGER(IntKi), PARAMETER :: B1ADOF41A = 2009
+ INTEGER(IntKi), PARAMETER :: B1ADOF42A = 2010
+ INTEGER(IntKi), PARAMETER :: B1ADOF43A = 2011
+ INTEGER(IntKi), PARAMETER :: B1ADOF44A = 2012
+ INTEGER(IntKi), PARAMETER :: B1ADOF45A = 2013
+ INTEGER(IntKi), PARAMETER :: B1ADOF46A = 2014
+ INTEGER(IntKi), PARAMETER :: B1ADOF47A = 2015
+ INTEGER(IntKi), PARAMETER :: B1ADOF48A = 2016
+ INTEGER(IntKi), PARAMETER :: B1ADOF49A = 2017
+ INTEGER(IntKi), PARAMETER :: B1ADOF50A = 2018
+ INTEGER(IntKi), PARAMETER :: B1ADOF51A = 2019
+ INTEGER(IntKi), PARAMETER :: B1ADOF52A = 2020
+ INTEGER(IntKi), PARAMETER :: B1ADOF53A = 2021
+ INTEGER(IntKi), PARAMETER :: B1ADOF54A = 2022
+ INTEGER(IntKi), PARAMETER :: B1ADOF55A = 2023
+ INTEGER(IntKi), PARAMETER :: B1ADOF56A = 2024
+ INTEGER(IntKi), PARAMETER :: B1ADOF57A = 2025
+ INTEGER(IntKi), PARAMETER :: B1ADOF58A = 2026
+ INTEGER(IntKi), PARAMETER :: B1ADOF59A = 2027
+ INTEGER(IntKi), PARAMETER :: B1ADOF60A = 2028
+ INTEGER(IntKi), PARAMETER :: B1ADOF61A = 2029
+ INTEGER(IntKi), PARAMETER :: B1ADOF62A = 2030
+ INTEGER(IntKi), PARAMETER :: B1ADOF63A = 2031
+ INTEGER(IntKi), PARAMETER :: B1ADOF64A = 2032
+ INTEGER(IntKi), PARAMETER :: B1ADOF65A = 2033
+ INTEGER(IntKi), PARAMETER :: B1ADOF66A = 2034
+ INTEGER(IntKi), PARAMETER :: B1ADOF67A = 2035
+ INTEGER(IntKi), PARAMETER :: B1ADOF68A = 2036
+ INTEGER(IntKi), PARAMETER :: B1ADOF69A = 2037
+ INTEGER(IntKi), PARAMETER :: B1ADOF70A = 2038
+ INTEGER(IntKi), PARAMETER :: B1ADOF71A = 2039
+ INTEGER(IntKi), PARAMETER :: B1ADOF72A = 2040
+ INTEGER(IntKi), PARAMETER :: B1ADOF73A = 2041
+ INTEGER(IntKi), PARAMETER :: B1ADOF74A = 2042
+ INTEGER(IntKi), PARAMETER :: B1ADOF75A = 2043
+ INTEGER(IntKi), PARAMETER :: B1ADOF76A = 2044
+ INTEGER(IntKi), PARAMETER :: B1ADOF77A = 2045
+ INTEGER(IntKi), PARAMETER :: B1ADOF78A = 2046
+ INTEGER(IntKi), PARAMETER :: B1ADOF79A = 2047
+ INTEGER(IntKi), PARAMETER :: B1ADOF80A = 2048
+ INTEGER(IntKi), PARAMETER :: B1ADOF81A = 2049
+ INTEGER(IntKi), PARAMETER :: B1ADOF82A = 2050
+ INTEGER(IntKi), PARAMETER :: B1ADOF83A = 2051
+ INTEGER(IntKi), PARAMETER :: B1ADOF84A = 2052
+ INTEGER(IntKi), PARAMETER :: B1ADOF85A = 2053
+ INTEGER(IntKi), PARAMETER :: B1ADOF86A = 2054
+ INTEGER(IntKi), PARAMETER :: B1ADOF87A = 2055
+ INTEGER(IntKi), PARAMETER :: B1ADOF88A = 2056
+ INTEGER(IntKi), PARAMETER :: B1ADOF89A = 2057
+ INTEGER(IntKi), PARAMETER :: B1ADOF90A = 2058
+ INTEGER(IntKi), PARAMETER :: B1ADOF91A = 2059
+ INTEGER(IntKi), PARAMETER :: B1ADOF92A = 2060
+ INTEGER(IntKi), PARAMETER :: B1ADOF93A = 2061
+ INTEGER(IntKi), PARAMETER :: B1ADOF94A = 2062
+ INTEGER(IntKi), PARAMETER :: B1ADOF95A = 2063
+ INTEGER(IntKi), PARAMETER :: B1ADOF96A = 2064
+ INTEGER(IntKi), PARAMETER :: B1ADOF97A = 2065
+ INTEGER(IntKi), PARAMETER :: B1ADOF98A = 2066
+ INTEGER(IntKi), PARAMETER :: B1ADOF99A = 2067
+ INTEGER(IntKi), PARAMETER :: B2ADOF1A = 2068
+ INTEGER(IntKi), PARAMETER :: B2ADOF2A = 2069
+ INTEGER(IntKi), PARAMETER :: B2ADOF3A = 2070
+ INTEGER(IntKi), PARAMETER :: B2ADOF4A = 2071
+ INTEGER(IntKi), PARAMETER :: B2ADOF5A = 2072
+ INTEGER(IntKi), PARAMETER :: B2ADOF6A = 2073
+ INTEGER(IntKi), PARAMETER :: B2ADOF7A = 2074
+ INTEGER(IntKi), PARAMETER :: B2ADOF8A = 2075
+ INTEGER(IntKi), PARAMETER :: B2ADOF9A = 2076
+ INTEGER(IntKi), PARAMETER :: B2ADOF10A = 2077
+ INTEGER(IntKi), PARAMETER :: B2ADOF11A = 2078
+ INTEGER(IntKi), PARAMETER :: B2ADOF12A = 2079
+ INTEGER(IntKi), PARAMETER :: B2ADOF13A = 2080
+ INTEGER(IntKi), PARAMETER :: B2ADOF14A = 2081
+ INTEGER(IntKi), PARAMETER :: B2ADOF15A = 2082
+ INTEGER(IntKi), PARAMETER :: B2ADOF16A = 2083
+ INTEGER(IntKi), PARAMETER :: B2ADOF17A = 2084
+ INTEGER(IntKi), PARAMETER :: B2ADOF18A = 2085
+ INTEGER(IntKi), PARAMETER :: B2ADOF19A = 2086
+ INTEGER(IntKi), PARAMETER :: B2ADOF20A = 2087
+ INTEGER(IntKi), PARAMETER :: B2ADOF21A = 2088
+ INTEGER(IntKi), PARAMETER :: B2ADOF22A = 2089
+ INTEGER(IntKi), PARAMETER :: B2ADOF23A = 2090
+ INTEGER(IntKi), PARAMETER :: B2ADOF24A = 2091
+ INTEGER(IntKi), PARAMETER :: B2ADOF25A = 2092
+ INTEGER(IntKi), PARAMETER :: B2ADOF26A = 2093
+ INTEGER(IntKi), PARAMETER :: B2ADOF27A = 2094
+ INTEGER(IntKi), PARAMETER :: B2ADOF28A = 2095
+ INTEGER(IntKi), PARAMETER :: B2ADOF29A = 2096
+ INTEGER(IntKi), PARAMETER :: B2ADOF30A = 2097
+ INTEGER(IntKi), PARAMETER :: B2ADOF31A = 2098
+ INTEGER(IntKi), PARAMETER :: B2ADOF32A = 2099
+ INTEGER(IntKi), PARAMETER :: B2ADOF33A = 2100
+ INTEGER(IntKi), PARAMETER :: B2ADOF34A = 2101
+ INTEGER(IntKi), PARAMETER :: B2ADOF35A = 2102
+ INTEGER(IntKi), PARAMETER :: B2ADOF36A = 2103
+ INTEGER(IntKi), PARAMETER :: B2ADOF37A = 2104
+ INTEGER(IntKi), PARAMETER :: B2ADOF38A = 2105
+ INTEGER(IntKi), PARAMETER :: B2ADOF39A = 2106
+ INTEGER(IntKi), PARAMETER :: B2ADOF40A = 2107
+ INTEGER(IntKi), PARAMETER :: B2ADOF41A = 2108
+ INTEGER(IntKi), PARAMETER :: B2ADOF42A = 2109
+ INTEGER(IntKi), PARAMETER :: B2ADOF43A = 2110
+ INTEGER(IntKi), PARAMETER :: B2ADOF44A = 2111
+ INTEGER(IntKi), PARAMETER :: B2ADOF45A = 2112
+ INTEGER(IntKi), PARAMETER :: B2ADOF46A = 2113
+ INTEGER(IntKi), PARAMETER :: B2ADOF47A = 2114
+ INTEGER(IntKi), PARAMETER :: B2ADOF48A = 2115
+ INTEGER(IntKi), PARAMETER :: B2ADOF49A = 2116
+ INTEGER(IntKi), PARAMETER :: B2ADOF50A = 2117
+ INTEGER(IntKi), PARAMETER :: B2ADOF51A = 2118
+ INTEGER(IntKi), PARAMETER :: B2ADOF52A = 2119
+ INTEGER(IntKi), PARAMETER :: B2ADOF53A = 2120
+ INTEGER(IntKi), PARAMETER :: B2ADOF54A = 2121
+ INTEGER(IntKi), PARAMETER :: B2ADOF55A = 2122
+ INTEGER(IntKi), PARAMETER :: B2ADOF56A = 2123
+ INTEGER(IntKi), PARAMETER :: B2ADOF57A = 2124
+ INTEGER(IntKi), PARAMETER :: B2ADOF58A = 2125
+ INTEGER(IntKi), PARAMETER :: B2ADOF59A = 2126
+ INTEGER(IntKi), PARAMETER :: B2ADOF60A = 2127
+ INTEGER(IntKi), PARAMETER :: B2ADOF61A = 2128
+ INTEGER(IntKi), PARAMETER :: B2ADOF62A = 2129
+ INTEGER(IntKi), PARAMETER :: B2ADOF63A = 2130
+ INTEGER(IntKi), PARAMETER :: B2ADOF64A = 2131
+ INTEGER(IntKi), PARAMETER :: B2ADOF65A = 2132
+ INTEGER(IntKi), PARAMETER :: B2ADOF66A = 2133
+ INTEGER(IntKi), PARAMETER :: B2ADOF67A = 2134
+ INTEGER(IntKi), PARAMETER :: B2ADOF68A = 2135
+ INTEGER(IntKi), PARAMETER :: B2ADOF69A = 2136
+ INTEGER(IntKi), PARAMETER :: B2ADOF70A = 2137
+ INTEGER(IntKi), PARAMETER :: B2ADOF71A = 2138
+ INTEGER(IntKi), PARAMETER :: B2ADOF72A = 2139
+ INTEGER(IntKi), PARAMETER :: B2ADOF73A = 2140
+ INTEGER(IntKi), PARAMETER :: B2ADOF74A = 2141
+ INTEGER(IntKi), PARAMETER :: B2ADOF75A = 2142
+ INTEGER(IntKi), PARAMETER :: B2ADOF76A = 2143
+ INTEGER(IntKi), PARAMETER :: B2ADOF77A = 2144
+ INTEGER(IntKi), PARAMETER :: B2ADOF78A = 2145
+ INTEGER(IntKi), PARAMETER :: B2ADOF79A = 2146
+ INTEGER(IntKi), PARAMETER :: B2ADOF80A = 2147
+ INTEGER(IntKi), PARAMETER :: B2ADOF81A = 2148
+ INTEGER(IntKi), PARAMETER :: B2ADOF82A = 2149
+ INTEGER(IntKi), PARAMETER :: B2ADOF83A = 2150
+ INTEGER(IntKi), PARAMETER :: B2ADOF84A = 2151
+ INTEGER(IntKi), PARAMETER :: B2ADOF85A = 2152
+ INTEGER(IntKi), PARAMETER :: B2ADOF86A = 2153
+ INTEGER(IntKi), PARAMETER :: B2ADOF87A = 2154
+ INTEGER(IntKi), PARAMETER :: B2ADOF88A = 2155
+ INTEGER(IntKi), PARAMETER :: B2ADOF89A = 2156
+ INTEGER(IntKi), PARAMETER :: B2ADOF90A = 2157
+ INTEGER(IntKi), PARAMETER :: B2ADOF91A = 2158
+ INTEGER(IntKi), PARAMETER :: B2ADOF92A = 2159
+ INTEGER(IntKi), PARAMETER :: B2ADOF93A = 2160
+ INTEGER(IntKi), PARAMETER :: B2ADOF94A = 2161
+ INTEGER(IntKi), PARAMETER :: B2ADOF95A = 2162
+ INTEGER(IntKi), PARAMETER :: B2ADOF96A = 2163
+ INTEGER(IntKi), PARAMETER :: B2ADOF97A = 2164
+ INTEGER(IntKi), PARAMETER :: B2ADOF98A = 2165
+ INTEGER(IntKi), PARAMETER :: B2ADOF99A = 2166
+ INTEGER(IntKi), PARAMETER :: B3ADOF1A = 2167
+ INTEGER(IntKi), PARAMETER :: B3ADOF2A = 2168
+ INTEGER(IntKi), PARAMETER :: B3ADOF3A = 2169
+ INTEGER(IntKi), PARAMETER :: B3ADOF4A = 2170
+ INTEGER(IntKi), PARAMETER :: B3ADOF5A = 2171
+ INTEGER(IntKi), PARAMETER :: B3ADOF6A = 2172
+ INTEGER(IntKi), PARAMETER :: B3ADOF7A = 2173
+ INTEGER(IntKi), PARAMETER :: B3ADOF8A = 2174
+ INTEGER(IntKi), PARAMETER :: B3ADOF9A = 2175
+ INTEGER(IntKi), PARAMETER :: B3ADOF10A = 2176
+ INTEGER(IntKi), PARAMETER :: B3ADOF11A = 2177
+ INTEGER(IntKi), PARAMETER :: B3ADOF12A = 2178
+ INTEGER(IntKi), PARAMETER :: B3ADOF13A = 2179
+ INTEGER(IntKi), PARAMETER :: B3ADOF14A = 2180
+ INTEGER(IntKi), PARAMETER :: B3ADOF15A = 2181
+ INTEGER(IntKi), PARAMETER :: B3ADOF16A = 2182
+ INTEGER(IntKi), PARAMETER :: B3ADOF17A = 2183
+ INTEGER(IntKi), PARAMETER :: B3ADOF18A = 2184
+ INTEGER(IntKi), PARAMETER :: B3ADOF19A = 2185
+ INTEGER(IntKi), PARAMETER :: B3ADOF20A = 2186
+ INTEGER(IntKi), PARAMETER :: B3ADOF21A = 2187
+ INTEGER(IntKi), PARAMETER :: B3ADOF22A = 2188
+ INTEGER(IntKi), PARAMETER :: B3ADOF23A = 2189
+ INTEGER(IntKi), PARAMETER :: B3ADOF24A = 2190
+ INTEGER(IntKi), PARAMETER :: B3ADOF25A = 2191
+ INTEGER(IntKi), PARAMETER :: B3ADOF26A = 2192
+ INTEGER(IntKi), PARAMETER :: B3ADOF27A = 2193
+ INTEGER(IntKi), PARAMETER :: B3ADOF28A = 2194
+ INTEGER(IntKi), PARAMETER :: B3ADOF29A = 2195
+ INTEGER(IntKi), PARAMETER :: B3ADOF30A = 2196
+ INTEGER(IntKi), PARAMETER :: B3ADOF31A = 2197
+ INTEGER(IntKi), PARAMETER :: B3ADOF32A = 2198
+ INTEGER(IntKi), PARAMETER :: B3ADOF33A = 2199
+ INTEGER(IntKi), PARAMETER :: B3ADOF34A = 2200
+ INTEGER(IntKi), PARAMETER :: B3ADOF35A = 2201
+ INTEGER(IntKi), PARAMETER :: B3ADOF36A = 2202
+ INTEGER(IntKi), PARAMETER :: B3ADOF37A = 2203
+ INTEGER(IntKi), PARAMETER :: B3ADOF38A = 2204
+ INTEGER(IntKi), PARAMETER :: B3ADOF39A = 2205
+ INTEGER(IntKi), PARAMETER :: B3ADOF40A = 2206
+ INTEGER(IntKi), PARAMETER :: B3ADOF41A = 2207
+ INTEGER(IntKi), PARAMETER :: B3ADOF42A = 2208
+ INTEGER(IntKi), PARAMETER :: B3ADOF43A = 2209
+ INTEGER(IntKi), PARAMETER :: B3ADOF44A = 2210
+ INTEGER(IntKi), PARAMETER :: B3ADOF45A = 2211
+ INTEGER(IntKi), PARAMETER :: B3ADOF46A = 2212
+ INTEGER(IntKi), PARAMETER :: B3ADOF47A = 2213
+ INTEGER(IntKi), PARAMETER :: B3ADOF48A = 2214
+ INTEGER(IntKi), PARAMETER :: B3ADOF49A = 2215
+ INTEGER(IntKi), PARAMETER :: B3ADOF50A = 2216
+ INTEGER(IntKi), PARAMETER :: B3ADOF51A = 2217
+ INTEGER(IntKi), PARAMETER :: B3ADOF52A = 2218
+ INTEGER(IntKi), PARAMETER :: B3ADOF53A = 2219
+ INTEGER(IntKi), PARAMETER :: B3ADOF54A = 2220
+ INTEGER(IntKi), PARAMETER :: B3ADOF55A = 2221
+ INTEGER(IntKi), PARAMETER :: B3ADOF56A = 2222
+ INTEGER(IntKi), PARAMETER :: B3ADOF57A = 2223
+ INTEGER(IntKi), PARAMETER :: B3ADOF58A = 2224
+ INTEGER(IntKi), PARAMETER :: B3ADOF59A = 2225
+ INTEGER(IntKi), PARAMETER :: B3ADOF60A = 2226
+ INTEGER(IntKi), PARAMETER :: B3ADOF61A = 2227
+ INTEGER(IntKi), PARAMETER :: B3ADOF62A = 2228
+ INTEGER(IntKi), PARAMETER :: B3ADOF63A = 2229
+ INTEGER(IntKi), PARAMETER :: B3ADOF64A = 2230
+ INTEGER(IntKi), PARAMETER :: B3ADOF65A = 2231
+ INTEGER(IntKi), PARAMETER :: B3ADOF66A = 2232
+ INTEGER(IntKi), PARAMETER :: B3ADOF67A = 2233
+ INTEGER(IntKi), PARAMETER :: B3ADOF68A = 2234
+ INTEGER(IntKi), PARAMETER :: B3ADOF69A = 2235
+ INTEGER(IntKi), PARAMETER :: B3ADOF70A = 2236
+ INTEGER(IntKi), PARAMETER :: B3ADOF71A = 2237
+ INTEGER(IntKi), PARAMETER :: B3ADOF72A = 2238
+ INTEGER(IntKi), PARAMETER :: B3ADOF73A = 2239
+ INTEGER(IntKi), PARAMETER :: B3ADOF74A = 2240
+ INTEGER(IntKi), PARAMETER :: B3ADOF75A = 2241
+ INTEGER(IntKi), PARAMETER :: B3ADOF76A = 2242
+ INTEGER(IntKi), PARAMETER :: B3ADOF77A = 2243
+ INTEGER(IntKi), PARAMETER :: B3ADOF78A = 2244
+ INTEGER(IntKi), PARAMETER :: B3ADOF79A = 2245
+ INTEGER(IntKi), PARAMETER :: B3ADOF80A = 2246
+ INTEGER(IntKi), PARAMETER :: B3ADOF81A = 2247
+ INTEGER(IntKi), PARAMETER :: B3ADOF82A = 2248
+ INTEGER(IntKi), PARAMETER :: B3ADOF83A = 2249
+ INTEGER(IntKi), PARAMETER :: B3ADOF84A = 2250
+ INTEGER(IntKi), PARAMETER :: B3ADOF85A = 2251
+ INTEGER(IntKi), PARAMETER :: B3ADOF86A = 2252
+ INTEGER(IntKi), PARAMETER :: B3ADOF87A = 2253
+ INTEGER(IntKi), PARAMETER :: B3ADOF88A = 2254
+ INTEGER(IntKi), PARAMETER :: B3ADOF89A = 2255
+ INTEGER(IntKi), PARAMETER :: B3ADOF90A = 2256
+ INTEGER(IntKi), PARAMETER :: B3ADOF91A = 2257
+ INTEGER(IntKi), PARAMETER :: B3ADOF92A = 2258
+ INTEGER(IntKi), PARAMETER :: B3ADOF93A = 2259
+ INTEGER(IntKi), PARAMETER :: B3ADOF94A = 2260
+ INTEGER(IntKi), PARAMETER :: B3ADOF95A = 2261
+ INTEGER(IntKi), PARAMETER :: B3ADOF96A = 2262
+ INTEGER(IntKi), PARAMETER :: B3ADOF97A = 2263
+ INTEGER(IntKi), PARAMETER :: B3ADOF98A = 2264
+ INTEGER(IntKi), PARAMETER :: B3ADOF99A = 2265
+ INTEGER(IntKi), PARAMETER :: B4ADOF1A = 2266
+ INTEGER(IntKi), PARAMETER :: B4ADOF2A = 2267
+ INTEGER(IntKi), PARAMETER :: B4ADOF3A = 2268
+ INTEGER(IntKi), PARAMETER :: B4ADOF4A = 2269
+ INTEGER(IntKi), PARAMETER :: B4ADOF5A = 2270
+ INTEGER(IntKi), PARAMETER :: B4ADOF6A = 2271
+ INTEGER(IntKi), PARAMETER :: B4ADOF7A = 2272
+ INTEGER(IntKi), PARAMETER :: B4ADOF8A = 2273
+ INTEGER(IntKi), PARAMETER :: B4ADOF9A = 2274
+ INTEGER(IntKi), PARAMETER :: B4ADOF10A = 2275
+ INTEGER(IntKi), PARAMETER :: B4ADOF11A = 2276
+ INTEGER(IntKi), PARAMETER :: B4ADOF12A = 2277
+ INTEGER(IntKi), PARAMETER :: B4ADOF13A = 2278
+ INTEGER(IntKi), PARAMETER :: B4ADOF14A = 2279
+ INTEGER(IntKi), PARAMETER :: B4ADOF15A = 2280
+ INTEGER(IntKi), PARAMETER :: B4ADOF16A = 2281
+ INTEGER(IntKi), PARAMETER :: B4ADOF17A = 2282
+ INTEGER(IntKi), PARAMETER :: B4ADOF18A = 2283
+ INTEGER(IntKi), PARAMETER :: B4ADOF19A = 2284
+ INTEGER(IntKi), PARAMETER :: B4ADOF20A = 2285
+ INTEGER(IntKi), PARAMETER :: B4ADOF21A = 2286
+ INTEGER(IntKi), PARAMETER :: B4ADOF22A = 2287
+ INTEGER(IntKi), PARAMETER :: B4ADOF23A = 2288
+ INTEGER(IntKi), PARAMETER :: B4ADOF24A = 2289
+ INTEGER(IntKi), PARAMETER :: B4ADOF25A = 2290
+ INTEGER(IntKi), PARAMETER :: B4ADOF26A = 2291
+ INTEGER(IntKi), PARAMETER :: B4ADOF27A = 2292
+ INTEGER(IntKi), PARAMETER :: B4ADOF28A = 2293
+ INTEGER(IntKi), PARAMETER :: B4ADOF29A = 2294
+ INTEGER(IntKi), PARAMETER :: B4ADOF30A = 2295
+ INTEGER(IntKi), PARAMETER :: B4ADOF31A = 2296
+ INTEGER(IntKi), PARAMETER :: B4ADOF32A = 2297
+ INTEGER(IntKi), PARAMETER :: B4ADOF33A = 2298
+ INTEGER(IntKi), PARAMETER :: B4ADOF34A = 2299
+ INTEGER(IntKi), PARAMETER :: B4ADOF35A = 2300
+ INTEGER(IntKi), PARAMETER :: B4ADOF36A = 2301
+ INTEGER(IntKi), PARAMETER :: B4ADOF37A = 2302
+ INTEGER(IntKi), PARAMETER :: B4ADOF38A = 2303
+ INTEGER(IntKi), PARAMETER :: B4ADOF39A = 2304
+ INTEGER(IntKi), PARAMETER :: B4ADOF40A = 2305
+ INTEGER(IntKi), PARAMETER :: B4ADOF41A = 2306
+ INTEGER(IntKi), PARAMETER :: B4ADOF42A = 2307
+ INTEGER(IntKi), PARAMETER :: B4ADOF43A = 2308
+ INTEGER(IntKi), PARAMETER :: B4ADOF44A = 2309
+ INTEGER(IntKi), PARAMETER :: B4ADOF45A = 2310
+ INTEGER(IntKi), PARAMETER :: B4ADOF46A = 2311
+ INTEGER(IntKi), PARAMETER :: B4ADOF47A = 2312
+ INTEGER(IntKi), PARAMETER :: B4ADOF48A = 2313
+ INTEGER(IntKi), PARAMETER :: B4ADOF49A = 2314
+ INTEGER(IntKi), PARAMETER :: B4ADOF50A = 2315
+ INTEGER(IntKi), PARAMETER :: B4ADOF51A = 2316
+ INTEGER(IntKi), PARAMETER :: B4ADOF52A = 2317
+ INTEGER(IntKi), PARAMETER :: B4ADOF53A = 2318
+ INTEGER(IntKi), PARAMETER :: B4ADOF54A = 2319
+ INTEGER(IntKi), PARAMETER :: B4ADOF55A = 2320
+ INTEGER(IntKi), PARAMETER :: B4ADOF56A = 2321
+ INTEGER(IntKi), PARAMETER :: B4ADOF57A = 2322
+ INTEGER(IntKi), PARAMETER :: B4ADOF58A = 2323
+ INTEGER(IntKi), PARAMETER :: B4ADOF59A = 2324
+ INTEGER(IntKi), PARAMETER :: B4ADOF60A = 2325
+ INTEGER(IntKi), PARAMETER :: B4ADOF61A = 2326
+ INTEGER(IntKi), PARAMETER :: B4ADOF62A = 2327
+ INTEGER(IntKi), PARAMETER :: B4ADOF63A = 2328
+ INTEGER(IntKi), PARAMETER :: B4ADOF64A = 2329
+ INTEGER(IntKi), PARAMETER :: B4ADOF65A = 2330
+ INTEGER(IntKi), PARAMETER :: B4ADOF66A = 2331
+ INTEGER(IntKi), PARAMETER :: B4ADOF67A = 2332
+ INTEGER(IntKi), PARAMETER :: B4ADOF68A = 2333
+ INTEGER(IntKi), PARAMETER :: B4ADOF69A = 2334
+ INTEGER(IntKi), PARAMETER :: B4ADOF70A = 2335
+ INTEGER(IntKi), PARAMETER :: B4ADOF71A = 2336
+ INTEGER(IntKi), PARAMETER :: B4ADOF72A = 2337
+ INTEGER(IntKi), PARAMETER :: B4ADOF73A = 2338
+ INTEGER(IntKi), PARAMETER :: B4ADOF74A = 2339
+ INTEGER(IntKi), PARAMETER :: B4ADOF75A = 2340
+ INTEGER(IntKi), PARAMETER :: B4ADOF76A = 2341
+ INTEGER(IntKi), PARAMETER :: B4ADOF77A = 2342
+ INTEGER(IntKi), PARAMETER :: B4ADOF78A = 2343
+ INTEGER(IntKi), PARAMETER :: B4ADOF79A = 2344
+ INTEGER(IntKi), PARAMETER :: B4ADOF80A = 2345
+ INTEGER(IntKi), PARAMETER :: B4ADOF81A = 2346
+ INTEGER(IntKi), PARAMETER :: B4ADOF82A = 2347
+ INTEGER(IntKi), PARAMETER :: B4ADOF83A = 2348
+ INTEGER(IntKi), PARAMETER :: B4ADOF84A = 2349
+ INTEGER(IntKi), PARAMETER :: B4ADOF85A = 2350
+ INTEGER(IntKi), PARAMETER :: B4ADOF86A = 2351
+ INTEGER(IntKi), PARAMETER :: B4ADOF87A = 2352
+ INTEGER(IntKi), PARAMETER :: B4ADOF88A = 2353
+ INTEGER(IntKi), PARAMETER :: B4ADOF89A = 2354
+ INTEGER(IntKi), PARAMETER :: B4ADOF90A = 2355
+ INTEGER(IntKi), PARAMETER :: B4ADOF91A = 2356
+ INTEGER(IntKi), PARAMETER :: B4ADOF92A = 2357
+ INTEGER(IntKi), PARAMETER :: B4ADOF93A = 2358
+ INTEGER(IntKi), PARAMETER :: B4ADOF94A = 2359
+ INTEGER(IntKi), PARAMETER :: B4ADOF95A = 2360
+ INTEGER(IntKi), PARAMETER :: B4ADOF96A = 2361
+ INTEGER(IntKi), PARAMETER :: B4ADOF97A = 2362
+ INTEGER(IntKi), PARAMETER :: B4ADOF98A = 2363
+ INTEGER(IntKi), PARAMETER :: B4ADOF99A = 2364
+ INTEGER(IntKi), PARAMETER :: B5ADOF1A = 2365
+ INTEGER(IntKi), PARAMETER :: B5ADOF2A = 2366
+ INTEGER(IntKi), PARAMETER :: B5ADOF3A = 2367
+ INTEGER(IntKi), PARAMETER :: B5ADOF4A = 2368
+ INTEGER(IntKi), PARAMETER :: B5ADOF5A = 2369
+ INTEGER(IntKi), PARAMETER :: B5ADOF6A = 2370
+ INTEGER(IntKi), PARAMETER :: B5ADOF7A = 2371
+ INTEGER(IntKi), PARAMETER :: B5ADOF8A = 2372
+ INTEGER(IntKi), PARAMETER :: B5ADOF9A = 2373
+ INTEGER(IntKi), PARAMETER :: B5ADOF10A = 2374
+ INTEGER(IntKi), PARAMETER :: B5ADOF11A = 2375
+ INTEGER(IntKi), PARAMETER :: B5ADOF12A = 2376
+ INTEGER(IntKi), PARAMETER :: B5ADOF13A = 2377
+ INTEGER(IntKi), PARAMETER :: B5ADOF14A = 2378
+ INTEGER(IntKi), PARAMETER :: B5ADOF15A = 2379
+ INTEGER(IntKi), PARAMETER :: B5ADOF16A = 2380
+ INTEGER(IntKi), PARAMETER :: B5ADOF17A = 2381
+ INTEGER(IntKi), PARAMETER :: B5ADOF18A = 2382
+ INTEGER(IntKi), PARAMETER :: B5ADOF19A = 2383
+ INTEGER(IntKi), PARAMETER :: B5ADOF20A = 2384
+ INTEGER(IntKi), PARAMETER :: B5ADOF21A = 2385
+ INTEGER(IntKi), PARAMETER :: B5ADOF22A = 2386
+ INTEGER(IntKi), PARAMETER :: B5ADOF23A = 2387
+ INTEGER(IntKi), PARAMETER :: B5ADOF24A = 2388
+ INTEGER(IntKi), PARAMETER :: B5ADOF25A = 2389
+ INTEGER(IntKi), PARAMETER :: B5ADOF26A = 2390
+ INTEGER(IntKi), PARAMETER :: B5ADOF27A = 2391
+ INTEGER(IntKi), PARAMETER :: B5ADOF28A = 2392
+ INTEGER(IntKi), PARAMETER :: B5ADOF29A = 2393
+ INTEGER(IntKi), PARAMETER :: B5ADOF30A = 2394
+ INTEGER(IntKi), PARAMETER :: B5ADOF31A = 2395
+ INTEGER(IntKi), PARAMETER :: B5ADOF32A = 2396
+ INTEGER(IntKi), PARAMETER :: B5ADOF33A = 2397
+ INTEGER(IntKi), PARAMETER :: B5ADOF34A = 2398
+ INTEGER(IntKi), PARAMETER :: B5ADOF35A = 2399
+ INTEGER(IntKi), PARAMETER :: B5ADOF36A = 2400
+ INTEGER(IntKi), PARAMETER :: B5ADOF37A = 2401
+ INTEGER(IntKi), PARAMETER :: B5ADOF38A = 2402
+ INTEGER(IntKi), PARAMETER :: B5ADOF39A = 2403
+ INTEGER(IntKi), PARAMETER :: B5ADOF40A = 2404
+ INTEGER(IntKi), PARAMETER :: B5ADOF41A = 2405
+ INTEGER(IntKi), PARAMETER :: B5ADOF42A = 2406
+ INTEGER(IntKi), PARAMETER :: B5ADOF43A = 2407
+ INTEGER(IntKi), PARAMETER :: B5ADOF44A = 2408
+ INTEGER(IntKi), PARAMETER :: B5ADOF45A = 2409
+ INTEGER(IntKi), PARAMETER :: B5ADOF46A = 2410
+ INTEGER(IntKi), PARAMETER :: B5ADOF47A = 2411
+ INTEGER(IntKi), PARAMETER :: B5ADOF48A = 2412
+ INTEGER(IntKi), PARAMETER :: B5ADOF49A = 2413
+ INTEGER(IntKi), PARAMETER :: B5ADOF50A = 2414
+ INTEGER(IntKi), PARAMETER :: B5ADOF51A = 2415
+ INTEGER(IntKi), PARAMETER :: B5ADOF52A = 2416
+ INTEGER(IntKi), PARAMETER :: B5ADOF53A = 2417
+ INTEGER(IntKi), PARAMETER :: B5ADOF54A = 2418
+ INTEGER(IntKi), PARAMETER :: B5ADOF55A = 2419
+ INTEGER(IntKi), PARAMETER :: B5ADOF56A = 2420
+ INTEGER(IntKi), PARAMETER :: B5ADOF57A = 2421
+ INTEGER(IntKi), PARAMETER :: B5ADOF58A = 2422
+ INTEGER(IntKi), PARAMETER :: B5ADOF59A = 2423
+ INTEGER(IntKi), PARAMETER :: B5ADOF60A = 2424
+ INTEGER(IntKi), PARAMETER :: B5ADOF61A = 2425
+ INTEGER(IntKi), PARAMETER :: B5ADOF62A = 2426
+ INTEGER(IntKi), PARAMETER :: B5ADOF63A = 2427
+ INTEGER(IntKi), PARAMETER :: B5ADOF64A = 2428
+ INTEGER(IntKi), PARAMETER :: B5ADOF65A = 2429
+ INTEGER(IntKi), PARAMETER :: B5ADOF66A = 2430
+ INTEGER(IntKi), PARAMETER :: B5ADOF67A = 2431
+ INTEGER(IntKi), PARAMETER :: B5ADOF68A = 2432
+ INTEGER(IntKi), PARAMETER :: B5ADOF69A = 2433
+ INTEGER(IntKi), PARAMETER :: B5ADOF70A = 2434
+ INTEGER(IntKi), PARAMETER :: B5ADOF71A = 2435
+ INTEGER(IntKi), PARAMETER :: B5ADOF72A = 2436
+ INTEGER(IntKi), PARAMETER :: B5ADOF73A = 2437
+ INTEGER(IntKi), PARAMETER :: B5ADOF74A = 2438
+ INTEGER(IntKi), PARAMETER :: B5ADOF75A = 2439
+ INTEGER(IntKi), PARAMETER :: B5ADOF76A = 2440
+ INTEGER(IntKi), PARAMETER :: B5ADOF77A = 2441
+ INTEGER(IntKi), PARAMETER :: B5ADOF78A = 2442
+ INTEGER(IntKi), PARAMETER :: B5ADOF79A = 2443
+ INTEGER(IntKi), PARAMETER :: B5ADOF80A = 2444
+ INTEGER(IntKi), PARAMETER :: B5ADOF81A = 2445
+ INTEGER(IntKi), PARAMETER :: B5ADOF82A = 2446
+ INTEGER(IntKi), PARAMETER :: B5ADOF83A = 2447
+ INTEGER(IntKi), PARAMETER :: B5ADOF84A = 2448
+ INTEGER(IntKi), PARAMETER :: B5ADOF85A = 2449
+ INTEGER(IntKi), PARAMETER :: B5ADOF86A = 2450
+ INTEGER(IntKi), PARAMETER :: B5ADOF87A = 2451
+ INTEGER(IntKi), PARAMETER :: B5ADOF88A = 2452
+ INTEGER(IntKi), PARAMETER :: B5ADOF89A = 2453
+ INTEGER(IntKi), PARAMETER :: B5ADOF90A = 2454
+ INTEGER(IntKi), PARAMETER :: B5ADOF91A = 2455
+ INTEGER(IntKi), PARAMETER :: B5ADOF92A = 2456
+ INTEGER(IntKi), PARAMETER :: B5ADOF93A = 2457
+ INTEGER(IntKi), PARAMETER :: B5ADOF94A = 2458
+ INTEGER(IntKi), PARAMETER :: B5ADOF95A = 2459
+ INTEGER(IntKi), PARAMETER :: B5ADOF96A = 2460
+ INTEGER(IntKi), PARAMETER :: B5ADOF97A = 2461
+ INTEGER(IntKi), PARAMETER :: B5ADOF98A = 2462
+ INTEGER(IntKi), PARAMETER :: B5ADOF99A = 2463
+ INTEGER(IntKi), PARAMETER :: B6ADOF1A = 2464
+ INTEGER(IntKi), PARAMETER :: B6ADOF2A = 2465
+ INTEGER(IntKi), PARAMETER :: B6ADOF3A = 2466
+ INTEGER(IntKi), PARAMETER :: B6ADOF4A = 2467
+ INTEGER(IntKi), PARAMETER :: B6ADOF5A = 2468
+ INTEGER(IntKi), PARAMETER :: B6ADOF6A = 2469
+ INTEGER(IntKi), PARAMETER :: B6ADOF7A = 2470
+ INTEGER(IntKi), PARAMETER :: B6ADOF8A = 2471
+ INTEGER(IntKi), PARAMETER :: B6ADOF9A = 2472
+ INTEGER(IntKi), PARAMETER :: B6ADOF10A = 2473
+ INTEGER(IntKi), PARAMETER :: B6ADOF11A = 2474
+ INTEGER(IntKi), PARAMETER :: B6ADOF12A = 2475
+ INTEGER(IntKi), PARAMETER :: B6ADOF13A = 2476
+ INTEGER(IntKi), PARAMETER :: B6ADOF14A = 2477
+ INTEGER(IntKi), PARAMETER :: B6ADOF15A = 2478
+ INTEGER(IntKi), PARAMETER :: B6ADOF16A = 2479
+ INTEGER(IntKi), PARAMETER :: B6ADOF17A = 2480
+ INTEGER(IntKi), PARAMETER :: B6ADOF18A = 2481
+ INTEGER(IntKi), PARAMETER :: B6ADOF19A = 2482
+ INTEGER(IntKi), PARAMETER :: B6ADOF20A = 2483
+ INTEGER(IntKi), PARAMETER :: B6ADOF21A = 2484
+ INTEGER(IntKi), PARAMETER :: B6ADOF22A = 2485
+ INTEGER(IntKi), PARAMETER :: B6ADOF23A = 2486
+ INTEGER(IntKi), PARAMETER :: B6ADOF24A = 2487
+ INTEGER(IntKi), PARAMETER :: B6ADOF25A = 2488
+ INTEGER(IntKi), PARAMETER :: B6ADOF26A = 2489
+ INTEGER(IntKi), PARAMETER :: B6ADOF27A = 2490
+ INTEGER(IntKi), PARAMETER :: B6ADOF28A = 2491
+ INTEGER(IntKi), PARAMETER :: B6ADOF29A = 2492
+ INTEGER(IntKi), PARAMETER :: B6ADOF30A = 2493
+ INTEGER(IntKi), PARAMETER :: B6ADOF31A = 2494
+ INTEGER(IntKi), PARAMETER :: B6ADOF32A = 2495
+ INTEGER(IntKi), PARAMETER :: B6ADOF33A = 2496
+ INTEGER(IntKi), PARAMETER :: B6ADOF34A = 2497
+ INTEGER(IntKi), PARAMETER :: B6ADOF35A = 2498
+ INTEGER(IntKi), PARAMETER :: B6ADOF36A = 2499
+ INTEGER(IntKi), PARAMETER :: B6ADOF37A = 2500
+ INTEGER(IntKi), PARAMETER :: B6ADOF38A = 2501
+ INTEGER(IntKi), PARAMETER :: B6ADOF39A = 2502
+ INTEGER(IntKi), PARAMETER :: B6ADOF40A = 2503
+ INTEGER(IntKi), PARAMETER :: B6ADOF41A = 2504
+ INTEGER(IntKi), PARAMETER :: B6ADOF42A = 2505
+ INTEGER(IntKi), PARAMETER :: B6ADOF43A = 2506
+ INTEGER(IntKi), PARAMETER :: B6ADOF44A = 2507
+ INTEGER(IntKi), PARAMETER :: B6ADOF45A = 2508
+ INTEGER(IntKi), PARAMETER :: B6ADOF46A = 2509
+ INTEGER(IntKi), PARAMETER :: B6ADOF47A = 2510
+ INTEGER(IntKi), PARAMETER :: B6ADOF48A = 2511
+ INTEGER(IntKi), PARAMETER :: B6ADOF49A = 2512
+ INTEGER(IntKi), PARAMETER :: B6ADOF50A = 2513
+ INTEGER(IntKi), PARAMETER :: B6ADOF51A = 2514
+ INTEGER(IntKi), PARAMETER :: B6ADOF52A = 2515
+ INTEGER(IntKi), PARAMETER :: B6ADOF53A = 2516
+ INTEGER(IntKi), PARAMETER :: B6ADOF54A = 2517
+ INTEGER(IntKi), PARAMETER :: B6ADOF55A = 2518
+ INTEGER(IntKi), PARAMETER :: B6ADOF56A = 2519
+ INTEGER(IntKi), PARAMETER :: B6ADOF57A = 2520
+ INTEGER(IntKi), PARAMETER :: B6ADOF58A = 2521
+ INTEGER(IntKi), PARAMETER :: B6ADOF59A = 2522
+ INTEGER(IntKi), PARAMETER :: B6ADOF60A = 2523
+ INTEGER(IntKi), PARAMETER :: B6ADOF61A = 2524
+ INTEGER(IntKi), PARAMETER :: B6ADOF62A = 2525
+ INTEGER(IntKi), PARAMETER :: B6ADOF63A = 2526
+ INTEGER(IntKi), PARAMETER :: B6ADOF64A = 2527
+ INTEGER(IntKi), PARAMETER :: B6ADOF65A = 2528
+ INTEGER(IntKi), PARAMETER :: B6ADOF66A = 2529
+ INTEGER(IntKi), PARAMETER :: B6ADOF67A = 2530
+ INTEGER(IntKi), PARAMETER :: B6ADOF68A = 2531
+ INTEGER(IntKi), PARAMETER :: B6ADOF69A = 2532
+ INTEGER(IntKi), PARAMETER :: B6ADOF70A = 2533
+ INTEGER(IntKi), PARAMETER :: B6ADOF71A = 2534
+ INTEGER(IntKi), PARAMETER :: B6ADOF72A = 2535
+ INTEGER(IntKi), PARAMETER :: B6ADOF73A = 2536
+ INTEGER(IntKi), PARAMETER :: B6ADOF74A = 2537
+ INTEGER(IntKi), PARAMETER :: B6ADOF75A = 2538
+ INTEGER(IntKi), PARAMETER :: B6ADOF76A = 2539
+ INTEGER(IntKi), PARAMETER :: B6ADOF77A = 2540
+ INTEGER(IntKi), PARAMETER :: B6ADOF78A = 2541
+ INTEGER(IntKi), PARAMETER :: B6ADOF79A = 2542
+ INTEGER(IntKi), PARAMETER :: B6ADOF80A = 2543
+ INTEGER(IntKi), PARAMETER :: B6ADOF81A = 2544
+ INTEGER(IntKi), PARAMETER :: B6ADOF82A = 2545
+ INTEGER(IntKi), PARAMETER :: B6ADOF83A = 2546
+ INTEGER(IntKi), PARAMETER :: B6ADOF84A = 2547
+ INTEGER(IntKi), PARAMETER :: B6ADOF85A = 2548
+ INTEGER(IntKi), PARAMETER :: B6ADOF86A = 2549
+ INTEGER(IntKi), PARAMETER :: B6ADOF87A = 2550
+ INTEGER(IntKi), PARAMETER :: B6ADOF88A = 2551
+ INTEGER(IntKi), PARAMETER :: B6ADOF89A = 2552
+ INTEGER(IntKi), PARAMETER :: B6ADOF90A = 2553
+ INTEGER(IntKi), PARAMETER :: B6ADOF91A = 2554
+ INTEGER(IntKi), PARAMETER :: B6ADOF92A = 2555
+ INTEGER(IntKi), PARAMETER :: B6ADOF93A = 2556
+ INTEGER(IntKi), PARAMETER :: B6ADOF94A = 2557
+ INTEGER(IntKi), PARAMETER :: B6ADOF95A = 2558
+ INTEGER(IntKi), PARAMETER :: B6ADOF96A = 2559
+ INTEGER(IntKi), PARAMETER :: B6ADOF97A = 2560
+ INTEGER(IntKi), PARAMETER :: B6ADOF98A = 2561
+ INTEGER(IntKi), PARAMETER :: B6ADOF99A = 2562
+ INTEGER(IntKi), PARAMETER :: B7ADOF1A = 2563
+ INTEGER(IntKi), PARAMETER :: B7ADOF2A = 2564
+ INTEGER(IntKi), PARAMETER :: B7ADOF3A = 2565
+ INTEGER(IntKi), PARAMETER :: B7ADOF4A = 2566
+ INTEGER(IntKi), PARAMETER :: B7ADOF5A = 2567
+ INTEGER(IntKi), PARAMETER :: B7ADOF6A = 2568
+ INTEGER(IntKi), PARAMETER :: B7ADOF7A = 2569
+ INTEGER(IntKi), PARAMETER :: B7ADOF8A = 2570
+ INTEGER(IntKi), PARAMETER :: B7ADOF9A = 2571
+ INTEGER(IntKi), PARAMETER :: B7ADOF10A = 2572
+ INTEGER(IntKi), PARAMETER :: B7ADOF11A = 2573
+ INTEGER(IntKi), PARAMETER :: B7ADOF12A = 2574
+ INTEGER(IntKi), PARAMETER :: B7ADOF13A = 2575
+ INTEGER(IntKi), PARAMETER :: B7ADOF14A = 2576
+ INTEGER(IntKi), PARAMETER :: B7ADOF15A = 2577
+ INTEGER(IntKi), PARAMETER :: B7ADOF16A = 2578
+ INTEGER(IntKi), PARAMETER :: B7ADOF17A = 2579
+ INTEGER(IntKi), PARAMETER :: B7ADOF18A = 2580
+ INTEGER(IntKi), PARAMETER :: B7ADOF19A = 2581
+ INTEGER(IntKi), PARAMETER :: B7ADOF20A = 2582
+ INTEGER(IntKi), PARAMETER :: B7ADOF21A = 2583
+ INTEGER(IntKi), PARAMETER :: B7ADOF22A = 2584
+ INTEGER(IntKi), PARAMETER :: B7ADOF23A = 2585
+ INTEGER(IntKi), PARAMETER :: B7ADOF24A = 2586
+ INTEGER(IntKi), PARAMETER :: B7ADOF25A = 2587
+ INTEGER(IntKi), PARAMETER :: B7ADOF26A = 2588
+ INTEGER(IntKi), PARAMETER :: B7ADOF27A = 2589
+ INTEGER(IntKi), PARAMETER :: B7ADOF28A = 2590
+ INTEGER(IntKi), PARAMETER :: B7ADOF29A = 2591
+ INTEGER(IntKi), PARAMETER :: B7ADOF30A = 2592
+ INTEGER(IntKi), PARAMETER :: B7ADOF31A = 2593
+ INTEGER(IntKi), PARAMETER :: B7ADOF32A = 2594
+ INTEGER(IntKi), PARAMETER :: B7ADOF33A = 2595
+ INTEGER(IntKi), PARAMETER :: B7ADOF34A = 2596
+ INTEGER(IntKi), PARAMETER :: B7ADOF35A = 2597
+ INTEGER(IntKi), PARAMETER :: B7ADOF36A = 2598
+ INTEGER(IntKi), PARAMETER :: B7ADOF37A = 2599
+ INTEGER(IntKi), PARAMETER :: B7ADOF38A = 2600
+ INTEGER(IntKi), PARAMETER :: B7ADOF39A = 2601
+ INTEGER(IntKi), PARAMETER :: B7ADOF40A = 2602
+ INTEGER(IntKi), PARAMETER :: B7ADOF41A = 2603
+ INTEGER(IntKi), PARAMETER :: B7ADOF42A = 2604
+ INTEGER(IntKi), PARAMETER :: B7ADOF43A = 2605
+ INTEGER(IntKi), PARAMETER :: B7ADOF44A = 2606
+ INTEGER(IntKi), PARAMETER :: B7ADOF45A = 2607
+ INTEGER(IntKi), PARAMETER :: B7ADOF46A = 2608
+ INTEGER(IntKi), PARAMETER :: B7ADOF47A = 2609
+ INTEGER(IntKi), PARAMETER :: B7ADOF48A = 2610
+ INTEGER(IntKi), PARAMETER :: B7ADOF49A = 2611
+ INTEGER(IntKi), PARAMETER :: B7ADOF50A = 2612
+ INTEGER(IntKi), PARAMETER :: B7ADOF51A = 2613
+ INTEGER(IntKi), PARAMETER :: B7ADOF52A = 2614
+ INTEGER(IntKi), PARAMETER :: B7ADOF53A = 2615
+ INTEGER(IntKi), PARAMETER :: B7ADOF54A = 2616
+ INTEGER(IntKi), PARAMETER :: B7ADOF55A = 2617
+ INTEGER(IntKi), PARAMETER :: B7ADOF56A = 2618
+ INTEGER(IntKi), PARAMETER :: B7ADOF57A = 2619
+ INTEGER(IntKi), PARAMETER :: B7ADOF58A = 2620
+ INTEGER(IntKi), PARAMETER :: B7ADOF59A = 2621
+ INTEGER(IntKi), PARAMETER :: B7ADOF60A = 2622
+ INTEGER(IntKi), PARAMETER :: B7ADOF61A = 2623
+ INTEGER(IntKi), PARAMETER :: B7ADOF62A = 2624
+ INTEGER(IntKi), PARAMETER :: B7ADOF63A = 2625
+ INTEGER(IntKi), PARAMETER :: B7ADOF64A = 2626
+ INTEGER(IntKi), PARAMETER :: B7ADOF65A = 2627
+ INTEGER(IntKi), PARAMETER :: B7ADOF66A = 2628
+ INTEGER(IntKi), PARAMETER :: B7ADOF67A = 2629
+ INTEGER(IntKi), PARAMETER :: B7ADOF68A = 2630
+ INTEGER(IntKi), PARAMETER :: B7ADOF69A = 2631
+ INTEGER(IntKi), PARAMETER :: B7ADOF70A = 2632
+ INTEGER(IntKi), PARAMETER :: B7ADOF71A = 2633
+ INTEGER(IntKi), PARAMETER :: B7ADOF72A = 2634
+ INTEGER(IntKi), PARAMETER :: B7ADOF73A = 2635
+ INTEGER(IntKi), PARAMETER :: B7ADOF74A = 2636
+ INTEGER(IntKi), PARAMETER :: B7ADOF75A = 2637
+ INTEGER(IntKi), PARAMETER :: B7ADOF76A = 2638
+ INTEGER(IntKi), PARAMETER :: B7ADOF77A = 2639
+ INTEGER(IntKi), PARAMETER :: B7ADOF78A = 2640
+ INTEGER(IntKi), PARAMETER :: B7ADOF79A = 2641
+ INTEGER(IntKi), PARAMETER :: B7ADOF80A = 2642
+ INTEGER(IntKi), PARAMETER :: B7ADOF81A = 2643
+ INTEGER(IntKi), PARAMETER :: B7ADOF82A = 2644
+ INTEGER(IntKi), PARAMETER :: B7ADOF83A = 2645
+ INTEGER(IntKi), PARAMETER :: B7ADOF84A = 2646
+ INTEGER(IntKi), PARAMETER :: B7ADOF85A = 2647
+ INTEGER(IntKi), PARAMETER :: B7ADOF86A = 2648
+ INTEGER(IntKi), PARAMETER :: B7ADOF87A = 2649
+ INTEGER(IntKi), PARAMETER :: B7ADOF88A = 2650
+ INTEGER(IntKi), PARAMETER :: B7ADOF89A = 2651
+ INTEGER(IntKi), PARAMETER :: B7ADOF90A = 2652
+ INTEGER(IntKi), PARAMETER :: B7ADOF91A = 2653
+ INTEGER(IntKi), PARAMETER :: B7ADOF92A = 2654
+ INTEGER(IntKi), PARAMETER :: B7ADOF93A = 2655
+ INTEGER(IntKi), PARAMETER :: B7ADOF94A = 2656
+ INTEGER(IntKi), PARAMETER :: B7ADOF95A = 2657
+ INTEGER(IntKi), PARAMETER :: B7ADOF96A = 2658
+ INTEGER(IntKi), PARAMETER :: B7ADOF97A = 2659
+ INTEGER(IntKi), PARAMETER :: B7ADOF98A = 2660
+ INTEGER(IntKi), PARAMETER :: B7ADOF99A = 2661
+ INTEGER(IntKi), PARAMETER :: B8ADOF1A = 2662
+ INTEGER(IntKi), PARAMETER :: B8ADOF2A = 2663
+ INTEGER(IntKi), PARAMETER :: B8ADOF3A = 2664
+ INTEGER(IntKi), PARAMETER :: B8ADOF4A = 2665
+ INTEGER(IntKi), PARAMETER :: B8ADOF5A = 2666
+ INTEGER(IntKi), PARAMETER :: B8ADOF6A = 2667
+ INTEGER(IntKi), PARAMETER :: B8ADOF7A = 2668
+ INTEGER(IntKi), PARAMETER :: B8ADOF8A = 2669
+ INTEGER(IntKi), PARAMETER :: B8ADOF9A = 2670
+ INTEGER(IntKi), PARAMETER :: B8ADOF10A = 2671
+ INTEGER(IntKi), PARAMETER :: B8ADOF11A = 2672
+ INTEGER(IntKi), PARAMETER :: B8ADOF12A = 2673
+ INTEGER(IntKi), PARAMETER :: B8ADOF13A = 2674
+ INTEGER(IntKi), PARAMETER :: B8ADOF14A = 2675
+ INTEGER(IntKi), PARAMETER :: B8ADOF15A = 2676
+ INTEGER(IntKi), PARAMETER :: B8ADOF16A = 2677
+ INTEGER(IntKi), PARAMETER :: B8ADOF17A = 2678
+ INTEGER(IntKi), PARAMETER :: B8ADOF18A = 2679
+ INTEGER(IntKi), PARAMETER :: B8ADOF19A = 2680
+ INTEGER(IntKi), PARAMETER :: B8ADOF20A = 2681
+ INTEGER(IntKi), PARAMETER :: B8ADOF21A = 2682
+ INTEGER(IntKi), PARAMETER :: B8ADOF22A = 2683
+ INTEGER(IntKi), PARAMETER :: B8ADOF23A = 2684
+ INTEGER(IntKi), PARAMETER :: B8ADOF24A = 2685
+ INTEGER(IntKi), PARAMETER :: B8ADOF25A = 2686
+ INTEGER(IntKi), PARAMETER :: B8ADOF26A = 2687
+ INTEGER(IntKi), PARAMETER :: B8ADOF27A = 2688
+ INTEGER(IntKi), PARAMETER :: B8ADOF28A = 2689
+ INTEGER(IntKi), PARAMETER :: B8ADOF29A = 2690
+ INTEGER(IntKi), PARAMETER :: B8ADOF30A = 2691
+ INTEGER(IntKi), PARAMETER :: B8ADOF31A = 2692
+ INTEGER(IntKi), PARAMETER :: B8ADOF32A = 2693
+ INTEGER(IntKi), PARAMETER :: B8ADOF33A = 2694
+ INTEGER(IntKi), PARAMETER :: B8ADOF34A = 2695
+ INTEGER(IntKi), PARAMETER :: B8ADOF35A = 2696
+ INTEGER(IntKi), PARAMETER :: B8ADOF36A = 2697
+ INTEGER(IntKi), PARAMETER :: B8ADOF37A = 2698
+ INTEGER(IntKi), PARAMETER :: B8ADOF38A = 2699
+ INTEGER(IntKi), PARAMETER :: B8ADOF39A = 2700
+ INTEGER(IntKi), PARAMETER :: B8ADOF40A = 2701
+ INTEGER(IntKi), PARAMETER :: B8ADOF41A = 2702
+ INTEGER(IntKi), PARAMETER :: B8ADOF42A = 2703
+ INTEGER(IntKi), PARAMETER :: B8ADOF43A = 2704
+ INTEGER(IntKi), PARAMETER :: B8ADOF44A = 2705
+ INTEGER(IntKi), PARAMETER :: B8ADOF45A = 2706
+ INTEGER(IntKi), PARAMETER :: B8ADOF46A = 2707
+ INTEGER(IntKi), PARAMETER :: B8ADOF47A = 2708
+ INTEGER(IntKi), PARAMETER :: B8ADOF48A = 2709
+ INTEGER(IntKi), PARAMETER :: B8ADOF49A = 2710
+ INTEGER(IntKi), PARAMETER :: B8ADOF50A = 2711
+ INTEGER(IntKi), PARAMETER :: B8ADOF51A = 2712
+ INTEGER(IntKi), PARAMETER :: B8ADOF52A = 2713
+ INTEGER(IntKi), PARAMETER :: B8ADOF53A = 2714
+ INTEGER(IntKi), PARAMETER :: B8ADOF54A = 2715
+ INTEGER(IntKi), PARAMETER :: B8ADOF55A = 2716
+ INTEGER(IntKi), PARAMETER :: B8ADOF56A = 2717
+ INTEGER(IntKi), PARAMETER :: B8ADOF57A = 2718
+ INTEGER(IntKi), PARAMETER :: B8ADOF58A = 2719
+ INTEGER(IntKi), PARAMETER :: B8ADOF59A = 2720
+ INTEGER(IntKi), PARAMETER :: B8ADOF60A = 2721
+ INTEGER(IntKi), PARAMETER :: B8ADOF61A = 2722
+ INTEGER(IntKi), PARAMETER :: B8ADOF62A = 2723
+ INTEGER(IntKi), PARAMETER :: B8ADOF63A = 2724
+ INTEGER(IntKi), PARAMETER :: B8ADOF64A = 2725
+ INTEGER(IntKi), PARAMETER :: B8ADOF65A = 2726
+ INTEGER(IntKi), PARAMETER :: B8ADOF66A = 2727
+ INTEGER(IntKi), PARAMETER :: B8ADOF67A = 2728
+ INTEGER(IntKi), PARAMETER :: B8ADOF68A = 2729
+ INTEGER(IntKi), PARAMETER :: B8ADOF69A = 2730
+ INTEGER(IntKi), PARAMETER :: B8ADOF70A = 2731
+ INTEGER(IntKi), PARAMETER :: B8ADOF71A = 2732
+ INTEGER(IntKi), PARAMETER :: B8ADOF72A = 2733
+ INTEGER(IntKi), PARAMETER :: B8ADOF73A = 2734
+ INTEGER(IntKi), PARAMETER :: B8ADOF74A = 2735
+ INTEGER(IntKi), PARAMETER :: B8ADOF75A = 2736
+ INTEGER(IntKi), PARAMETER :: B8ADOF76A = 2737
+ INTEGER(IntKi), PARAMETER :: B8ADOF77A = 2738
+ INTEGER(IntKi), PARAMETER :: B8ADOF78A = 2739
+ INTEGER(IntKi), PARAMETER :: B8ADOF79A = 2740
+ INTEGER(IntKi), PARAMETER :: B8ADOF80A = 2741
+ INTEGER(IntKi), PARAMETER :: B8ADOF81A = 2742
+ INTEGER(IntKi), PARAMETER :: B8ADOF82A = 2743
+ INTEGER(IntKi), PARAMETER :: B8ADOF83A = 2744
+ INTEGER(IntKi), PARAMETER :: B8ADOF84A = 2745
+ INTEGER(IntKi), PARAMETER :: B8ADOF85A = 2746
+ INTEGER(IntKi), PARAMETER :: B8ADOF86A = 2747
+ INTEGER(IntKi), PARAMETER :: B8ADOF87A = 2748
+ INTEGER(IntKi), PARAMETER :: B8ADOF88A = 2749
+ INTEGER(IntKi), PARAMETER :: B8ADOF89A = 2750
+ INTEGER(IntKi), PARAMETER :: B8ADOF90A = 2751
+ INTEGER(IntKi), PARAMETER :: B8ADOF91A = 2752
+ INTEGER(IntKi), PARAMETER :: B8ADOF92A = 2753
+ INTEGER(IntKi), PARAMETER :: B8ADOF93A = 2754
+ INTEGER(IntKi), PARAMETER :: B8ADOF94A = 2755
+ INTEGER(IntKi), PARAMETER :: B8ADOF95A = 2756
+ INTEGER(IntKi), PARAMETER :: B8ADOF96A = 2757
+ INTEGER(IntKi), PARAMETER :: B8ADOF97A = 2758
+ INTEGER(IntKi), PARAMETER :: B8ADOF98A = 2759
+ INTEGER(IntKi), PARAMETER :: B8ADOF99A = 2760
+ INTEGER(IntKi), PARAMETER :: B9ADOF1A = 2761
+ INTEGER(IntKi), PARAMETER :: B9ADOF2A = 2762
+ INTEGER(IntKi), PARAMETER :: B9ADOF3A = 2763
+ INTEGER(IntKi), PARAMETER :: B9ADOF4A = 2764
+ INTEGER(IntKi), PARAMETER :: B9ADOF5A = 2765
+ INTEGER(IntKi), PARAMETER :: B9ADOF6A = 2766
+ INTEGER(IntKi), PARAMETER :: B9ADOF7A = 2767
+ INTEGER(IntKi), PARAMETER :: B9ADOF8A = 2768
+ INTEGER(IntKi), PARAMETER :: B9ADOF9A = 2769
+ INTEGER(IntKi), PARAMETER :: B9ADOF10A = 2770
+ INTEGER(IntKi), PARAMETER :: B9ADOF11A = 2771
+ INTEGER(IntKi), PARAMETER :: B9ADOF12A = 2772
+ INTEGER(IntKi), PARAMETER :: B9ADOF13A = 2773
+ INTEGER(IntKi), PARAMETER :: B9ADOF14A = 2774
+ INTEGER(IntKi), PARAMETER :: B9ADOF15A = 2775
+ INTEGER(IntKi), PARAMETER :: B9ADOF16A = 2776
+ INTEGER(IntKi), PARAMETER :: B9ADOF17A = 2777
+ INTEGER(IntKi), PARAMETER :: B9ADOF18A = 2778
+ INTEGER(IntKi), PARAMETER :: B9ADOF19A = 2779
+ INTEGER(IntKi), PARAMETER :: B9ADOF20A = 2780
+ INTEGER(IntKi), PARAMETER :: B9ADOF21A = 2781
+ INTEGER(IntKi), PARAMETER :: B9ADOF22A = 2782
+ INTEGER(IntKi), PARAMETER :: B9ADOF23A = 2783
+ INTEGER(IntKi), PARAMETER :: B9ADOF24A = 2784
+ INTEGER(IntKi), PARAMETER :: B9ADOF25A = 2785
+ INTEGER(IntKi), PARAMETER :: B9ADOF26A = 2786
+ INTEGER(IntKi), PARAMETER :: B9ADOF27A = 2787
+ INTEGER(IntKi), PARAMETER :: B9ADOF28A = 2788
+ INTEGER(IntKi), PARAMETER :: B9ADOF29A = 2789
+ INTEGER(IntKi), PARAMETER :: B9ADOF30A = 2790
+ INTEGER(IntKi), PARAMETER :: B9ADOF31A = 2791
+ INTEGER(IntKi), PARAMETER :: B9ADOF32A = 2792
+ INTEGER(IntKi), PARAMETER :: B9ADOF33A = 2793
+ INTEGER(IntKi), PARAMETER :: B9ADOF34A = 2794
+ INTEGER(IntKi), PARAMETER :: B9ADOF35A = 2795
+ INTEGER(IntKi), PARAMETER :: B9ADOF36A = 2796
+ INTEGER(IntKi), PARAMETER :: B9ADOF37A = 2797
+ INTEGER(IntKi), PARAMETER :: B9ADOF38A = 2798
+ INTEGER(IntKi), PARAMETER :: B9ADOF39A = 2799
+ INTEGER(IntKi), PARAMETER :: B9ADOF40A = 2800
+ INTEGER(IntKi), PARAMETER :: B9ADOF41A = 2801
+ INTEGER(IntKi), PARAMETER :: B9ADOF42A = 2802
+ INTEGER(IntKi), PARAMETER :: B9ADOF43A = 2803
+ INTEGER(IntKi), PARAMETER :: B9ADOF44A = 2804
+ INTEGER(IntKi), PARAMETER :: B9ADOF45A = 2805
+ INTEGER(IntKi), PARAMETER :: B9ADOF46A = 2806
+ INTEGER(IntKi), PARAMETER :: B9ADOF47A = 2807
+ INTEGER(IntKi), PARAMETER :: B9ADOF48A = 2808
+ INTEGER(IntKi), PARAMETER :: B9ADOF49A = 2809
+ INTEGER(IntKi), PARAMETER :: B9ADOF50A = 2810
+ INTEGER(IntKi), PARAMETER :: B9ADOF51A = 2811
+ INTEGER(IntKi), PARAMETER :: B9ADOF52A = 2812
+ INTEGER(IntKi), PARAMETER :: B9ADOF53A = 2813
+ INTEGER(IntKi), PARAMETER :: B9ADOF54A = 2814
+ INTEGER(IntKi), PARAMETER :: B9ADOF55A = 2815
+ INTEGER(IntKi), PARAMETER :: B9ADOF56A = 2816
+ INTEGER(IntKi), PARAMETER :: B9ADOF57A = 2817
+ INTEGER(IntKi), PARAMETER :: B9ADOF58A = 2818
+ INTEGER(IntKi), PARAMETER :: B9ADOF59A = 2819
+ INTEGER(IntKi), PARAMETER :: B9ADOF60A = 2820
+ INTEGER(IntKi), PARAMETER :: B9ADOF61A = 2821
+ INTEGER(IntKi), PARAMETER :: B9ADOF62A = 2822
+ INTEGER(IntKi), PARAMETER :: B9ADOF63A = 2823
+ INTEGER(IntKi), PARAMETER :: B9ADOF64A = 2824
+ INTEGER(IntKi), PARAMETER :: B9ADOF65A = 2825
+ INTEGER(IntKi), PARAMETER :: B9ADOF66A = 2826
+ INTEGER(IntKi), PARAMETER :: B9ADOF67A = 2827
+ INTEGER(IntKi), PARAMETER :: B9ADOF68A = 2828
+ INTEGER(IntKi), PARAMETER :: B9ADOF69A = 2829
+ INTEGER(IntKi), PARAMETER :: B9ADOF70A = 2830
+ INTEGER(IntKi), PARAMETER :: B9ADOF71A = 2831
+ INTEGER(IntKi), PARAMETER :: B9ADOF72A = 2832
+ INTEGER(IntKi), PARAMETER :: B9ADOF73A = 2833
+ INTEGER(IntKi), PARAMETER :: B9ADOF74A = 2834
+ INTEGER(IntKi), PARAMETER :: B9ADOF75A = 2835
+ INTEGER(IntKi), PARAMETER :: B9ADOF76A = 2836
+ INTEGER(IntKi), PARAMETER :: B9ADOF77A = 2837
+ INTEGER(IntKi), PARAMETER :: B9ADOF78A = 2838
+ INTEGER(IntKi), PARAMETER :: B9ADOF79A = 2839
+ INTEGER(IntKi), PARAMETER :: B9ADOF80A = 2840
+ INTEGER(IntKi), PARAMETER :: B9ADOF81A = 2841
+ INTEGER(IntKi), PARAMETER :: B9ADOF82A = 2842
+ INTEGER(IntKi), PARAMETER :: B9ADOF83A = 2843
+ INTEGER(IntKi), PARAMETER :: B9ADOF84A = 2844
+ INTEGER(IntKi), PARAMETER :: B9ADOF85A = 2845
+ INTEGER(IntKi), PARAMETER :: B9ADOF86A = 2846
+ INTEGER(IntKi), PARAMETER :: B9ADOF87A = 2847
+ INTEGER(IntKi), PARAMETER :: B9ADOF88A = 2848
+ INTEGER(IntKi), PARAMETER :: B9ADOF89A = 2849
+ INTEGER(IntKi), PARAMETER :: B9ADOF90A = 2850
+ INTEGER(IntKi), PARAMETER :: B9ADOF91A = 2851
+ INTEGER(IntKi), PARAMETER :: B9ADOF92A = 2852
+ INTEGER(IntKi), PARAMETER :: B9ADOF93A = 2853
+ INTEGER(IntKi), PARAMETER :: B9ADOF94A = 2854
+ INTEGER(IntKi), PARAMETER :: B9ADOF95A = 2855
+ INTEGER(IntKi), PARAMETER :: B9ADOF96A = 2856
+ INTEGER(IntKi), PARAMETER :: B9ADOF97A = 2857
+ INTEGER(IntKi), PARAMETER :: B9ADOF98A = 2858
+ INTEGER(IntKi), PARAMETER :: B9ADOF99A = 2859
! WAMIT Body Forces:
- INTEGER(IntKi), PARAMETER :: B1AddFxi = 187
- INTEGER(IntKi), PARAMETER :: B1AddFyi = 188
- INTEGER(IntKi), PARAMETER :: B1AddFzi = 189
- INTEGER(IntKi), PARAMETER :: B1AddMxi = 190
- INTEGER(IntKi), PARAMETER :: B1AddMyi = 191
- INTEGER(IntKi), PARAMETER :: B1AddMzi = 192
- INTEGER(IntKi), PARAMETER :: B1WvsF1xi = 193
- INTEGER(IntKi), PARAMETER :: B1WvsF1yi = 194
- INTEGER(IntKi), PARAMETER :: B1WvsF1zi = 195
- INTEGER(IntKi), PARAMETER :: B1WvsM1xi = 196
- INTEGER(IntKi), PARAMETER :: B1WvsM1yi = 197
- INTEGER(IntKi), PARAMETER :: B1WvsM1zi = 198
- INTEGER(IntKi), PARAMETER :: B1WvsFxi = 199
- INTEGER(IntKi), PARAMETER :: B1WvsFyi = 200
- INTEGER(IntKi), PARAMETER :: B1WvsFzi = 201
- INTEGER(IntKi), PARAMETER :: B1WvsMxi = 202
- INTEGER(IntKi), PARAMETER :: B1WvsMyi = 203
- INTEGER(IntKi), PARAMETER :: B1WvsMzi = 204
- INTEGER(IntKi), PARAMETER :: B1HdSFxi = 205
- INTEGER(IntKi), PARAMETER :: B1HdSFyi = 206
- INTEGER(IntKi), PARAMETER :: B1HdSFzi = 207
- INTEGER(IntKi), PARAMETER :: B1HdSMxi = 208
- INTEGER(IntKi), PARAMETER :: B1HdSMyi = 209
- INTEGER(IntKi), PARAMETER :: B1HdSMzi = 210
- INTEGER(IntKi), PARAMETER :: B1RdtFxi = 211
- INTEGER(IntKi), PARAMETER :: B1RdtFyi = 212
- INTEGER(IntKi), PARAMETER :: B1RdtFzi = 213
- INTEGER(IntKi), PARAMETER :: B1RdtMxi = 214
- INTEGER(IntKi), PARAMETER :: B1RdtMyi = 215
- INTEGER(IntKi), PARAMETER :: B1RdtMzi = 216
- INTEGER(IntKi), PARAMETER :: B2AddFxi = 217
- INTEGER(IntKi), PARAMETER :: B2AddFyi = 218
- INTEGER(IntKi), PARAMETER :: B2AddFzi = 219
- INTEGER(IntKi), PARAMETER :: B2AddMxi = 220
- INTEGER(IntKi), PARAMETER :: B2AddMyi = 221
- INTEGER(IntKi), PARAMETER :: B2AddMzi = 222
- INTEGER(IntKi), PARAMETER :: B2WvsF1xi = 223
- INTEGER(IntKi), PARAMETER :: B2WvsF1yi = 224
- INTEGER(IntKi), PARAMETER :: B2WvsF1zi = 225
- INTEGER(IntKi), PARAMETER :: B2WvsM1xi = 226
- INTEGER(IntKi), PARAMETER :: B2WvsM1yi = 227
- INTEGER(IntKi), PARAMETER :: B2WvsM1zi = 228
- INTEGER(IntKi), PARAMETER :: B2WvsFxi = 229
- INTEGER(IntKi), PARAMETER :: B2WvsFyi = 230
- INTEGER(IntKi), PARAMETER :: B2WvsFzi = 231
- INTEGER(IntKi), PARAMETER :: B2WvsMxi = 232
- INTEGER(IntKi), PARAMETER :: B2WvsMyi = 233
- INTEGER(IntKi), PARAMETER :: B2WvsMzi = 234
- INTEGER(IntKi), PARAMETER :: B2HdSFxi = 235
- INTEGER(IntKi), PARAMETER :: B2HdSFyi = 236
- INTEGER(IntKi), PARAMETER :: B2HdSFzi = 237
- INTEGER(IntKi), PARAMETER :: B2HdSMxi = 238
- INTEGER(IntKi), PARAMETER :: B2HdSMyi = 239
- INTEGER(IntKi), PARAMETER :: B2HdSMzi = 240
- INTEGER(IntKi), PARAMETER :: B2RdtFxi = 241
- INTEGER(IntKi), PARAMETER :: B2RdtFyi = 242
- INTEGER(IntKi), PARAMETER :: B2RdtFzi = 243
- INTEGER(IntKi), PARAMETER :: B2RdtMxi = 244
- INTEGER(IntKi), PARAMETER :: B2RdtMyi = 245
- INTEGER(IntKi), PARAMETER :: B2RdtMzi = 246
- INTEGER(IntKi), PARAMETER :: B3AddFxi = 247
- INTEGER(IntKi), PARAMETER :: B3AddFyi = 248
- INTEGER(IntKi), PARAMETER :: B3AddFzi = 249
- INTEGER(IntKi), PARAMETER :: B3AddMxi = 250
- INTEGER(IntKi), PARAMETER :: B3AddMyi = 251
- INTEGER(IntKi), PARAMETER :: B3AddMzi = 252
- INTEGER(IntKi), PARAMETER :: B3WvsF1xi = 253
- INTEGER(IntKi), PARAMETER :: B3WvsF1yi = 254
- INTEGER(IntKi), PARAMETER :: B3WvsF1zi = 255
- INTEGER(IntKi), PARAMETER :: B3WvsM1xi = 256
- INTEGER(IntKi), PARAMETER :: B3WvsM1yi = 257
- INTEGER(IntKi), PARAMETER :: B3WvsM1zi = 258
- INTEGER(IntKi), PARAMETER :: B3WvsFxi = 259
- INTEGER(IntKi), PARAMETER :: B3WvsFyi = 260
- INTEGER(IntKi), PARAMETER :: B3WvsFzi = 261
- INTEGER(IntKi), PARAMETER :: B3WvsMxi = 262
- INTEGER(IntKi), PARAMETER :: B3WvsMyi = 263
- INTEGER(IntKi), PARAMETER :: B3WvsMzi = 264
- INTEGER(IntKi), PARAMETER :: B3HdSFxi = 265
- INTEGER(IntKi), PARAMETER :: B3HdSFyi = 266
- INTEGER(IntKi), PARAMETER :: B3HdSFzi = 267
- INTEGER(IntKi), PARAMETER :: B3HdSMxi = 268
- INTEGER(IntKi), PARAMETER :: B3HdSMyi = 269
- INTEGER(IntKi), PARAMETER :: B3HdSMzi = 270
- INTEGER(IntKi), PARAMETER :: B3RdtFxi = 271
- INTEGER(IntKi), PARAMETER :: B3RdtFyi = 272
- INTEGER(IntKi), PARAMETER :: B3RdtFzi = 273
- INTEGER(IntKi), PARAMETER :: B3RdtMxi = 274
- INTEGER(IntKi), PARAMETER :: B3RdtMyi = 275
- INTEGER(IntKi), PARAMETER :: B3RdtMzi = 276
- INTEGER(IntKi), PARAMETER :: B4AddFxi = 277
- INTEGER(IntKi), PARAMETER :: B4AddFyi = 278
- INTEGER(IntKi), PARAMETER :: B4AddFzi = 279
- INTEGER(IntKi), PARAMETER :: B4AddMxi = 280
- INTEGER(IntKi), PARAMETER :: B4AddMyi = 281
- INTEGER(IntKi), PARAMETER :: B4AddMzi = 282
- INTEGER(IntKi), PARAMETER :: B4WvsF1xi = 283
- INTEGER(IntKi), PARAMETER :: B4WvsF1yi = 284
- INTEGER(IntKi), PARAMETER :: B4WvsF1zi = 285
- INTEGER(IntKi), PARAMETER :: B4WvsM1xi = 286
- INTEGER(IntKi), PARAMETER :: B4WvsM1yi = 287
- INTEGER(IntKi), PARAMETER :: B4WvsM1zi = 288
- INTEGER(IntKi), PARAMETER :: B4WvsFxi = 289
- INTEGER(IntKi), PARAMETER :: B4WvsFyi = 290
- INTEGER(IntKi), PARAMETER :: B4WvsFzi = 291
- INTEGER(IntKi), PARAMETER :: B4WvsMxi = 292
- INTEGER(IntKi), PARAMETER :: B4WvsMyi = 293
- INTEGER(IntKi), PARAMETER :: B4WvsMzi = 294
- INTEGER(IntKi), PARAMETER :: B4HdSFxi = 295
- INTEGER(IntKi), PARAMETER :: B4HdSFyi = 296
- INTEGER(IntKi), PARAMETER :: B4HdSFzi = 297
- INTEGER(IntKi), PARAMETER :: B4HdSMxi = 298
- INTEGER(IntKi), PARAMETER :: B4HdSMyi = 299
- INTEGER(IntKi), PARAMETER :: B4HdSMzi = 300
- INTEGER(IntKi), PARAMETER :: B4RdtFxi = 301
- INTEGER(IntKi), PARAMETER :: B4RdtFyi = 302
- INTEGER(IntKi), PARAMETER :: B4RdtFzi = 303
- INTEGER(IntKi), PARAMETER :: B4RdtMxi = 304
- INTEGER(IntKi), PARAMETER :: B4RdtMyi = 305
- INTEGER(IntKi), PARAMETER :: B4RdtMzi = 306
- INTEGER(IntKi), PARAMETER :: B5AddFxi = 307
- INTEGER(IntKi), PARAMETER :: B5AddFyi = 308
- INTEGER(IntKi), PARAMETER :: B5AddFzi = 309
- INTEGER(IntKi), PARAMETER :: B5AddMxi = 310
- INTEGER(IntKi), PARAMETER :: B5AddMyi = 311
- INTEGER(IntKi), PARAMETER :: B5AddMzi = 312
- INTEGER(IntKi), PARAMETER :: B5WvsF1xi = 313
- INTEGER(IntKi), PARAMETER :: B5WvsF1yi = 314
- INTEGER(IntKi), PARAMETER :: B5WvsF1zi = 315
- INTEGER(IntKi), PARAMETER :: B5WvsM1xi = 316
- INTEGER(IntKi), PARAMETER :: B5WvsM1yi = 317
- INTEGER(IntKi), PARAMETER :: B5WvsM1zi = 318
- INTEGER(IntKi), PARAMETER :: B5WvsFxi = 319
- INTEGER(IntKi), PARAMETER :: B5WvsFyi = 320
- INTEGER(IntKi), PARAMETER :: B5WvsFzi = 321
- INTEGER(IntKi), PARAMETER :: B5WvsMxi = 322
- INTEGER(IntKi), PARAMETER :: B5WvsMyi = 323
- INTEGER(IntKi), PARAMETER :: B5WvsMzi = 324
- INTEGER(IntKi), PARAMETER :: B5HdSFxi = 325
- INTEGER(IntKi), PARAMETER :: B5HdSFyi = 326
- INTEGER(IntKi), PARAMETER :: B5HdSFzi = 327
- INTEGER(IntKi), PARAMETER :: B5HdSMxi = 328
- INTEGER(IntKi), PARAMETER :: B5HdSMyi = 329
- INTEGER(IntKi), PARAMETER :: B5HdSMzi = 330
- INTEGER(IntKi), PARAMETER :: B5RdtFxi = 331
- INTEGER(IntKi), PARAMETER :: B5RdtFyi = 332
- INTEGER(IntKi), PARAMETER :: B5RdtFzi = 333
- INTEGER(IntKi), PARAMETER :: B5RdtMxi = 334
- INTEGER(IntKi), PARAMETER :: B5RdtMyi = 335
- INTEGER(IntKi), PARAMETER :: B5RdtMzi = 336
- INTEGER(IntKi), PARAMETER :: B6AddFxi = 337
- INTEGER(IntKi), PARAMETER :: B6AddFyi = 338
- INTEGER(IntKi), PARAMETER :: B6AddFzi = 339
- INTEGER(IntKi), PARAMETER :: B6AddMxi = 340
- INTEGER(IntKi), PARAMETER :: B6AddMyi = 341
- INTEGER(IntKi), PARAMETER :: B6AddMzi = 342
- INTEGER(IntKi), PARAMETER :: B6WvsF1xi = 343
- INTEGER(IntKi), PARAMETER :: B6WvsF1yi = 344
- INTEGER(IntKi), PARAMETER :: B6WvsF1zi = 345
- INTEGER(IntKi), PARAMETER :: B6WvsM1xi = 346
- INTEGER(IntKi), PARAMETER :: B6WvsM1yi = 347
- INTEGER(IntKi), PARAMETER :: B6WvsM1zi = 348
- INTEGER(IntKi), PARAMETER :: B6WvsFxi = 349
- INTEGER(IntKi), PARAMETER :: B6WvsFyi = 350
- INTEGER(IntKi), PARAMETER :: B6WvsFzi = 351
- INTEGER(IntKi), PARAMETER :: B6WvsMxi = 352
- INTEGER(IntKi), PARAMETER :: B6WvsMyi = 353
- INTEGER(IntKi), PARAMETER :: B6WvsMzi = 354
- INTEGER(IntKi), PARAMETER :: B6HdSFxi = 355
- INTEGER(IntKi), PARAMETER :: B6HdSFyi = 356
- INTEGER(IntKi), PARAMETER :: B6HdSFzi = 357
- INTEGER(IntKi), PARAMETER :: B6HdSMxi = 358
- INTEGER(IntKi), PARAMETER :: B6HdSMyi = 359
- INTEGER(IntKi), PARAMETER :: B6HdSMzi = 360
- INTEGER(IntKi), PARAMETER :: B6RdtFxi = 361
- INTEGER(IntKi), PARAMETER :: B6RdtFyi = 362
- INTEGER(IntKi), PARAMETER :: B6RdtFzi = 363
- INTEGER(IntKi), PARAMETER :: B6RdtMxi = 364
- INTEGER(IntKi), PARAMETER :: B6RdtMyi = 365
- INTEGER(IntKi), PARAMETER :: B6RdtMzi = 366
- INTEGER(IntKi), PARAMETER :: B7AddFxi = 367
- INTEGER(IntKi), PARAMETER :: B7AddFyi = 368
- INTEGER(IntKi), PARAMETER :: B7AddFzi = 369
- INTEGER(IntKi), PARAMETER :: B7AddMxi = 370
- INTEGER(IntKi), PARAMETER :: B7AddMyi = 371
- INTEGER(IntKi), PARAMETER :: B7AddMzi = 372
- INTEGER(IntKi), PARAMETER :: B7WvsF1xi = 373
- INTEGER(IntKi), PARAMETER :: B7WvsF1yi = 374
- INTEGER(IntKi), PARAMETER :: B7WvsF1zi = 375
- INTEGER(IntKi), PARAMETER :: B7WvsM1xi = 376
- INTEGER(IntKi), PARAMETER :: B7WvsM1yi = 377
- INTEGER(IntKi), PARAMETER :: B7WvsM1zi = 378
- INTEGER(IntKi), PARAMETER :: B7WvsFxi = 379
- INTEGER(IntKi), PARAMETER :: B7WvsFyi = 380
- INTEGER(IntKi), PARAMETER :: B7WvsFzi = 381
- INTEGER(IntKi), PARAMETER :: B7WvsMxi = 382
- INTEGER(IntKi), PARAMETER :: B7WvsMyi = 383
- INTEGER(IntKi), PARAMETER :: B7WvsMzi = 384
- INTEGER(IntKi), PARAMETER :: B7HdSFxi = 385
- INTEGER(IntKi), PARAMETER :: B7HdSFyi = 386
- INTEGER(IntKi), PARAMETER :: B7HdSFzi = 387
- INTEGER(IntKi), PARAMETER :: B7HdSMxi = 388
- INTEGER(IntKi), PARAMETER :: B7HdSMyi = 389
- INTEGER(IntKi), PARAMETER :: B7HdSMzi = 390
- INTEGER(IntKi), PARAMETER :: B7RdtFxi = 391
- INTEGER(IntKi), PARAMETER :: B7RdtFyi = 392
- INTEGER(IntKi), PARAMETER :: B7RdtFzi = 393
- INTEGER(IntKi), PARAMETER :: B7RdtMxi = 394
- INTEGER(IntKi), PARAMETER :: B7RdtMyi = 395
- INTEGER(IntKi), PARAMETER :: B7RdtMzi = 396
- INTEGER(IntKi), PARAMETER :: B8AddFxi = 397
- INTEGER(IntKi), PARAMETER :: B8AddFyi = 398
- INTEGER(IntKi), PARAMETER :: B8AddFzi = 399
- INTEGER(IntKi), PARAMETER :: B8AddMxi = 400
- INTEGER(IntKi), PARAMETER :: B8AddMyi = 401
- INTEGER(IntKi), PARAMETER :: B8AddMzi = 402
- INTEGER(IntKi), PARAMETER :: B8WvsF1xi = 403
- INTEGER(IntKi), PARAMETER :: B8WvsF1yi = 404
- INTEGER(IntKi), PARAMETER :: B8WvsF1zi = 405
- INTEGER(IntKi), PARAMETER :: B8WvsM1xi = 406
- INTEGER(IntKi), PARAMETER :: B8WvsM1yi = 407
- INTEGER(IntKi), PARAMETER :: B8WvsM1zi = 408
- INTEGER(IntKi), PARAMETER :: B8WvsFxi = 409
- INTEGER(IntKi), PARAMETER :: B8WvsFyi = 410
- INTEGER(IntKi), PARAMETER :: B8WvsFzi = 411
- INTEGER(IntKi), PARAMETER :: B8WvsMxi = 412
- INTEGER(IntKi), PARAMETER :: B8WvsMyi = 413
- INTEGER(IntKi), PARAMETER :: B8WvsMzi = 414
- INTEGER(IntKi), PARAMETER :: B8HdSFxi = 415
- INTEGER(IntKi), PARAMETER :: B8HdSFyi = 416
- INTEGER(IntKi), PARAMETER :: B8HdSFzi = 417
- INTEGER(IntKi), PARAMETER :: B8HdSMxi = 418
- INTEGER(IntKi), PARAMETER :: B8HdSMyi = 419
- INTEGER(IntKi), PARAMETER :: B8HdSMzi = 420
- INTEGER(IntKi), PARAMETER :: B8RdtFxi = 421
- INTEGER(IntKi), PARAMETER :: B8RdtFyi = 422
- INTEGER(IntKi), PARAMETER :: B8RdtFzi = 423
- INTEGER(IntKi), PARAMETER :: B8RdtMxi = 424
- INTEGER(IntKi), PARAMETER :: B8RdtMyi = 425
- INTEGER(IntKi), PARAMETER :: B8RdtMzi = 426
- INTEGER(IntKi), PARAMETER :: B9AddFxi = 427
- INTEGER(IntKi), PARAMETER :: B9AddFyi = 428
- INTEGER(IntKi), PARAMETER :: B9AddFzi = 429
- INTEGER(IntKi), PARAMETER :: B9AddMxi = 430
- INTEGER(IntKi), PARAMETER :: B9AddMyi = 431
- INTEGER(IntKi), PARAMETER :: B9AddMzi = 432
- INTEGER(IntKi), PARAMETER :: B9WvsF1xi = 433
- INTEGER(IntKi), PARAMETER :: B9WvsF1yi = 434
- INTEGER(IntKi), PARAMETER :: B9WvsF1zi = 435
- INTEGER(IntKi), PARAMETER :: B9WvsM1xi = 436
- INTEGER(IntKi), PARAMETER :: B9WvsM1yi = 437
- INTEGER(IntKi), PARAMETER :: B9WvsM1zi = 438
- INTEGER(IntKi), PARAMETER :: B9WvsFxi = 439
- INTEGER(IntKi), PARAMETER :: B9WvsFyi = 440
- INTEGER(IntKi), PARAMETER :: B9WvsFzi = 441
- INTEGER(IntKi), PARAMETER :: B9WvsMxi = 442
- INTEGER(IntKi), PARAMETER :: B9WvsMyi = 443
- INTEGER(IntKi), PARAMETER :: B9WvsMzi = 444
- INTEGER(IntKi), PARAMETER :: B9HdSFxi = 445
- INTEGER(IntKi), PARAMETER :: B9HdSFyi = 446
- INTEGER(IntKi), PARAMETER :: B9HdSFzi = 447
- INTEGER(IntKi), PARAMETER :: B9HdSMxi = 448
- INTEGER(IntKi), PARAMETER :: B9HdSMyi = 449
- INTEGER(IntKi), PARAMETER :: B9HdSMzi = 450
- INTEGER(IntKi), PARAMETER :: B9RdtFxi = 451
- INTEGER(IntKi), PARAMETER :: B9RdtFyi = 452
- INTEGER(IntKi), PARAMETER :: B9RdtFzi = 453
- INTEGER(IntKi), PARAMETER :: B9RdtMxi = 454
- INTEGER(IntKi), PARAMETER :: B9RdtMyi = 455
- INTEGER(IntKi), PARAMETER :: B9RdtMzi = 456
- INTEGER(IntKi), PARAMETER :: B1WvsF2xi = 457
- INTEGER(IntKi), PARAMETER :: B1WvsF2yi = 458
- INTEGER(IntKi), PARAMETER :: B1WvsF2zi = 459
- INTEGER(IntKi), PARAMETER :: B1WvsM2xi = 460
- INTEGER(IntKi), PARAMETER :: B1WvsM2yi = 461
- INTEGER(IntKi), PARAMETER :: B1WvsM2zi = 462
- INTEGER(IntKi), PARAMETER :: B2WvsF2xi = 463
- INTEGER(IntKi), PARAMETER :: B2WvsF2yi = 464
- INTEGER(IntKi), PARAMETER :: B2WvsF2zi = 465
- INTEGER(IntKi), PARAMETER :: B2WvsM2xi = 466
- INTEGER(IntKi), PARAMETER :: B2WvsM2yi = 467
- INTEGER(IntKi), PARAMETER :: B2WvsM2zi = 468
- INTEGER(IntKi), PARAMETER :: B3WvsF2xi = 469
- INTEGER(IntKi), PARAMETER :: B3WvsF2yi = 470
- INTEGER(IntKi), PARAMETER :: B3WvsF2zi = 471
- INTEGER(IntKi), PARAMETER :: B3WvsM2xi = 472
- INTEGER(IntKi), PARAMETER :: B3WvsM2yi = 473
- INTEGER(IntKi), PARAMETER :: B3WvsM2zi = 474
- INTEGER(IntKi), PARAMETER :: B4WvsF2xi = 475
- INTEGER(IntKi), PARAMETER :: B4WvsF2yi = 476
- INTEGER(IntKi), PARAMETER :: B4WvsF2zi = 477
- INTEGER(IntKi), PARAMETER :: B4WvsM2xi = 478
- INTEGER(IntKi), PARAMETER :: B4WvsM2yi = 479
- INTEGER(IntKi), PARAMETER :: B4WvsM2zi = 480
- INTEGER(IntKi), PARAMETER :: B5WvsF2xi = 481
- INTEGER(IntKi), PARAMETER :: B5WvsF2yi = 482
- INTEGER(IntKi), PARAMETER :: B5WvsF2zi = 483
- INTEGER(IntKi), PARAMETER :: B5WvsM2xi = 484
- INTEGER(IntKi), PARAMETER :: B5WvsM2yi = 485
- INTEGER(IntKi), PARAMETER :: B5WvsM2zi = 486
- INTEGER(IntKi), PARAMETER :: B6WvsF2xi = 487
- INTEGER(IntKi), PARAMETER :: B6WvsF2yi = 488
- INTEGER(IntKi), PARAMETER :: B6WvsF2zi = 489
- INTEGER(IntKi), PARAMETER :: B6WvsM2xi = 490
- INTEGER(IntKi), PARAMETER :: B6WvsM2yi = 491
- INTEGER(IntKi), PARAMETER :: B6WvsM2zi = 492
- INTEGER(IntKi), PARAMETER :: B7WvsF2xi = 493
- INTEGER(IntKi), PARAMETER :: B7WvsF2yi = 494
- INTEGER(IntKi), PARAMETER :: B7WvsF2zi = 495
- INTEGER(IntKi), PARAMETER :: B7WvsM2xi = 496
- INTEGER(IntKi), PARAMETER :: B7WvsM2yi = 497
- INTEGER(IntKi), PARAMETER :: B7WvsM2zi = 498
- INTEGER(IntKi), PARAMETER :: B8WvsF2xi = 499
- INTEGER(IntKi), PARAMETER :: B8WvsF2yi = 500
- INTEGER(IntKi), PARAMETER :: B8WvsF2zi = 501
- INTEGER(IntKi), PARAMETER :: B8WvsM2xi = 502
- INTEGER(IntKi), PARAMETER :: B8WvsM2yi = 503
- INTEGER(IntKi), PARAMETER :: B8WvsM2zi = 504
- INTEGER(IntKi), PARAMETER :: B9WvsF2xi = 505
- INTEGER(IntKi), PARAMETER :: B9WvsF2yi = 506
- INTEGER(IntKi), PARAMETER :: B9WvsF2zi = 507
- INTEGER(IntKi), PARAMETER :: B9WvsM2xi = 508
- INTEGER(IntKi), PARAMETER :: B9WvsM2yi = 509
- INTEGER(IntKi), PARAMETER :: B9WvsM2zi = 510
+ INTEGER(IntKi), PARAMETER :: B1AddFxi = 2860
+ INTEGER(IntKi), PARAMETER :: B1AddFyi = 2861
+ INTEGER(IntKi), PARAMETER :: B1AddFzi = 2862
+ INTEGER(IntKi), PARAMETER :: B1AddMxi = 2863
+ INTEGER(IntKi), PARAMETER :: B1AddMyi = 2864
+ INTEGER(IntKi), PARAMETER :: B1AddMzi = 2865
+ INTEGER(IntKi), PARAMETER :: B1WvsF1xi = 2866
+ INTEGER(IntKi), PARAMETER :: B1WvsF1yi = 2867
+ INTEGER(IntKi), PARAMETER :: B1WvsF1zi = 2868
+ INTEGER(IntKi), PARAMETER :: B1WvsM1xi = 2869
+ INTEGER(IntKi), PARAMETER :: B1WvsM1yi = 2870
+ INTEGER(IntKi), PARAMETER :: B1WvsM1zi = 2871
+ INTEGER(IntKi), PARAMETER :: B1WvsFxi = 2872
+ INTEGER(IntKi), PARAMETER :: B1WvsFyi = 2873
+ INTEGER(IntKi), PARAMETER :: B1WvsFzi = 2874
+ INTEGER(IntKi), PARAMETER :: B1WvsMxi = 2875
+ INTEGER(IntKi), PARAMETER :: B1WvsMyi = 2876
+ INTEGER(IntKi), PARAMETER :: B1WvsMzi = 2877
+ INTEGER(IntKi), PARAMETER :: B1HdSFxi = 2878
+ INTEGER(IntKi), PARAMETER :: B1HdSFyi = 2879
+ INTEGER(IntKi), PARAMETER :: B1HdSFzi = 2880
+ INTEGER(IntKi), PARAMETER :: B1HdSMxi = 2881
+ INTEGER(IntKi), PARAMETER :: B1HdSMyi = 2882
+ INTEGER(IntKi), PARAMETER :: B1HdSMzi = 2883
+ INTEGER(IntKi), PARAMETER :: B1RdtFxi = 2884
+ INTEGER(IntKi), PARAMETER :: B1RdtFyi = 2885
+ INTEGER(IntKi), PARAMETER :: B1RdtFzi = 2886
+ INTEGER(IntKi), PARAMETER :: B1RdtMxi = 2887
+ INTEGER(IntKi), PARAMETER :: B1RdtMyi = 2888
+ INTEGER(IntKi), PARAMETER :: B1RdtMzi = 2889
+ INTEGER(IntKi), PARAMETER :: B2AddFxi = 2890
+ INTEGER(IntKi), PARAMETER :: B2AddFyi = 2891
+ INTEGER(IntKi), PARAMETER :: B2AddFzi = 2892
+ INTEGER(IntKi), PARAMETER :: B2AddMxi = 2893
+ INTEGER(IntKi), PARAMETER :: B2AddMyi = 2894
+ INTEGER(IntKi), PARAMETER :: B2AddMzi = 2895
+ INTEGER(IntKi), PARAMETER :: B2WvsF1xi = 2896
+ INTEGER(IntKi), PARAMETER :: B2WvsF1yi = 2897
+ INTEGER(IntKi), PARAMETER :: B2WvsF1zi = 2898
+ INTEGER(IntKi), PARAMETER :: B2WvsM1xi = 2899
+ INTEGER(IntKi), PARAMETER :: B2WvsM1yi = 2900
+ INTEGER(IntKi), PARAMETER :: B2WvsM1zi = 2901
+ INTEGER(IntKi), PARAMETER :: B2WvsFxi = 2902
+ INTEGER(IntKi), PARAMETER :: B2WvsFyi = 2903
+ INTEGER(IntKi), PARAMETER :: B2WvsFzi = 2904
+ INTEGER(IntKi), PARAMETER :: B2WvsMxi = 2905
+ INTEGER(IntKi), PARAMETER :: B2WvsMyi = 2906
+ INTEGER(IntKi), PARAMETER :: B2WvsMzi = 2907
+ INTEGER(IntKi), PARAMETER :: B2HdSFxi = 2908
+ INTEGER(IntKi), PARAMETER :: B2HdSFyi = 2909
+ INTEGER(IntKi), PARAMETER :: B2HdSFzi = 2910
+ INTEGER(IntKi), PARAMETER :: B2HdSMxi = 2911
+ INTEGER(IntKi), PARAMETER :: B2HdSMyi = 2912
+ INTEGER(IntKi), PARAMETER :: B2HdSMzi = 2913
+ INTEGER(IntKi), PARAMETER :: B2RdtFxi = 2914
+ INTEGER(IntKi), PARAMETER :: B2RdtFyi = 2915
+ INTEGER(IntKi), PARAMETER :: B2RdtFzi = 2916
+ INTEGER(IntKi), PARAMETER :: B2RdtMxi = 2917
+ INTEGER(IntKi), PARAMETER :: B2RdtMyi = 2918
+ INTEGER(IntKi), PARAMETER :: B2RdtMzi = 2919
+ INTEGER(IntKi), PARAMETER :: B3AddFxi = 2920
+ INTEGER(IntKi), PARAMETER :: B3AddFyi = 2921
+ INTEGER(IntKi), PARAMETER :: B3AddFzi = 2922
+ INTEGER(IntKi), PARAMETER :: B3AddMxi = 2923
+ INTEGER(IntKi), PARAMETER :: B3AddMyi = 2924
+ INTEGER(IntKi), PARAMETER :: B3AddMzi = 2925
+ INTEGER(IntKi), PARAMETER :: B3WvsF1xi = 2926
+ INTEGER(IntKi), PARAMETER :: B3WvsF1yi = 2927
+ INTEGER(IntKi), PARAMETER :: B3WvsF1zi = 2928
+ INTEGER(IntKi), PARAMETER :: B3WvsM1xi = 2929
+ INTEGER(IntKi), PARAMETER :: B3WvsM1yi = 2930
+ INTEGER(IntKi), PARAMETER :: B3WvsM1zi = 2931
+ INTEGER(IntKi), PARAMETER :: B3WvsFxi = 2932
+ INTEGER(IntKi), PARAMETER :: B3WvsFyi = 2933
+ INTEGER(IntKi), PARAMETER :: B3WvsFzi = 2934
+ INTEGER(IntKi), PARAMETER :: B3WvsMxi = 2935
+ INTEGER(IntKi), PARAMETER :: B3WvsMyi = 2936
+ INTEGER(IntKi), PARAMETER :: B3WvsMzi = 2937
+ INTEGER(IntKi), PARAMETER :: B3HdSFxi = 2938
+ INTEGER(IntKi), PARAMETER :: B3HdSFyi = 2939
+ INTEGER(IntKi), PARAMETER :: B3HdSFzi = 2940
+ INTEGER(IntKi), PARAMETER :: B3HdSMxi = 2941
+ INTEGER(IntKi), PARAMETER :: B3HdSMyi = 2942
+ INTEGER(IntKi), PARAMETER :: B3HdSMzi = 2943
+ INTEGER(IntKi), PARAMETER :: B3RdtFxi = 2944
+ INTEGER(IntKi), PARAMETER :: B3RdtFyi = 2945
+ INTEGER(IntKi), PARAMETER :: B3RdtFzi = 2946
+ INTEGER(IntKi), PARAMETER :: B3RdtMxi = 2947
+ INTEGER(IntKi), PARAMETER :: B3RdtMyi = 2948
+ INTEGER(IntKi), PARAMETER :: B3RdtMzi = 2949
+ INTEGER(IntKi), PARAMETER :: B4AddFxi = 2950
+ INTEGER(IntKi), PARAMETER :: B4AddFyi = 2951
+ INTEGER(IntKi), PARAMETER :: B4AddFzi = 2952
+ INTEGER(IntKi), PARAMETER :: B4AddMxi = 2953
+ INTEGER(IntKi), PARAMETER :: B4AddMyi = 2954
+ INTEGER(IntKi), PARAMETER :: B4AddMzi = 2955
+ INTEGER(IntKi), PARAMETER :: B4WvsF1xi = 2956
+ INTEGER(IntKi), PARAMETER :: B4WvsF1yi = 2957
+ INTEGER(IntKi), PARAMETER :: B4WvsF1zi = 2958
+ INTEGER(IntKi), PARAMETER :: B4WvsM1xi = 2959
+ INTEGER(IntKi), PARAMETER :: B4WvsM1yi = 2960
+ INTEGER(IntKi), PARAMETER :: B4WvsM1zi = 2961
+ INTEGER(IntKi), PARAMETER :: B4WvsFxi = 2962
+ INTEGER(IntKi), PARAMETER :: B4WvsFyi = 2963
+ INTEGER(IntKi), PARAMETER :: B4WvsFzi = 2964
+ INTEGER(IntKi), PARAMETER :: B4WvsMxi = 2965
+ INTEGER(IntKi), PARAMETER :: B4WvsMyi = 2966
+ INTEGER(IntKi), PARAMETER :: B4WvsMzi = 2967
+ INTEGER(IntKi), PARAMETER :: B4HdSFxi = 2968
+ INTEGER(IntKi), PARAMETER :: B4HdSFyi = 2969
+ INTEGER(IntKi), PARAMETER :: B4HdSFzi = 2970
+ INTEGER(IntKi), PARAMETER :: B4HdSMxi = 2971
+ INTEGER(IntKi), PARAMETER :: B4HdSMyi = 2972
+ INTEGER(IntKi), PARAMETER :: B4HdSMzi = 2973
+ INTEGER(IntKi), PARAMETER :: B4RdtFxi = 2974
+ INTEGER(IntKi), PARAMETER :: B4RdtFyi = 2975
+ INTEGER(IntKi), PARAMETER :: B4RdtFzi = 2976
+ INTEGER(IntKi), PARAMETER :: B4RdtMxi = 2977
+ INTEGER(IntKi), PARAMETER :: B4RdtMyi = 2978
+ INTEGER(IntKi), PARAMETER :: B4RdtMzi = 2979
+ INTEGER(IntKi), PARAMETER :: B5AddFxi = 2980
+ INTEGER(IntKi), PARAMETER :: B5AddFyi = 2981
+ INTEGER(IntKi), PARAMETER :: B5AddFzi = 2982
+ INTEGER(IntKi), PARAMETER :: B5AddMxi = 2983
+ INTEGER(IntKi), PARAMETER :: B5AddMyi = 2984
+ INTEGER(IntKi), PARAMETER :: B5AddMzi = 2985
+ INTEGER(IntKi), PARAMETER :: B5WvsF1xi = 2986
+ INTEGER(IntKi), PARAMETER :: B5WvsF1yi = 2987
+ INTEGER(IntKi), PARAMETER :: B5WvsF1zi = 2988
+ INTEGER(IntKi), PARAMETER :: B5WvsM1xi = 2989
+ INTEGER(IntKi), PARAMETER :: B5WvsM1yi = 2990
+ INTEGER(IntKi), PARAMETER :: B5WvsM1zi = 2991
+ INTEGER(IntKi), PARAMETER :: B5WvsFxi = 2992
+ INTEGER(IntKi), PARAMETER :: B5WvsFyi = 2993
+ INTEGER(IntKi), PARAMETER :: B5WvsFzi = 2994
+ INTEGER(IntKi), PARAMETER :: B5WvsMxi = 2995
+ INTEGER(IntKi), PARAMETER :: B5WvsMyi = 2996
+ INTEGER(IntKi), PARAMETER :: B5WvsMzi = 2997
+ INTEGER(IntKi), PARAMETER :: B5HdSFxi = 2998
+ INTEGER(IntKi), PARAMETER :: B5HdSFyi = 2999
+ INTEGER(IntKi), PARAMETER :: B5HdSFzi = 3000
+ INTEGER(IntKi), PARAMETER :: B5HdSMxi = 3001
+ INTEGER(IntKi), PARAMETER :: B5HdSMyi = 3002
+ INTEGER(IntKi), PARAMETER :: B5HdSMzi = 3003
+ INTEGER(IntKi), PARAMETER :: B5RdtFxi = 3004
+ INTEGER(IntKi), PARAMETER :: B5RdtFyi = 3005
+ INTEGER(IntKi), PARAMETER :: B5RdtFzi = 3006
+ INTEGER(IntKi), PARAMETER :: B5RdtMxi = 3007
+ INTEGER(IntKi), PARAMETER :: B5RdtMyi = 3008
+ INTEGER(IntKi), PARAMETER :: B5RdtMzi = 3009
+ INTEGER(IntKi), PARAMETER :: B6AddFxi = 3010
+ INTEGER(IntKi), PARAMETER :: B6AddFyi = 3011
+ INTEGER(IntKi), PARAMETER :: B6AddFzi = 3012
+ INTEGER(IntKi), PARAMETER :: B6AddMxi = 3013
+ INTEGER(IntKi), PARAMETER :: B6AddMyi = 3014
+ INTEGER(IntKi), PARAMETER :: B6AddMzi = 3015
+ INTEGER(IntKi), PARAMETER :: B6WvsF1xi = 3016
+ INTEGER(IntKi), PARAMETER :: B6WvsF1yi = 3017
+ INTEGER(IntKi), PARAMETER :: B6WvsF1zi = 3018
+ INTEGER(IntKi), PARAMETER :: B6WvsM1xi = 3019
+ INTEGER(IntKi), PARAMETER :: B6WvsM1yi = 3020
+ INTEGER(IntKi), PARAMETER :: B6WvsM1zi = 3021
+ INTEGER(IntKi), PARAMETER :: B6WvsFxi = 3022
+ INTEGER(IntKi), PARAMETER :: B6WvsFyi = 3023
+ INTEGER(IntKi), PARAMETER :: B6WvsFzi = 3024
+ INTEGER(IntKi), PARAMETER :: B6WvsMxi = 3025
+ INTEGER(IntKi), PARAMETER :: B6WvsMyi = 3026
+ INTEGER(IntKi), PARAMETER :: B6WvsMzi = 3027
+ INTEGER(IntKi), PARAMETER :: B6HdSFxi = 3028
+ INTEGER(IntKi), PARAMETER :: B6HdSFyi = 3029
+ INTEGER(IntKi), PARAMETER :: B6HdSFzi = 3030
+ INTEGER(IntKi), PARAMETER :: B6HdSMxi = 3031
+ INTEGER(IntKi), PARAMETER :: B6HdSMyi = 3032
+ INTEGER(IntKi), PARAMETER :: B6HdSMzi = 3033
+ INTEGER(IntKi), PARAMETER :: B6RdtFxi = 3034
+ INTEGER(IntKi), PARAMETER :: B6RdtFyi = 3035
+ INTEGER(IntKi), PARAMETER :: B6RdtFzi = 3036
+ INTEGER(IntKi), PARAMETER :: B6RdtMxi = 3037
+ INTEGER(IntKi), PARAMETER :: B6RdtMyi = 3038
+ INTEGER(IntKi), PARAMETER :: B6RdtMzi = 3039
+ INTEGER(IntKi), PARAMETER :: B7AddFxi = 3040
+ INTEGER(IntKi), PARAMETER :: B7AddFyi = 3041
+ INTEGER(IntKi), PARAMETER :: B7AddFzi = 3042
+ INTEGER(IntKi), PARAMETER :: B7AddMxi = 3043
+ INTEGER(IntKi), PARAMETER :: B7AddMyi = 3044
+ INTEGER(IntKi), PARAMETER :: B7AddMzi = 3045
+ INTEGER(IntKi), PARAMETER :: B7WvsF1xi = 3046
+ INTEGER(IntKi), PARAMETER :: B7WvsF1yi = 3047
+ INTEGER(IntKi), PARAMETER :: B7WvsF1zi = 3048
+ INTEGER(IntKi), PARAMETER :: B7WvsM1xi = 3049
+ INTEGER(IntKi), PARAMETER :: B7WvsM1yi = 3050
+ INTEGER(IntKi), PARAMETER :: B7WvsM1zi = 3051
+ INTEGER(IntKi), PARAMETER :: B7WvsFxi = 3052
+ INTEGER(IntKi), PARAMETER :: B7WvsFyi = 3053
+ INTEGER(IntKi), PARAMETER :: B7WvsFzi = 3054
+ INTEGER(IntKi), PARAMETER :: B7WvsMxi = 3055
+ INTEGER(IntKi), PARAMETER :: B7WvsMyi = 3056
+ INTEGER(IntKi), PARAMETER :: B7WvsMzi = 3057
+ INTEGER(IntKi), PARAMETER :: B7HdSFxi = 3058
+ INTEGER(IntKi), PARAMETER :: B7HdSFyi = 3059
+ INTEGER(IntKi), PARAMETER :: B7HdSFzi = 3060
+ INTEGER(IntKi), PARAMETER :: B7HdSMxi = 3061
+ INTEGER(IntKi), PARAMETER :: B7HdSMyi = 3062
+ INTEGER(IntKi), PARAMETER :: B7HdSMzi = 3063
+ INTEGER(IntKi), PARAMETER :: B7RdtFxi = 3064
+ INTEGER(IntKi), PARAMETER :: B7RdtFyi = 3065
+ INTEGER(IntKi), PARAMETER :: B7RdtFzi = 3066
+ INTEGER(IntKi), PARAMETER :: B7RdtMxi = 3067
+ INTEGER(IntKi), PARAMETER :: B7RdtMyi = 3068
+ INTEGER(IntKi), PARAMETER :: B7RdtMzi = 3069
+ INTEGER(IntKi), PARAMETER :: B8AddFxi = 3070
+ INTEGER(IntKi), PARAMETER :: B8AddFyi = 3071
+ INTEGER(IntKi), PARAMETER :: B8AddFzi = 3072
+ INTEGER(IntKi), PARAMETER :: B8AddMxi = 3073
+ INTEGER(IntKi), PARAMETER :: B8AddMyi = 3074
+ INTEGER(IntKi), PARAMETER :: B8AddMzi = 3075
+ INTEGER(IntKi), PARAMETER :: B8WvsF1xi = 3076
+ INTEGER(IntKi), PARAMETER :: B8WvsF1yi = 3077
+ INTEGER(IntKi), PARAMETER :: B8WvsF1zi = 3078
+ INTEGER(IntKi), PARAMETER :: B8WvsM1xi = 3079
+ INTEGER(IntKi), PARAMETER :: B8WvsM1yi = 3080
+ INTEGER(IntKi), PARAMETER :: B8WvsM1zi = 3081
+ INTEGER(IntKi), PARAMETER :: B8WvsFxi = 3082
+ INTEGER(IntKi), PARAMETER :: B8WvsFyi = 3083
+ INTEGER(IntKi), PARAMETER :: B8WvsFzi = 3084
+ INTEGER(IntKi), PARAMETER :: B8WvsMxi = 3085
+ INTEGER(IntKi), PARAMETER :: B8WvsMyi = 3086
+ INTEGER(IntKi), PARAMETER :: B8WvsMzi = 3087
+ INTEGER(IntKi), PARAMETER :: B8HdSFxi = 3088
+ INTEGER(IntKi), PARAMETER :: B8HdSFyi = 3089
+ INTEGER(IntKi), PARAMETER :: B8HdSFzi = 3090
+ INTEGER(IntKi), PARAMETER :: B8HdSMxi = 3091
+ INTEGER(IntKi), PARAMETER :: B8HdSMyi = 3092
+ INTEGER(IntKi), PARAMETER :: B8HdSMzi = 3093
+ INTEGER(IntKi), PARAMETER :: B8RdtFxi = 3094
+ INTEGER(IntKi), PARAMETER :: B8RdtFyi = 3095
+ INTEGER(IntKi), PARAMETER :: B8RdtFzi = 3096
+ INTEGER(IntKi), PARAMETER :: B8RdtMxi = 3097
+ INTEGER(IntKi), PARAMETER :: B8RdtMyi = 3098
+ INTEGER(IntKi), PARAMETER :: B8RdtMzi = 3099
+ INTEGER(IntKi), PARAMETER :: B9AddFxi = 3100
+ INTEGER(IntKi), PARAMETER :: B9AddFyi = 3101
+ INTEGER(IntKi), PARAMETER :: B9AddFzi = 3102
+ INTEGER(IntKi), PARAMETER :: B9AddMxi = 3103
+ INTEGER(IntKi), PARAMETER :: B9AddMyi = 3104
+ INTEGER(IntKi), PARAMETER :: B9AddMzi = 3105
+ INTEGER(IntKi), PARAMETER :: B9WvsF1xi = 3106
+ INTEGER(IntKi), PARAMETER :: B9WvsF1yi = 3107
+ INTEGER(IntKi), PARAMETER :: B9WvsF1zi = 3108
+ INTEGER(IntKi), PARAMETER :: B9WvsM1xi = 3109
+ INTEGER(IntKi), PARAMETER :: B9WvsM1yi = 3110
+ INTEGER(IntKi), PARAMETER :: B9WvsM1zi = 3111
+ INTEGER(IntKi), PARAMETER :: B9WvsFxi = 3112
+ INTEGER(IntKi), PARAMETER :: B9WvsFyi = 3113
+ INTEGER(IntKi), PARAMETER :: B9WvsFzi = 3114
+ INTEGER(IntKi), PARAMETER :: B9WvsMxi = 3115
+ INTEGER(IntKi), PARAMETER :: B9WvsMyi = 3116
+ INTEGER(IntKi), PARAMETER :: B9WvsMzi = 3117
+ INTEGER(IntKi), PARAMETER :: B9HdSFxi = 3118
+ INTEGER(IntKi), PARAMETER :: B9HdSFyi = 3119
+ INTEGER(IntKi), PARAMETER :: B9HdSFzi = 3120
+ INTEGER(IntKi), PARAMETER :: B9HdSMxi = 3121
+ INTEGER(IntKi), PARAMETER :: B9HdSMyi = 3122
+ INTEGER(IntKi), PARAMETER :: B9HdSMzi = 3123
+ INTEGER(IntKi), PARAMETER :: B9RdtFxi = 3124
+ INTEGER(IntKi), PARAMETER :: B9RdtFyi = 3125
+ INTEGER(IntKi), PARAMETER :: B9RdtFzi = 3126
+ INTEGER(IntKi), PARAMETER :: B9RdtMxi = 3127
+ INTEGER(IntKi), PARAMETER :: B9RdtMyi = 3128
+ INTEGER(IntKi), PARAMETER :: B9RdtMzi = 3129
+ INTEGER(IntKi), PARAMETER :: B1WvsF2xi = 3130
+ INTEGER(IntKi), PARAMETER :: B1WvsF2yi = 3131
+ INTEGER(IntKi), PARAMETER :: B1WvsF2zi = 3132
+ INTEGER(IntKi), PARAMETER :: B1WvsM2xi = 3133
+ INTEGER(IntKi), PARAMETER :: B1WvsM2yi = 3134
+ INTEGER(IntKi), PARAMETER :: B1WvsM2zi = 3135
+ INTEGER(IntKi), PARAMETER :: B2WvsF2xi = 3136
+ INTEGER(IntKi), PARAMETER :: B2WvsF2yi = 3137
+ INTEGER(IntKi), PARAMETER :: B2WvsF2zi = 3138
+ INTEGER(IntKi), PARAMETER :: B2WvsM2xi = 3139
+ INTEGER(IntKi), PARAMETER :: B2WvsM2yi = 3140
+ INTEGER(IntKi), PARAMETER :: B2WvsM2zi = 3141
+ INTEGER(IntKi), PARAMETER :: B3WvsF2xi = 3142
+ INTEGER(IntKi), PARAMETER :: B3WvsF2yi = 3143
+ INTEGER(IntKi), PARAMETER :: B3WvsF2zi = 3144
+ INTEGER(IntKi), PARAMETER :: B3WvsM2xi = 3145
+ INTEGER(IntKi), PARAMETER :: B3WvsM2yi = 3146
+ INTEGER(IntKi), PARAMETER :: B3WvsM2zi = 3147
+ INTEGER(IntKi), PARAMETER :: B4WvsF2xi = 3148
+ INTEGER(IntKi), PARAMETER :: B4WvsF2yi = 3149
+ INTEGER(IntKi), PARAMETER :: B4WvsF2zi = 3150
+ INTEGER(IntKi), PARAMETER :: B4WvsM2xi = 3151
+ INTEGER(IntKi), PARAMETER :: B4WvsM2yi = 3152
+ INTEGER(IntKi), PARAMETER :: B4WvsM2zi = 3153
+ INTEGER(IntKi), PARAMETER :: B5WvsF2xi = 3154
+ INTEGER(IntKi), PARAMETER :: B5WvsF2yi = 3155
+ INTEGER(IntKi), PARAMETER :: B5WvsF2zi = 3156
+ INTEGER(IntKi), PARAMETER :: B5WvsM2xi = 3157
+ INTEGER(IntKi), PARAMETER :: B5WvsM2yi = 3158
+ INTEGER(IntKi), PARAMETER :: B5WvsM2zi = 3159
+ INTEGER(IntKi), PARAMETER :: B6WvsF2xi = 3160
+ INTEGER(IntKi), PARAMETER :: B6WvsF2yi = 3161
+ INTEGER(IntKi), PARAMETER :: B6WvsF2zi = 3162
+ INTEGER(IntKi), PARAMETER :: B6WvsM2xi = 3163
+ INTEGER(IntKi), PARAMETER :: B6WvsM2yi = 3164
+ INTEGER(IntKi), PARAMETER :: B6WvsM2zi = 3165
+ INTEGER(IntKi), PARAMETER :: B7WvsF2xi = 3166
+ INTEGER(IntKi), PARAMETER :: B7WvsF2yi = 3167
+ INTEGER(IntKi), PARAMETER :: B7WvsF2zi = 3168
+ INTEGER(IntKi), PARAMETER :: B7WvsM2xi = 3169
+ INTEGER(IntKi), PARAMETER :: B7WvsM2yi = 3170
+ INTEGER(IntKi), PARAMETER :: B7WvsM2zi = 3171
+ INTEGER(IntKi), PARAMETER :: B8WvsF2xi = 3172
+ INTEGER(IntKi), PARAMETER :: B8WvsF2yi = 3173
+ INTEGER(IntKi), PARAMETER :: B8WvsF2zi = 3174
+ INTEGER(IntKi), PARAMETER :: B8WvsM2xi = 3175
+ INTEGER(IntKi), PARAMETER :: B8WvsM2yi = 3176
+ INTEGER(IntKi), PARAMETER :: B8WvsM2zi = 3177
+ INTEGER(IntKi), PARAMETER :: B9WvsF2xi = 3178
+ INTEGER(IntKi), PARAMETER :: B9WvsF2yi = 3179
+ INTEGER(IntKi), PARAMETER :: B9WvsF2zi = 3180
+ INTEGER(IntKi), PARAMETER :: B9WvsM2xi = 3181
+ INTEGER(IntKi), PARAMETER :: B9WvsM2yi = 3182
+ INTEGER(IntKi), PARAMETER :: B9WvsM2zi = 3183
+ INTEGER(IntKi), PARAMETER :: B1ADOF1Add = 3184
+ INTEGER(IntKi), PARAMETER :: B1ADOF2Add = 3185
+ INTEGER(IntKi), PARAMETER :: B1ADOF3Add = 3186
+ INTEGER(IntKi), PARAMETER :: B1ADOF4Add = 3187
+ INTEGER(IntKi), PARAMETER :: B1ADOF5Add = 3188
+ INTEGER(IntKi), PARAMETER :: B1ADOF6Add = 3189
+ INTEGER(IntKi), PARAMETER :: B1ADOF7Add = 3190
+ INTEGER(IntKi), PARAMETER :: B1ADOF8Add = 3191
+ INTEGER(IntKi), PARAMETER :: B1ADOF9Add = 3192
+ INTEGER(IntKi), PARAMETER :: B1ADOF10Add = 3193
+ INTEGER(IntKi), PARAMETER :: B1ADOF11Add = 3194
+ INTEGER(IntKi), PARAMETER :: B1ADOF12Add = 3195
+ INTEGER(IntKi), PARAMETER :: B1ADOF13Add = 3196
+ INTEGER(IntKi), PARAMETER :: B1ADOF14Add = 3197
+ INTEGER(IntKi), PARAMETER :: B1ADOF15Add = 3198
+ INTEGER(IntKi), PARAMETER :: B1ADOF16Add = 3199
+ INTEGER(IntKi), PARAMETER :: B1ADOF17Add = 3200
+ INTEGER(IntKi), PARAMETER :: B1ADOF18Add = 3201
+ INTEGER(IntKi), PARAMETER :: B1ADOF19Add = 3202
+ INTEGER(IntKi), PARAMETER :: B1ADOF20Add = 3203
+ INTEGER(IntKi), PARAMETER :: B1ADOF21Add = 3204
+ INTEGER(IntKi), PARAMETER :: B1ADOF22Add = 3205
+ INTEGER(IntKi), PARAMETER :: B1ADOF23Add = 3206
+ INTEGER(IntKi), PARAMETER :: B1ADOF24Add = 3207
+ INTEGER(IntKi), PARAMETER :: B1ADOF25Add = 3208
+ INTEGER(IntKi), PARAMETER :: B1ADOF26Add = 3209
+ INTEGER(IntKi), PARAMETER :: B1ADOF27Add = 3210
+ INTEGER(IntKi), PARAMETER :: B1ADOF28Add = 3211
+ INTEGER(IntKi), PARAMETER :: B1ADOF29Add = 3212
+ INTEGER(IntKi), PARAMETER :: B1ADOF30Add = 3213
+ INTEGER(IntKi), PARAMETER :: B1ADOF31Add = 3214
+ INTEGER(IntKi), PARAMETER :: B1ADOF32Add = 3215
+ INTEGER(IntKi), PARAMETER :: B1ADOF33Add = 3216
+ INTEGER(IntKi), PARAMETER :: B1ADOF34Add = 3217
+ INTEGER(IntKi), PARAMETER :: B1ADOF35Add = 3218
+ INTEGER(IntKi), PARAMETER :: B1ADOF36Add = 3219
+ INTEGER(IntKi), PARAMETER :: B1ADOF37Add = 3220
+ INTEGER(IntKi), PARAMETER :: B1ADOF38Add = 3221
+ INTEGER(IntKi), PARAMETER :: B1ADOF39Add = 3222
+ INTEGER(IntKi), PARAMETER :: B1ADOF40Add = 3223
+ INTEGER(IntKi), PARAMETER :: B1ADOF41Add = 3224
+ INTEGER(IntKi), PARAMETER :: B1ADOF42Add = 3225
+ INTEGER(IntKi), PARAMETER :: B1ADOF43Add = 3226
+ INTEGER(IntKi), PARAMETER :: B1ADOF44Add = 3227
+ INTEGER(IntKi), PARAMETER :: B1ADOF45Add = 3228
+ INTEGER(IntKi), PARAMETER :: B1ADOF46Add = 3229
+ INTEGER(IntKi), PARAMETER :: B1ADOF47Add = 3230
+ INTEGER(IntKi), PARAMETER :: B1ADOF48Add = 3231
+ INTEGER(IntKi), PARAMETER :: B1ADOF49Add = 3232
+ INTEGER(IntKi), PARAMETER :: B1ADOF50Add = 3233
+ INTEGER(IntKi), PARAMETER :: B1ADOF51Add = 3234
+ INTEGER(IntKi), PARAMETER :: B1ADOF52Add = 3235
+ INTEGER(IntKi), PARAMETER :: B1ADOF53Add = 3236
+ INTEGER(IntKi), PARAMETER :: B1ADOF54Add = 3237
+ INTEGER(IntKi), PARAMETER :: B1ADOF55Add = 3238
+ INTEGER(IntKi), PARAMETER :: B1ADOF56Add = 3239
+ INTEGER(IntKi), PARAMETER :: B1ADOF57Add = 3240
+ INTEGER(IntKi), PARAMETER :: B1ADOF58Add = 3241
+ INTEGER(IntKi), PARAMETER :: B1ADOF59Add = 3242
+ INTEGER(IntKi), PARAMETER :: B1ADOF60Add = 3243
+ INTEGER(IntKi), PARAMETER :: B1ADOF61Add = 3244
+ INTEGER(IntKi), PARAMETER :: B1ADOF62Add = 3245
+ INTEGER(IntKi), PARAMETER :: B1ADOF63Add = 3246
+ INTEGER(IntKi), PARAMETER :: B1ADOF64Add = 3247
+ INTEGER(IntKi), PARAMETER :: B1ADOF65Add = 3248
+ INTEGER(IntKi), PARAMETER :: B1ADOF66Add = 3249
+ INTEGER(IntKi), PARAMETER :: B1ADOF67Add = 3250
+ INTEGER(IntKi), PARAMETER :: B1ADOF68Add = 3251
+ INTEGER(IntKi), PARAMETER :: B1ADOF69Add = 3252
+ INTEGER(IntKi), PARAMETER :: B1ADOF70Add = 3253
+ INTEGER(IntKi), PARAMETER :: B1ADOF71Add = 3254
+ INTEGER(IntKi), PARAMETER :: B1ADOF72Add = 3255
+ INTEGER(IntKi), PARAMETER :: B1ADOF73Add = 3256
+ INTEGER(IntKi), PARAMETER :: B1ADOF74Add = 3257
+ INTEGER(IntKi), PARAMETER :: B1ADOF75Add = 3258
+ INTEGER(IntKi), PARAMETER :: B1ADOF76Add = 3259
+ INTEGER(IntKi), PARAMETER :: B1ADOF77Add = 3260
+ INTEGER(IntKi), PARAMETER :: B1ADOF78Add = 3261
+ INTEGER(IntKi), PARAMETER :: B1ADOF79Add = 3262
+ INTEGER(IntKi), PARAMETER :: B1ADOF80Add = 3263
+ INTEGER(IntKi), PARAMETER :: B1ADOF81Add = 3264
+ INTEGER(IntKi), PARAMETER :: B1ADOF82Add = 3265
+ INTEGER(IntKi), PARAMETER :: B1ADOF83Add = 3266
+ INTEGER(IntKi), PARAMETER :: B1ADOF84Add = 3267
+ INTEGER(IntKi), PARAMETER :: B1ADOF85Add = 3268
+ INTEGER(IntKi), PARAMETER :: B1ADOF86Add = 3269
+ INTEGER(IntKi), PARAMETER :: B1ADOF87Add = 3270
+ INTEGER(IntKi), PARAMETER :: B1ADOF88Add = 3271
+ INTEGER(IntKi), PARAMETER :: B1ADOF89Add = 3272
+ INTEGER(IntKi), PARAMETER :: B1ADOF90Add = 3273
+ INTEGER(IntKi), PARAMETER :: B1ADOF91Add = 3274
+ INTEGER(IntKi), PARAMETER :: B1ADOF92Add = 3275
+ INTEGER(IntKi), PARAMETER :: B1ADOF93Add = 3276
+ INTEGER(IntKi), PARAMETER :: B1ADOF94Add = 3277
+ INTEGER(IntKi), PARAMETER :: B1ADOF95Add = 3278
+ INTEGER(IntKi), PARAMETER :: B1ADOF96Add = 3279
+ INTEGER(IntKi), PARAMETER :: B1ADOF97Add = 3280
+ INTEGER(IntKi), PARAMETER :: B1ADOF98Add = 3281
+ INTEGER(IntKi), PARAMETER :: B1ADOF99Add = 3282
+ INTEGER(IntKi), PARAMETER :: B2ADOF1Add = 3283
+ INTEGER(IntKi), PARAMETER :: B2ADOF2Add = 3284
+ INTEGER(IntKi), PARAMETER :: B2ADOF3Add = 3285
+ INTEGER(IntKi), PARAMETER :: B2ADOF4Add = 3286
+ INTEGER(IntKi), PARAMETER :: B2ADOF5Add = 3287
+ INTEGER(IntKi), PARAMETER :: B2ADOF6Add = 3288
+ INTEGER(IntKi), PARAMETER :: B2ADOF7Add = 3289
+ INTEGER(IntKi), PARAMETER :: B2ADOF8Add = 3290
+ INTEGER(IntKi), PARAMETER :: B2ADOF9Add = 3291
+ INTEGER(IntKi), PARAMETER :: B2ADOF10Add = 3292
+ INTEGER(IntKi), PARAMETER :: B2ADOF11Add = 3293
+ INTEGER(IntKi), PARAMETER :: B2ADOF12Add = 3294
+ INTEGER(IntKi), PARAMETER :: B2ADOF13Add = 3295
+ INTEGER(IntKi), PARAMETER :: B2ADOF14Add = 3296
+ INTEGER(IntKi), PARAMETER :: B2ADOF15Add = 3297
+ INTEGER(IntKi), PARAMETER :: B2ADOF16Add = 3298
+ INTEGER(IntKi), PARAMETER :: B2ADOF17Add = 3299
+ INTEGER(IntKi), PARAMETER :: B2ADOF18Add = 3300
+ INTEGER(IntKi), PARAMETER :: B2ADOF19Add = 3301
+ INTEGER(IntKi), PARAMETER :: B2ADOF20Add = 3302
+ INTEGER(IntKi), PARAMETER :: B2ADOF21Add = 3303
+ INTEGER(IntKi), PARAMETER :: B2ADOF22Add = 3304
+ INTEGER(IntKi), PARAMETER :: B2ADOF23Add = 3305
+ INTEGER(IntKi), PARAMETER :: B2ADOF24Add = 3306
+ INTEGER(IntKi), PARAMETER :: B2ADOF25Add = 3307
+ INTEGER(IntKi), PARAMETER :: B2ADOF26Add = 3308
+ INTEGER(IntKi), PARAMETER :: B2ADOF27Add = 3309
+ INTEGER(IntKi), PARAMETER :: B2ADOF28Add = 3310
+ INTEGER(IntKi), PARAMETER :: B2ADOF29Add = 3311
+ INTEGER(IntKi), PARAMETER :: B2ADOF30Add = 3312
+ INTEGER(IntKi), PARAMETER :: B2ADOF31Add = 3313
+ INTEGER(IntKi), PARAMETER :: B2ADOF32Add = 3314
+ INTEGER(IntKi), PARAMETER :: B2ADOF33Add = 3315
+ INTEGER(IntKi), PARAMETER :: B2ADOF34Add = 3316
+ INTEGER(IntKi), PARAMETER :: B2ADOF35Add = 3317
+ INTEGER(IntKi), PARAMETER :: B2ADOF36Add = 3318
+ INTEGER(IntKi), PARAMETER :: B2ADOF37Add = 3319
+ INTEGER(IntKi), PARAMETER :: B2ADOF38Add = 3320
+ INTEGER(IntKi), PARAMETER :: B2ADOF39Add = 3321
+ INTEGER(IntKi), PARAMETER :: B2ADOF40Add = 3322
+ INTEGER(IntKi), PARAMETER :: B2ADOF41Add = 3323
+ INTEGER(IntKi), PARAMETER :: B2ADOF42Add = 3324
+ INTEGER(IntKi), PARAMETER :: B2ADOF43Add = 3325
+ INTEGER(IntKi), PARAMETER :: B2ADOF44Add = 3326
+ INTEGER(IntKi), PARAMETER :: B2ADOF45Add = 3327
+ INTEGER(IntKi), PARAMETER :: B2ADOF46Add = 3328
+ INTEGER(IntKi), PARAMETER :: B2ADOF47Add = 3329
+ INTEGER(IntKi), PARAMETER :: B2ADOF48Add = 3330
+ INTEGER(IntKi), PARAMETER :: B2ADOF49Add = 3331
+ INTEGER(IntKi), PARAMETER :: B2ADOF50Add = 3332
+ INTEGER(IntKi), PARAMETER :: B2ADOF51Add = 3333
+ INTEGER(IntKi), PARAMETER :: B2ADOF52Add = 3334
+ INTEGER(IntKi), PARAMETER :: B2ADOF53Add = 3335
+ INTEGER(IntKi), PARAMETER :: B2ADOF54Add = 3336
+ INTEGER(IntKi), PARAMETER :: B2ADOF55Add = 3337
+ INTEGER(IntKi), PARAMETER :: B2ADOF56Add = 3338
+ INTEGER(IntKi), PARAMETER :: B2ADOF57Add = 3339
+ INTEGER(IntKi), PARAMETER :: B2ADOF58Add = 3340
+ INTEGER(IntKi), PARAMETER :: B2ADOF59Add = 3341
+ INTEGER(IntKi), PARAMETER :: B2ADOF60Add = 3342
+ INTEGER(IntKi), PARAMETER :: B2ADOF61Add = 3343
+ INTEGER(IntKi), PARAMETER :: B2ADOF62Add = 3344
+ INTEGER(IntKi), PARAMETER :: B2ADOF63Add = 3345
+ INTEGER(IntKi), PARAMETER :: B2ADOF64Add = 3346
+ INTEGER(IntKi), PARAMETER :: B2ADOF65Add = 3347
+ INTEGER(IntKi), PARAMETER :: B2ADOF66Add = 3348
+ INTEGER(IntKi), PARAMETER :: B2ADOF67Add = 3349
+ INTEGER(IntKi), PARAMETER :: B2ADOF68Add = 3350
+ INTEGER(IntKi), PARAMETER :: B2ADOF69Add = 3351
+ INTEGER(IntKi), PARAMETER :: B2ADOF70Add = 3352
+ INTEGER(IntKi), PARAMETER :: B2ADOF71Add = 3353
+ INTEGER(IntKi), PARAMETER :: B2ADOF72Add = 3354
+ INTEGER(IntKi), PARAMETER :: B2ADOF73Add = 3355
+ INTEGER(IntKi), PARAMETER :: B2ADOF74Add = 3356
+ INTEGER(IntKi), PARAMETER :: B2ADOF75Add = 3357
+ INTEGER(IntKi), PARAMETER :: B2ADOF76Add = 3358
+ INTEGER(IntKi), PARAMETER :: B2ADOF77Add = 3359
+ INTEGER(IntKi), PARAMETER :: B2ADOF78Add = 3360
+ INTEGER(IntKi), PARAMETER :: B2ADOF79Add = 3361
+ INTEGER(IntKi), PARAMETER :: B2ADOF80Add = 3362
+ INTEGER(IntKi), PARAMETER :: B2ADOF81Add = 3363
+ INTEGER(IntKi), PARAMETER :: B2ADOF82Add = 3364
+ INTEGER(IntKi), PARAMETER :: B2ADOF83Add = 3365
+ INTEGER(IntKi), PARAMETER :: B2ADOF84Add = 3366
+ INTEGER(IntKi), PARAMETER :: B2ADOF85Add = 3367
+ INTEGER(IntKi), PARAMETER :: B2ADOF86Add = 3368
+ INTEGER(IntKi), PARAMETER :: B2ADOF87Add = 3369
+ INTEGER(IntKi), PARAMETER :: B2ADOF88Add = 3370
+ INTEGER(IntKi), PARAMETER :: B2ADOF89Add = 3371
+ INTEGER(IntKi), PARAMETER :: B2ADOF90Add = 3372
+ INTEGER(IntKi), PARAMETER :: B2ADOF91Add = 3373
+ INTEGER(IntKi), PARAMETER :: B2ADOF92Add = 3374
+ INTEGER(IntKi), PARAMETER :: B2ADOF93Add = 3375
+ INTEGER(IntKi), PARAMETER :: B2ADOF94Add = 3376
+ INTEGER(IntKi), PARAMETER :: B2ADOF95Add = 3377
+ INTEGER(IntKi), PARAMETER :: B2ADOF96Add = 3378
+ INTEGER(IntKi), PARAMETER :: B2ADOF97Add = 3379
+ INTEGER(IntKi), PARAMETER :: B2ADOF98Add = 3380
+ INTEGER(IntKi), PARAMETER :: B2ADOF99Add = 3381
+ INTEGER(IntKi), PARAMETER :: B3ADOF1Add = 3382
+ INTEGER(IntKi), PARAMETER :: B3ADOF2Add = 3383
+ INTEGER(IntKi), PARAMETER :: B3ADOF3Add = 3384
+ INTEGER(IntKi), PARAMETER :: B3ADOF4Add = 3385
+ INTEGER(IntKi), PARAMETER :: B3ADOF5Add = 3386
+ INTEGER(IntKi), PARAMETER :: B3ADOF6Add = 3387
+ INTEGER(IntKi), PARAMETER :: B3ADOF7Add = 3388
+ INTEGER(IntKi), PARAMETER :: B3ADOF8Add = 3389
+ INTEGER(IntKi), PARAMETER :: B3ADOF9Add = 3390
+ INTEGER(IntKi), PARAMETER :: B3ADOF10Add = 3391
+ INTEGER(IntKi), PARAMETER :: B3ADOF11Add = 3392
+ INTEGER(IntKi), PARAMETER :: B3ADOF12Add = 3393
+ INTEGER(IntKi), PARAMETER :: B3ADOF13Add = 3394
+ INTEGER(IntKi), PARAMETER :: B3ADOF14Add = 3395
+ INTEGER(IntKi), PARAMETER :: B3ADOF15Add = 3396
+ INTEGER(IntKi), PARAMETER :: B3ADOF16Add = 3397
+ INTEGER(IntKi), PARAMETER :: B3ADOF17Add = 3398
+ INTEGER(IntKi), PARAMETER :: B3ADOF18Add = 3399
+ INTEGER(IntKi), PARAMETER :: B3ADOF19Add = 3400
+ INTEGER(IntKi), PARAMETER :: B3ADOF20Add = 3401
+ INTEGER(IntKi), PARAMETER :: B3ADOF21Add = 3402
+ INTEGER(IntKi), PARAMETER :: B3ADOF22Add = 3403
+ INTEGER(IntKi), PARAMETER :: B3ADOF23Add = 3404
+ INTEGER(IntKi), PARAMETER :: B3ADOF24Add = 3405
+ INTEGER(IntKi), PARAMETER :: B3ADOF25Add = 3406
+ INTEGER(IntKi), PARAMETER :: B3ADOF26Add = 3407
+ INTEGER(IntKi), PARAMETER :: B3ADOF27Add = 3408
+ INTEGER(IntKi), PARAMETER :: B3ADOF28Add = 3409
+ INTEGER(IntKi), PARAMETER :: B3ADOF29Add = 3410
+ INTEGER(IntKi), PARAMETER :: B3ADOF30Add = 3411
+ INTEGER(IntKi), PARAMETER :: B3ADOF31Add = 3412
+ INTEGER(IntKi), PARAMETER :: B3ADOF32Add = 3413
+ INTEGER(IntKi), PARAMETER :: B3ADOF33Add = 3414
+ INTEGER(IntKi), PARAMETER :: B3ADOF34Add = 3415
+ INTEGER(IntKi), PARAMETER :: B3ADOF35Add = 3416
+ INTEGER(IntKi), PARAMETER :: B3ADOF36Add = 3417
+ INTEGER(IntKi), PARAMETER :: B3ADOF37Add = 3418
+ INTEGER(IntKi), PARAMETER :: B3ADOF38Add = 3419
+ INTEGER(IntKi), PARAMETER :: B3ADOF39Add = 3420
+ INTEGER(IntKi), PARAMETER :: B3ADOF40Add = 3421
+ INTEGER(IntKi), PARAMETER :: B3ADOF41Add = 3422
+ INTEGER(IntKi), PARAMETER :: B3ADOF42Add = 3423
+ INTEGER(IntKi), PARAMETER :: B3ADOF43Add = 3424
+ INTEGER(IntKi), PARAMETER :: B3ADOF44Add = 3425
+ INTEGER(IntKi), PARAMETER :: B3ADOF45Add = 3426
+ INTEGER(IntKi), PARAMETER :: B3ADOF46Add = 3427
+ INTEGER(IntKi), PARAMETER :: B3ADOF47Add = 3428
+ INTEGER(IntKi), PARAMETER :: B3ADOF48Add = 3429
+ INTEGER(IntKi), PARAMETER :: B3ADOF49Add = 3430
+ INTEGER(IntKi), PARAMETER :: B3ADOF50Add = 3431
+ INTEGER(IntKi), PARAMETER :: B3ADOF51Add = 3432
+ INTEGER(IntKi), PARAMETER :: B3ADOF52Add = 3433
+ INTEGER(IntKi), PARAMETER :: B3ADOF53Add = 3434
+ INTEGER(IntKi), PARAMETER :: B3ADOF54Add = 3435
+ INTEGER(IntKi), PARAMETER :: B3ADOF55Add = 3436
+ INTEGER(IntKi), PARAMETER :: B3ADOF56Add = 3437
+ INTEGER(IntKi), PARAMETER :: B3ADOF57Add = 3438
+ INTEGER(IntKi), PARAMETER :: B3ADOF58Add = 3439
+ INTEGER(IntKi), PARAMETER :: B3ADOF59Add = 3440
+ INTEGER(IntKi), PARAMETER :: B3ADOF60Add = 3441
+ INTEGER(IntKi), PARAMETER :: B3ADOF61Add = 3442
+ INTEGER(IntKi), PARAMETER :: B3ADOF62Add = 3443
+ INTEGER(IntKi), PARAMETER :: B3ADOF63Add = 3444
+ INTEGER(IntKi), PARAMETER :: B3ADOF64Add = 3445
+ INTEGER(IntKi), PARAMETER :: B3ADOF65Add = 3446
+ INTEGER(IntKi), PARAMETER :: B3ADOF66Add = 3447
+ INTEGER(IntKi), PARAMETER :: B3ADOF67Add = 3448
+ INTEGER(IntKi), PARAMETER :: B3ADOF68Add = 3449
+ INTEGER(IntKi), PARAMETER :: B3ADOF69Add = 3450
+ INTEGER(IntKi), PARAMETER :: B3ADOF70Add = 3451
+ INTEGER(IntKi), PARAMETER :: B3ADOF71Add = 3452
+ INTEGER(IntKi), PARAMETER :: B3ADOF72Add = 3453
+ INTEGER(IntKi), PARAMETER :: B3ADOF73Add = 3454
+ INTEGER(IntKi), PARAMETER :: B3ADOF74Add = 3455
+ INTEGER(IntKi), PARAMETER :: B3ADOF75Add = 3456
+ INTEGER(IntKi), PARAMETER :: B3ADOF76Add = 3457
+ INTEGER(IntKi), PARAMETER :: B3ADOF77Add = 3458
+ INTEGER(IntKi), PARAMETER :: B3ADOF78Add = 3459
+ INTEGER(IntKi), PARAMETER :: B3ADOF79Add = 3460
+ INTEGER(IntKi), PARAMETER :: B3ADOF80Add = 3461
+ INTEGER(IntKi), PARAMETER :: B3ADOF81Add = 3462
+ INTEGER(IntKi), PARAMETER :: B3ADOF82Add = 3463
+ INTEGER(IntKi), PARAMETER :: B3ADOF83Add = 3464
+ INTEGER(IntKi), PARAMETER :: B3ADOF84Add = 3465
+ INTEGER(IntKi), PARAMETER :: B3ADOF85Add = 3466
+ INTEGER(IntKi), PARAMETER :: B3ADOF86Add = 3467
+ INTEGER(IntKi), PARAMETER :: B3ADOF87Add = 3468
+ INTEGER(IntKi), PARAMETER :: B3ADOF88Add = 3469
+ INTEGER(IntKi), PARAMETER :: B3ADOF89Add = 3470
+ INTEGER(IntKi), PARAMETER :: B3ADOF90Add = 3471
+ INTEGER(IntKi), PARAMETER :: B3ADOF91Add = 3472
+ INTEGER(IntKi), PARAMETER :: B3ADOF92Add = 3473
+ INTEGER(IntKi), PARAMETER :: B3ADOF93Add = 3474
+ INTEGER(IntKi), PARAMETER :: B3ADOF94Add = 3475
+ INTEGER(IntKi), PARAMETER :: B3ADOF95Add = 3476
+ INTEGER(IntKi), PARAMETER :: B3ADOF96Add = 3477
+ INTEGER(IntKi), PARAMETER :: B3ADOF97Add = 3478
+ INTEGER(IntKi), PARAMETER :: B3ADOF98Add = 3479
+ INTEGER(IntKi), PARAMETER :: B3ADOF99Add = 3480
+ INTEGER(IntKi), PARAMETER :: B4ADOF1Add = 3481
+ INTEGER(IntKi), PARAMETER :: B4ADOF2Add = 3482
+ INTEGER(IntKi), PARAMETER :: B4ADOF3Add = 3483
+ INTEGER(IntKi), PARAMETER :: B4ADOF4Add = 3484
+ INTEGER(IntKi), PARAMETER :: B4ADOF5Add = 3485
+ INTEGER(IntKi), PARAMETER :: B4ADOF6Add = 3486
+ INTEGER(IntKi), PARAMETER :: B4ADOF7Add = 3487
+ INTEGER(IntKi), PARAMETER :: B4ADOF8Add = 3488
+ INTEGER(IntKi), PARAMETER :: B4ADOF9Add = 3489
+ INTEGER(IntKi), PARAMETER :: B4ADOF10Add = 3490
+ INTEGER(IntKi), PARAMETER :: B4ADOF11Add = 3491
+ INTEGER(IntKi), PARAMETER :: B4ADOF12Add = 3492
+ INTEGER(IntKi), PARAMETER :: B4ADOF13Add = 3493
+ INTEGER(IntKi), PARAMETER :: B4ADOF14Add = 3494
+ INTEGER(IntKi), PARAMETER :: B4ADOF15Add = 3495
+ INTEGER(IntKi), PARAMETER :: B4ADOF16Add = 3496
+ INTEGER(IntKi), PARAMETER :: B4ADOF17Add = 3497
+ INTEGER(IntKi), PARAMETER :: B4ADOF18Add = 3498
+ INTEGER(IntKi), PARAMETER :: B4ADOF19Add = 3499
+ INTEGER(IntKi), PARAMETER :: B4ADOF20Add = 3500
+ INTEGER(IntKi), PARAMETER :: B4ADOF21Add = 3501
+ INTEGER(IntKi), PARAMETER :: B4ADOF22Add = 3502
+ INTEGER(IntKi), PARAMETER :: B4ADOF23Add = 3503
+ INTEGER(IntKi), PARAMETER :: B4ADOF24Add = 3504
+ INTEGER(IntKi), PARAMETER :: B4ADOF25Add = 3505
+ INTEGER(IntKi), PARAMETER :: B4ADOF26Add = 3506
+ INTEGER(IntKi), PARAMETER :: B4ADOF27Add = 3507
+ INTEGER(IntKi), PARAMETER :: B4ADOF28Add = 3508
+ INTEGER(IntKi), PARAMETER :: B4ADOF29Add = 3509
+ INTEGER(IntKi), PARAMETER :: B4ADOF30Add = 3510
+ INTEGER(IntKi), PARAMETER :: B4ADOF31Add = 3511
+ INTEGER(IntKi), PARAMETER :: B4ADOF32Add = 3512
+ INTEGER(IntKi), PARAMETER :: B4ADOF33Add = 3513
+ INTEGER(IntKi), PARAMETER :: B4ADOF34Add = 3514
+ INTEGER(IntKi), PARAMETER :: B4ADOF35Add = 3515
+ INTEGER(IntKi), PARAMETER :: B4ADOF36Add = 3516
+ INTEGER(IntKi), PARAMETER :: B4ADOF37Add = 3517
+ INTEGER(IntKi), PARAMETER :: B4ADOF38Add = 3518
+ INTEGER(IntKi), PARAMETER :: B4ADOF39Add = 3519
+ INTEGER(IntKi), PARAMETER :: B4ADOF40Add = 3520
+ INTEGER(IntKi), PARAMETER :: B4ADOF41Add = 3521
+ INTEGER(IntKi), PARAMETER :: B4ADOF42Add = 3522
+ INTEGER(IntKi), PARAMETER :: B4ADOF43Add = 3523
+ INTEGER(IntKi), PARAMETER :: B4ADOF44Add = 3524
+ INTEGER(IntKi), PARAMETER :: B4ADOF45Add = 3525
+ INTEGER(IntKi), PARAMETER :: B4ADOF46Add = 3526
+ INTEGER(IntKi), PARAMETER :: B4ADOF47Add = 3527
+ INTEGER(IntKi), PARAMETER :: B4ADOF48Add = 3528
+ INTEGER(IntKi), PARAMETER :: B4ADOF49Add = 3529
+ INTEGER(IntKi), PARAMETER :: B4ADOF50Add = 3530
+ INTEGER(IntKi), PARAMETER :: B4ADOF51Add = 3531
+ INTEGER(IntKi), PARAMETER :: B4ADOF52Add = 3532
+ INTEGER(IntKi), PARAMETER :: B4ADOF53Add = 3533
+ INTEGER(IntKi), PARAMETER :: B4ADOF54Add = 3534
+ INTEGER(IntKi), PARAMETER :: B4ADOF55Add = 3535
+ INTEGER(IntKi), PARAMETER :: B4ADOF56Add = 3536
+ INTEGER(IntKi), PARAMETER :: B4ADOF57Add = 3537
+ INTEGER(IntKi), PARAMETER :: B4ADOF58Add = 3538
+ INTEGER(IntKi), PARAMETER :: B4ADOF59Add = 3539
+ INTEGER(IntKi), PARAMETER :: B4ADOF60Add = 3540
+ INTEGER(IntKi), PARAMETER :: B4ADOF61Add = 3541
+ INTEGER(IntKi), PARAMETER :: B4ADOF62Add = 3542
+ INTEGER(IntKi), PARAMETER :: B4ADOF63Add = 3543
+ INTEGER(IntKi), PARAMETER :: B4ADOF64Add = 3544
+ INTEGER(IntKi), PARAMETER :: B4ADOF65Add = 3545
+ INTEGER(IntKi), PARAMETER :: B4ADOF66Add = 3546
+ INTEGER(IntKi), PARAMETER :: B4ADOF67Add = 3547
+ INTEGER(IntKi), PARAMETER :: B4ADOF68Add = 3548
+ INTEGER(IntKi), PARAMETER :: B4ADOF69Add = 3549
+ INTEGER(IntKi), PARAMETER :: B4ADOF70Add = 3550
+ INTEGER(IntKi), PARAMETER :: B4ADOF71Add = 3551
+ INTEGER(IntKi), PARAMETER :: B4ADOF72Add = 3552
+ INTEGER(IntKi), PARAMETER :: B4ADOF73Add = 3553
+ INTEGER(IntKi), PARAMETER :: B4ADOF74Add = 3554
+ INTEGER(IntKi), PARAMETER :: B4ADOF75Add = 3555
+ INTEGER(IntKi), PARAMETER :: B4ADOF76Add = 3556
+ INTEGER(IntKi), PARAMETER :: B4ADOF77Add = 3557
+ INTEGER(IntKi), PARAMETER :: B4ADOF78Add = 3558
+ INTEGER(IntKi), PARAMETER :: B4ADOF79Add = 3559
+ INTEGER(IntKi), PARAMETER :: B4ADOF80Add = 3560
+ INTEGER(IntKi), PARAMETER :: B4ADOF81Add = 3561
+ INTEGER(IntKi), PARAMETER :: B4ADOF82Add = 3562
+ INTEGER(IntKi), PARAMETER :: B4ADOF83Add = 3563
+ INTEGER(IntKi), PARAMETER :: B4ADOF84Add = 3564
+ INTEGER(IntKi), PARAMETER :: B4ADOF85Add = 3565
+ INTEGER(IntKi), PARAMETER :: B4ADOF86Add = 3566
+ INTEGER(IntKi), PARAMETER :: B4ADOF87Add = 3567
+ INTEGER(IntKi), PARAMETER :: B4ADOF88Add = 3568
+ INTEGER(IntKi), PARAMETER :: B4ADOF89Add = 3569
+ INTEGER(IntKi), PARAMETER :: B4ADOF90Add = 3570
+ INTEGER(IntKi), PARAMETER :: B4ADOF91Add = 3571
+ INTEGER(IntKi), PARAMETER :: B4ADOF92Add = 3572
+ INTEGER(IntKi), PARAMETER :: B4ADOF93Add = 3573
+ INTEGER(IntKi), PARAMETER :: B4ADOF94Add = 3574
+ INTEGER(IntKi), PARAMETER :: B4ADOF95Add = 3575
+ INTEGER(IntKi), PARAMETER :: B4ADOF96Add = 3576
+ INTEGER(IntKi), PARAMETER :: B4ADOF97Add = 3577
+ INTEGER(IntKi), PARAMETER :: B4ADOF98Add = 3578
+ INTEGER(IntKi), PARAMETER :: B4ADOF99Add = 3579
+ INTEGER(IntKi), PARAMETER :: B5ADOF1Add = 3580
+ INTEGER(IntKi), PARAMETER :: B5ADOF2Add = 3581
+ INTEGER(IntKi), PARAMETER :: B5ADOF3Add = 3582
+ INTEGER(IntKi), PARAMETER :: B5ADOF4Add = 3583
+ INTEGER(IntKi), PARAMETER :: B5ADOF5Add = 3584
+ INTEGER(IntKi), PARAMETER :: B5ADOF6Add = 3585
+ INTEGER(IntKi), PARAMETER :: B5ADOF7Add = 3586
+ INTEGER(IntKi), PARAMETER :: B5ADOF8Add = 3587
+ INTEGER(IntKi), PARAMETER :: B5ADOF9Add = 3588
+ INTEGER(IntKi), PARAMETER :: B5ADOF10Add = 3589
+ INTEGER(IntKi), PARAMETER :: B5ADOF11Add = 3590
+ INTEGER(IntKi), PARAMETER :: B5ADOF12Add = 3591
+ INTEGER(IntKi), PARAMETER :: B5ADOF13Add = 3592
+ INTEGER(IntKi), PARAMETER :: B5ADOF14Add = 3593
+ INTEGER(IntKi), PARAMETER :: B5ADOF15Add = 3594
+ INTEGER(IntKi), PARAMETER :: B5ADOF16Add = 3595
+ INTEGER(IntKi), PARAMETER :: B5ADOF17Add = 3596
+ INTEGER(IntKi), PARAMETER :: B5ADOF18Add = 3597
+ INTEGER(IntKi), PARAMETER :: B5ADOF19Add = 3598
+ INTEGER(IntKi), PARAMETER :: B5ADOF20Add = 3599
+ INTEGER(IntKi), PARAMETER :: B5ADOF21Add = 3600
+ INTEGER(IntKi), PARAMETER :: B5ADOF22Add = 3601
+ INTEGER(IntKi), PARAMETER :: B5ADOF23Add = 3602
+ INTEGER(IntKi), PARAMETER :: B5ADOF24Add = 3603
+ INTEGER(IntKi), PARAMETER :: B5ADOF25Add = 3604
+ INTEGER(IntKi), PARAMETER :: B5ADOF26Add = 3605
+ INTEGER(IntKi), PARAMETER :: B5ADOF27Add = 3606
+ INTEGER(IntKi), PARAMETER :: B5ADOF28Add = 3607
+ INTEGER(IntKi), PARAMETER :: B5ADOF29Add = 3608
+ INTEGER(IntKi), PARAMETER :: B5ADOF30Add = 3609
+ INTEGER(IntKi), PARAMETER :: B5ADOF31Add = 3610
+ INTEGER(IntKi), PARAMETER :: B5ADOF32Add = 3611
+ INTEGER(IntKi), PARAMETER :: B5ADOF33Add = 3612
+ INTEGER(IntKi), PARAMETER :: B5ADOF34Add = 3613
+ INTEGER(IntKi), PARAMETER :: B5ADOF35Add = 3614
+ INTEGER(IntKi), PARAMETER :: B5ADOF36Add = 3615
+ INTEGER(IntKi), PARAMETER :: B5ADOF37Add = 3616
+ INTEGER(IntKi), PARAMETER :: B5ADOF38Add = 3617
+ INTEGER(IntKi), PARAMETER :: B5ADOF39Add = 3618
+ INTEGER(IntKi), PARAMETER :: B5ADOF40Add = 3619
+ INTEGER(IntKi), PARAMETER :: B5ADOF41Add = 3620
+ INTEGER(IntKi), PARAMETER :: B5ADOF42Add = 3621
+ INTEGER(IntKi), PARAMETER :: B5ADOF43Add = 3622
+ INTEGER(IntKi), PARAMETER :: B5ADOF44Add = 3623
+ INTEGER(IntKi), PARAMETER :: B5ADOF45Add = 3624
+ INTEGER(IntKi), PARAMETER :: B5ADOF46Add = 3625
+ INTEGER(IntKi), PARAMETER :: B5ADOF47Add = 3626
+ INTEGER(IntKi), PARAMETER :: B5ADOF48Add = 3627
+ INTEGER(IntKi), PARAMETER :: B5ADOF49Add = 3628
+ INTEGER(IntKi), PARAMETER :: B5ADOF50Add = 3629
+ INTEGER(IntKi), PARAMETER :: B5ADOF51Add = 3630
+ INTEGER(IntKi), PARAMETER :: B5ADOF52Add = 3631
+ INTEGER(IntKi), PARAMETER :: B5ADOF53Add = 3632
+ INTEGER(IntKi), PARAMETER :: B5ADOF54Add = 3633
+ INTEGER(IntKi), PARAMETER :: B5ADOF55Add = 3634
+ INTEGER(IntKi), PARAMETER :: B5ADOF56Add = 3635
+ INTEGER(IntKi), PARAMETER :: B5ADOF57Add = 3636
+ INTEGER(IntKi), PARAMETER :: B5ADOF58Add = 3637
+ INTEGER(IntKi), PARAMETER :: B5ADOF59Add = 3638
+ INTEGER(IntKi), PARAMETER :: B5ADOF60Add = 3639
+ INTEGER(IntKi), PARAMETER :: B5ADOF61Add = 3640
+ INTEGER(IntKi), PARAMETER :: B5ADOF62Add = 3641
+ INTEGER(IntKi), PARAMETER :: B5ADOF63Add = 3642
+ INTEGER(IntKi), PARAMETER :: B5ADOF64Add = 3643
+ INTEGER(IntKi), PARAMETER :: B5ADOF65Add = 3644
+ INTEGER(IntKi), PARAMETER :: B5ADOF66Add = 3645
+ INTEGER(IntKi), PARAMETER :: B5ADOF67Add = 3646
+ INTEGER(IntKi), PARAMETER :: B5ADOF68Add = 3647
+ INTEGER(IntKi), PARAMETER :: B5ADOF69Add = 3648
+ INTEGER(IntKi), PARAMETER :: B5ADOF70Add = 3649
+ INTEGER(IntKi), PARAMETER :: B5ADOF71Add = 3650
+ INTEGER(IntKi), PARAMETER :: B5ADOF72Add = 3651
+ INTEGER(IntKi), PARAMETER :: B5ADOF73Add = 3652
+ INTEGER(IntKi), PARAMETER :: B5ADOF74Add = 3653
+ INTEGER(IntKi), PARAMETER :: B5ADOF75Add = 3654
+ INTEGER(IntKi), PARAMETER :: B5ADOF76Add = 3655
+ INTEGER(IntKi), PARAMETER :: B5ADOF77Add = 3656
+ INTEGER(IntKi), PARAMETER :: B5ADOF78Add = 3657
+ INTEGER(IntKi), PARAMETER :: B5ADOF79Add = 3658
+ INTEGER(IntKi), PARAMETER :: B5ADOF80Add = 3659
+ INTEGER(IntKi), PARAMETER :: B5ADOF81Add = 3660
+ INTEGER(IntKi), PARAMETER :: B5ADOF82Add = 3661
+ INTEGER(IntKi), PARAMETER :: B5ADOF83Add = 3662
+ INTEGER(IntKi), PARAMETER :: B5ADOF84Add = 3663
+ INTEGER(IntKi), PARAMETER :: B5ADOF85Add = 3664
+ INTEGER(IntKi), PARAMETER :: B5ADOF86Add = 3665
+ INTEGER(IntKi), PARAMETER :: B5ADOF87Add = 3666
+ INTEGER(IntKi), PARAMETER :: B5ADOF88Add = 3667
+ INTEGER(IntKi), PARAMETER :: B5ADOF89Add = 3668
+ INTEGER(IntKi), PARAMETER :: B5ADOF90Add = 3669
+ INTEGER(IntKi), PARAMETER :: B5ADOF91Add = 3670
+ INTEGER(IntKi), PARAMETER :: B5ADOF92Add = 3671
+ INTEGER(IntKi), PARAMETER :: B5ADOF93Add = 3672
+ INTEGER(IntKi), PARAMETER :: B5ADOF94Add = 3673
+ INTEGER(IntKi), PARAMETER :: B5ADOF95Add = 3674
+ INTEGER(IntKi), PARAMETER :: B5ADOF96Add = 3675
+ INTEGER(IntKi), PARAMETER :: B5ADOF97Add = 3676
+ INTEGER(IntKi), PARAMETER :: B5ADOF98Add = 3677
+ INTEGER(IntKi), PARAMETER :: B5ADOF99Add = 3678
+ INTEGER(IntKi), PARAMETER :: B6ADOF1Add = 3679
+ INTEGER(IntKi), PARAMETER :: B6ADOF2Add = 3680
+ INTEGER(IntKi), PARAMETER :: B6ADOF3Add = 3681
+ INTEGER(IntKi), PARAMETER :: B6ADOF4Add = 3682
+ INTEGER(IntKi), PARAMETER :: B6ADOF5Add = 3683
+ INTEGER(IntKi), PARAMETER :: B6ADOF6Add = 3684
+ INTEGER(IntKi), PARAMETER :: B6ADOF7Add = 3685
+ INTEGER(IntKi), PARAMETER :: B6ADOF8Add = 3686
+ INTEGER(IntKi), PARAMETER :: B6ADOF9Add = 3687
+ INTEGER(IntKi), PARAMETER :: B6ADOF10Add = 3688
+ INTEGER(IntKi), PARAMETER :: B6ADOF11Add = 3689
+ INTEGER(IntKi), PARAMETER :: B6ADOF12Add = 3690
+ INTEGER(IntKi), PARAMETER :: B6ADOF13Add = 3691
+ INTEGER(IntKi), PARAMETER :: B6ADOF14Add = 3692
+ INTEGER(IntKi), PARAMETER :: B6ADOF15Add = 3693
+ INTEGER(IntKi), PARAMETER :: B6ADOF16Add = 3694
+ INTEGER(IntKi), PARAMETER :: B6ADOF17Add = 3695
+ INTEGER(IntKi), PARAMETER :: B6ADOF18Add = 3696
+ INTEGER(IntKi), PARAMETER :: B6ADOF19Add = 3697
+ INTEGER(IntKi), PARAMETER :: B6ADOF20Add = 3698
+ INTEGER(IntKi), PARAMETER :: B6ADOF21Add = 3699
+ INTEGER(IntKi), PARAMETER :: B6ADOF22Add = 3700
+ INTEGER(IntKi), PARAMETER :: B6ADOF23Add = 3701
+ INTEGER(IntKi), PARAMETER :: B6ADOF24Add = 3702
+ INTEGER(IntKi), PARAMETER :: B6ADOF25Add = 3703
+ INTEGER(IntKi), PARAMETER :: B6ADOF26Add = 3704
+ INTEGER(IntKi), PARAMETER :: B6ADOF27Add = 3705
+ INTEGER(IntKi), PARAMETER :: B6ADOF28Add = 3706
+ INTEGER(IntKi), PARAMETER :: B6ADOF29Add = 3707
+ INTEGER(IntKi), PARAMETER :: B6ADOF30Add = 3708
+ INTEGER(IntKi), PARAMETER :: B6ADOF31Add = 3709
+ INTEGER(IntKi), PARAMETER :: B6ADOF32Add = 3710
+ INTEGER(IntKi), PARAMETER :: B6ADOF33Add = 3711
+ INTEGER(IntKi), PARAMETER :: B6ADOF34Add = 3712
+ INTEGER(IntKi), PARAMETER :: B6ADOF35Add = 3713
+ INTEGER(IntKi), PARAMETER :: B6ADOF36Add = 3714
+ INTEGER(IntKi), PARAMETER :: B6ADOF37Add = 3715
+ INTEGER(IntKi), PARAMETER :: B6ADOF38Add = 3716
+ INTEGER(IntKi), PARAMETER :: B6ADOF39Add = 3717
+ INTEGER(IntKi), PARAMETER :: B6ADOF40Add = 3718
+ INTEGER(IntKi), PARAMETER :: B6ADOF41Add = 3719
+ INTEGER(IntKi), PARAMETER :: B6ADOF42Add = 3720
+ INTEGER(IntKi), PARAMETER :: B6ADOF43Add = 3721
+ INTEGER(IntKi), PARAMETER :: B6ADOF44Add = 3722
+ INTEGER(IntKi), PARAMETER :: B6ADOF45Add = 3723
+ INTEGER(IntKi), PARAMETER :: B6ADOF46Add = 3724
+ INTEGER(IntKi), PARAMETER :: B6ADOF47Add = 3725
+ INTEGER(IntKi), PARAMETER :: B6ADOF48Add = 3726
+ INTEGER(IntKi), PARAMETER :: B6ADOF49Add = 3727
+ INTEGER(IntKi), PARAMETER :: B6ADOF50Add = 3728
+ INTEGER(IntKi), PARAMETER :: B6ADOF51Add = 3729
+ INTEGER(IntKi), PARAMETER :: B6ADOF52Add = 3730
+ INTEGER(IntKi), PARAMETER :: B6ADOF53Add = 3731
+ INTEGER(IntKi), PARAMETER :: B6ADOF54Add = 3732
+ INTEGER(IntKi), PARAMETER :: B6ADOF55Add = 3733
+ INTEGER(IntKi), PARAMETER :: B6ADOF56Add = 3734
+ INTEGER(IntKi), PARAMETER :: B6ADOF57Add = 3735
+ INTEGER(IntKi), PARAMETER :: B6ADOF58Add = 3736
+ INTEGER(IntKi), PARAMETER :: B6ADOF59Add = 3737
+ INTEGER(IntKi), PARAMETER :: B6ADOF60Add = 3738
+ INTEGER(IntKi), PARAMETER :: B6ADOF61Add = 3739
+ INTEGER(IntKi), PARAMETER :: B6ADOF62Add = 3740
+ INTEGER(IntKi), PARAMETER :: B6ADOF63Add = 3741
+ INTEGER(IntKi), PARAMETER :: B6ADOF64Add = 3742
+ INTEGER(IntKi), PARAMETER :: B6ADOF65Add = 3743
+ INTEGER(IntKi), PARAMETER :: B6ADOF66Add = 3744
+ INTEGER(IntKi), PARAMETER :: B6ADOF67Add = 3745
+ INTEGER(IntKi), PARAMETER :: B6ADOF68Add = 3746
+ INTEGER(IntKi), PARAMETER :: B6ADOF69Add = 3747
+ INTEGER(IntKi), PARAMETER :: B6ADOF70Add = 3748
+ INTEGER(IntKi), PARAMETER :: B6ADOF71Add = 3749
+ INTEGER(IntKi), PARAMETER :: B6ADOF72Add = 3750
+ INTEGER(IntKi), PARAMETER :: B6ADOF73Add = 3751
+ INTEGER(IntKi), PARAMETER :: B6ADOF74Add = 3752
+ INTEGER(IntKi), PARAMETER :: B6ADOF75Add = 3753
+ INTEGER(IntKi), PARAMETER :: B6ADOF76Add = 3754
+ INTEGER(IntKi), PARAMETER :: B6ADOF77Add = 3755
+ INTEGER(IntKi), PARAMETER :: B6ADOF78Add = 3756
+ INTEGER(IntKi), PARAMETER :: B6ADOF79Add = 3757
+ INTEGER(IntKi), PARAMETER :: B6ADOF80Add = 3758
+ INTEGER(IntKi), PARAMETER :: B6ADOF81Add = 3759
+ INTEGER(IntKi), PARAMETER :: B6ADOF82Add = 3760
+ INTEGER(IntKi), PARAMETER :: B6ADOF83Add = 3761
+ INTEGER(IntKi), PARAMETER :: B6ADOF84Add = 3762
+ INTEGER(IntKi), PARAMETER :: B6ADOF85Add = 3763
+ INTEGER(IntKi), PARAMETER :: B6ADOF86Add = 3764
+ INTEGER(IntKi), PARAMETER :: B6ADOF87Add = 3765
+ INTEGER(IntKi), PARAMETER :: B6ADOF88Add = 3766
+ INTEGER(IntKi), PARAMETER :: B6ADOF89Add = 3767
+ INTEGER(IntKi), PARAMETER :: B6ADOF90Add = 3768
+ INTEGER(IntKi), PARAMETER :: B6ADOF91Add = 3769
+ INTEGER(IntKi), PARAMETER :: B6ADOF92Add = 3770
+ INTEGER(IntKi), PARAMETER :: B6ADOF93Add = 3771
+ INTEGER(IntKi), PARAMETER :: B6ADOF94Add = 3772
+ INTEGER(IntKi), PARAMETER :: B6ADOF95Add = 3773
+ INTEGER(IntKi), PARAMETER :: B6ADOF96Add = 3774
+ INTEGER(IntKi), PARAMETER :: B6ADOF97Add = 3775
+ INTEGER(IntKi), PARAMETER :: B6ADOF98Add = 3776
+ INTEGER(IntKi), PARAMETER :: B6ADOF99Add = 3777
+ INTEGER(IntKi), PARAMETER :: B7ADOF1Add = 3778
+ INTEGER(IntKi), PARAMETER :: B7ADOF2Add = 3779
+ INTEGER(IntKi), PARAMETER :: B7ADOF3Add = 3780
+ INTEGER(IntKi), PARAMETER :: B7ADOF4Add = 3781
+ INTEGER(IntKi), PARAMETER :: B7ADOF5Add = 3782
+ INTEGER(IntKi), PARAMETER :: B7ADOF6Add = 3783
+ INTEGER(IntKi), PARAMETER :: B7ADOF7Add = 3784
+ INTEGER(IntKi), PARAMETER :: B7ADOF8Add = 3785
+ INTEGER(IntKi), PARAMETER :: B7ADOF9Add = 3786
+ INTEGER(IntKi), PARAMETER :: B7ADOF10Add = 3787
+ INTEGER(IntKi), PARAMETER :: B7ADOF11Add = 3788
+ INTEGER(IntKi), PARAMETER :: B7ADOF12Add = 3789
+ INTEGER(IntKi), PARAMETER :: B7ADOF13Add = 3790
+ INTEGER(IntKi), PARAMETER :: B7ADOF14Add = 3791
+ INTEGER(IntKi), PARAMETER :: B7ADOF15Add = 3792
+ INTEGER(IntKi), PARAMETER :: B7ADOF16Add = 3793
+ INTEGER(IntKi), PARAMETER :: B7ADOF17Add = 3794
+ INTEGER(IntKi), PARAMETER :: B7ADOF18Add = 3795
+ INTEGER(IntKi), PARAMETER :: B7ADOF19Add = 3796
+ INTEGER(IntKi), PARAMETER :: B7ADOF20Add = 3797
+ INTEGER(IntKi), PARAMETER :: B7ADOF21Add = 3798
+ INTEGER(IntKi), PARAMETER :: B7ADOF22Add = 3799
+ INTEGER(IntKi), PARAMETER :: B7ADOF23Add = 3800
+ INTEGER(IntKi), PARAMETER :: B7ADOF24Add = 3801
+ INTEGER(IntKi), PARAMETER :: B7ADOF25Add = 3802
+ INTEGER(IntKi), PARAMETER :: B7ADOF26Add = 3803
+ INTEGER(IntKi), PARAMETER :: B7ADOF27Add = 3804
+ INTEGER(IntKi), PARAMETER :: B7ADOF28Add = 3805
+ INTEGER(IntKi), PARAMETER :: B7ADOF29Add = 3806
+ INTEGER(IntKi), PARAMETER :: B7ADOF30Add = 3807
+ INTEGER(IntKi), PARAMETER :: B7ADOF31Add = 3808
+ INTEGER(IntKi), PARAMETER :: B7ADOF32Add = 3809
+ INTEGER(IntKi), PARAMETER :: B7ADOF33Add = 3810
+ INTEGER(IntKi), PARAMETER :: B7ADOF34Add = 3811
+ INTEGER(IntKi), PARAMETER :: B7ADOF35Add = 3812
+ INTEGER(IntKi), PARAMETER :: B7ADOF36Add = 3813
+ INTEGER(IntKi), PARAMETER :: B7ADOF37Add = 3814
+ INTEGER(IntKi), PARAMETER :: B7ADOF38Add = 3815
+ INTEGER(IntKi), PARAMETER :: B7ADOF39Add = 3816
+ INTEGER(IntKi), PARAMETER :: B7ADOF40Add = 3817
+ INTEGER(IntKi), PARAMETER :: B7ADOF41Add = 3818
+ INTEGER(IntKi), PARAMETER :: B7ADOF42Add = 3819
+ INTEGER(IntKi), PARAMETER :: B7ADOF43Add = 3820
+ INTEGER(IntKi), PARAMETER :: B7ADOF44Add = 3821
+ INTEGER(IntKi), PARAMETER :: B7ADOF45Add = 3822
+ INTEGER(IntKi), PARAMETER :: B7ADOF46Add = 3823
+ INTEGER(IntKi), PARAMETER :: B7ADOF47Add = 3824
+ INTEGER(IntKi), PARAMETER :: B7ADOF48Add = 3825
+ INTEGER(IntKi), PARAMETER :: B7ADOF49Add = 3826
+ INTEGER(IntKi), PARAMETER :: B7ADOF50Add = 3827
+ INTEGER(IntKi), PARAMETER :: B7ADOF51Add = 3828
+ INTEGER(IntKi), PARAMETER :: B7ADOF52Add = 3829
+ INTEGER(IntKi), PARAMETER :: B7ADOF53Add = 3830
+ INTEGER(IntKi), PARAMETER :: B7ADOF54Add = 3831
+ INTEGER(IntKi), PARAMETER :: B7ADOF55Add = 3832
+ INTEGER(IntKi), PARAMETER :: B7ADOF56Add = 3833
+ INTEGER(IntKi), PARAMETER :: B7ADOF57Add = 3834
+ INTEGER(IntKi), PARAMETER :: B7ADOF58Add = 3835
+ INTEGER(IntKi), PARAMETER :: B7ADOF59Add = 3836
+ INTEGER(IntKi), PARAMETER :: B7ADOF60Add = 3837
+ INTEGER(IntKi), PARAMETER :: B7ADOF61Add = 3838
+ INTEGER(IntKi), PARAMETER :: B7ADOF62Add = 3839
+ INTEGER(IntKi), PARAMETER :: B7ADOF63Add = 3840
+ INTEGER(IntKi), PARAMETER :: B7ADOF64Add = 3841
+ INTEGER(IntKi), PARAMETER :: B7ADOF65Add = 3842
+ INTEGER(IntKi), PARAMETER :: B7ADOF66Add = 3843
+ INTEGER(IntKi), PARAMETER :: B7ADOF67Add = 3844
+ INTEGER(IntKi), PARAMETER :: B7ADOF68Add = 3845
+ INTEGER(IntKi), PARAMETER :: B7ADOF69Add = 3846
+ INTEGER(IntKi), PARAMETER :: B7ADOF70Add = 3847
+ INTEGER(IntKi), PARAMETER :: B7ADOF71Add = 3848
+ INTEGER(IntKi), PARAMETER :: B7ADOF72Add = 3849
+ INTEGER(IntKi), PARAMETER :: B7ADOF73Add = 3850
+ INTEGER(IntKi), PARAMETER :: B7ADOF74Add = 3851
+ INTEGER(IntKi), PARAMETER :: B7ADOF75Add = 3852
+ INTEGER(IntKi), PARAMETER :: B7ADOF76Add = 3853
+ INTEGER(IntKi), PARAMETER :: B7ADOF77Add = 3854
+ INTEGER(IntKi), PARAMETER :: B7ADOF78Add = 3855
+ INTEGER(IntKi), PARAMETER :: B7ADOF79Add = 3856
+ INTEGER(IntKi), PARAMETER :: B7ADOF80Add = 3857
+ INTEGER(IntKi), PARAMETER :: B7ADOF81Add = 3858
+ INTEGER(IntKi), PARAMETER :: B7ADOF82Add = 3859
+ INTEGER(IntKi), PARAMETER :: B7ADOF83Add = 3860
+ INTEGER(IntKi), PARAMETER :: B7ADOF84Add = 3861
+ INTEGER(IntKi), PARAMETER :: B7ADOF85Add = 3862
+ INTEGER(IntKi), PARAMETER :: B7ADOF86Add = 3863
+ INTEGER(IntKi), PARAMETER :: B7ADOF87Add = 3864
+ INTEGER(IntKi), PARAMETER :: B7ADOF88Add = 3865
+ INTEGER(IntKi), PARAMETER :: B7ADOF89Add = 3866
+ INTEGER(IntKi), PARAMETER :: B7ADOF90Add = 3867
+ INTEGER(IntKi), PARAMETER :: B7ADOF91Add = 3868
+ INTEGER(IntKi), PARAMETER :: B7ADOF92Add = 3869
+ INTEGER(IntKi), PARAMETER :: B7ADOF93Add = 3870
+ INTEGER(IntKi), PARAMETER :: B7ADOF94Add = 3871
+ INTEGER(IntKi), PARAMETER :: B7ADOF95Add = 3872
+ INTEGER(IntKi), PARAMETER :: B7ADOF96Add = 3873
+ INTEGER(IntKi), PARAMETER :: B7ADOF97Add = 3874
+ INTEGER(IntKi), PARAMETER :: B7ADOF98Add = 3875
+ INTEGER(IntKi), PARAMETER :: B7ADOF99Add = 3876
+ INTEGER(IntKi), PARAMETER :: B8ADOF1Add = 3877
+ INTEGER(IntKi), PARAMETER :: B8ADOF2Add = 3878
+ INTEGER(IntKi), PARAMETER :: B8ADOF3Add = 3879
+ INTEGER(IntKi), PARAMETER :: B8ADOF4Add = 3880
+ INTEGER(IntKi), PARAMETER :: B8ADOF5Add = 3881
+ INTEGER(IntKi), PARAMETER :: B8ADOF6Add = 3882
+ INTEGER(IntKi), PARAMETER :: B8ADOF7Add = 3883
+ INTEGER(IntKi), PARAMETER :: B8ADOF8Add = 3884
+ INTEGER(IntKi), PARAMETER :: B8ADOF9Add = 3885
+ INTEGER(IntKi), PARAMETER :: B8ADOF10Add = 3886
+ INTEGER(IntKi), PARAMETER :: B8ADOF11Add = 3887
+ INTEGER(IntKi), PARAMETER :: B8ADOF12Add = 3888
+ INTEGER(IntKi), PARAMETER :: B8ADOF13Add = 3889
+ INTEGER(IntKi), PARAMETER :: B8ADOF14Add = 3890
+ INTEGER(IntKi), PARAMETER :: B8ADOF15Add = 3891
+ INTEGER(IntKi), PARAMETER :: B8ADOF16Add = 3892
+ INTEGER(IntKi), PARAMETER :: B8ADOF17Add = 3893
+ INTEGER(IntKi), PARAMETER :: B8ADOF18Add = 3894
+ INTEGER(IntKi), PARAMETER :: B8ADOF19Add = 3895
+ INTEGER(IntKi), PARAMETER :: B8ADOF20Add = 3896
+ INTEGER(IntKi), PARAMETER :: B8ADOF21Add = 3897
+ INTEGER(IntKi), PARAMETER :: B8ADOF22Add = 3898
+ INTEGER(IntKi), PARAMETER :: B8ADOF23Add = 3899
+ INTEGER(IntKi), PARAMETER :: B8ADOF24Add = 3900
+ INTEGER(IntKi), PARAMETER :: B8ADOF25Add = 3901
+ INTEGER(IntKi), PARAMETER :: B8ADOF26Add = 3902
+ INTEGER(IntKi), PARAMETER :: B8ADOF27Add = 3903
+ INTEGER(IntKi), PARAMETER :: B8ADOF28Add = 3904
+ INTEGER(IntKi), PARAMETER :: B8ADOF29Add = 3905
+ INTEGER(IntKi), PARAMETER :: B8ADOF30Add = 3906
+ INTEGER(IntKi), PARAMETER :: B8ADOF31Add = 3907
+ INTEGER(IntKi), PARAMETER :: B8ADOF32Add = 3908
+ INTEGER(IntKi), PARAMETER :: B8ADOF33Add = 3909
+ INTEGER(IntKi), PARAMETER :: B8ADOF34Add = 3910
+ INTEGER(IntKi), PARAMETER :: B8ADOF35Add = 3911
+ INTEGER(IntKi), PARAMETER :: B8ADOF36Add = 3912
+ INTEGER(IntKi), PARAMETER :: B8ADOF37Add = 3913
+ INTEGER(IntKi), PARAMETER :: B8ADOF38Add = 3914
+ INTEGER(IntKi), PARAMETER :: B8ADOF39Add = 3915
+ INTEGER(IntKi), PARAMETER :: B8ADOF40Add = 3916
+ INTEGER(IntKi), PARAMETER :: B8ADOF41Add = 3917
+ INTEGER(IntKi), PARAMETER :: B8ADOF42Add = 3918
+ INTEGER(IntKi), PARAMETER :: B8ADOF43Add = 3919
+ INTEGER(IntKi), PARAMETER :: B8ADOF44Add = 3920
+ INTEGER(IntKi), PARAMETER :: B8ADOF45Add = 3921
+ INTEGER(IntKi), PARAMETER :: B8ADOF46Add = 3922
+ INTEGER(IntKi), PARAMETER :: B8ADOF47Add = 3923
+ INTEGER(IntKi), PARAMETER :: B8ADOF48Add = 3924
+ INTEGER(IntKi), PARAMETER :: B8ADOF49Add = 3925
+ INTEGER(IntKi), PARAMETER :: B8ADOF50Add = 3926
+ INTEGER(IntKi), PARAMETER :: B8ADOF51Add = 3927
+ INTEGER(IntKi), PARAMETER :: B8ADOF52Add = 3928
+ INTEGER(IntKi), PARAMETER :: B8ADOF53Add = 3929
+ INTEGER(IntKi), PARAMETER :: B8ADOF54Add = 3930
+ INTEGER(IntKi), PARAMETER :: B8ADOF55Add = 3931
+ INTEGER(IntKi), PARAMETER :: B8ADOF56Add = 3932
+ INTEGER(IntKi), PARAMETER :: B8ADOF57Add = 3933
+ INTEGER(IntKi), PARAMETER :: B8ADOF58Add = 3934
+ INTEGER(IntKi), PARAMETER :: B8ADOF59Add = 3935
+ INTEGER(IntKi), PARAMETER :: B8ADOF60Add = 3936
+ INTEGER(IntKi), PARAMETER :: B8ADOF61Add = 3937
+ INTEGER(IntKi), PARAMETER :: B8ADOF62Add = 3938
+ INTEGER(IntKi), PARAMETER :: B8ADOF63Add = 3939
+ INTEGER(IntKi), PARAMETER :: B8ADOF64Add = 3940
+ INTEGER(IntKi), PARAMETER :: B8ADOF65Add = 3941
+ INTEGER(IntKi), PARAMETER :: B8ADOF66Add = 3942
+ INTEGER(IntKi), PARAMETER :: B8ADOF67Add = 3943
+ INTEGER(IntKi), PARAMETER :: B8ADOF68Add = 3944
+ INTEGER(IntKi), PARAMETER :: B8ADOF69Add = 3945
+ INTEGER(IntKi), PARAMETER :: B8ADOF70Add = 3946
+ INTEGER(IntKi), PARAMETER :: B8ADOF71Add = 3947
+ INTEGER(IntKi), PARAMETER :: B8ADOF72Add = 3948
+ INTEGER(IntKi), PARAMETER :: B8ADOF73Add = 3949
+ INTEGER(IntKi), PARAMETER :: B8ADOF74Add = 3950
+ INTEGER(IntKi), PARAMETER :: B8ADOF75Add = 3951
+ INTEGER(IntKi), PARAMETER :: B8ADOF76Add = 3952
+ INTEGER(IntKi), PARAMETER :: B8ADOF77Add = 3953
+ INTEGER(IntKi), PARAMETER :: B8ADOF78Add = 3954
+ INTEGER(IntKi), PARAMETER :: B8ADOF79Add = 3955
+ INTEGER(IntKi), PARAMETER :: B8ADOF80Add = 3956
+ INTEGER(IntKi), PARAMETER :: B8ADOF81Add = 3957
+ INTEGER(IntKi), PARAMETER :: B8ADOF82Add = 3958
+ INTEGER(IntKi), PARAMETER :: B8ADOF83Add = 3959
+ INTEGER(IntKi), PARAMETER :: B8ADOF84Add = 3960
+ INTEGER(IntKi), PARAMETER :: B8ADOF85Add = 3961
+ INTEGER(IntKi), PARAMETER :: B8ADOF86Add = 3962
+ INTEGER(IntKi), PARAMETER :: B8ADOF87Add = 3963
+ INTEGER(IntKi), PARAMETER :: B8ADOF88Add = 3964
+ INTEGER(IntKi), PARAMETER :: B8ADOF89Add = 3965
+ INTEGER(IntKi), PARAMETER :: B8ADOF90Add = 3966
+ INTEGER(IntKi), PARAMETER :: B8ADOF91Add = 3967
+ INTEGER(IntKi), PARAMETER :: B8ADOF92Add = 3968
+ INTEGER(IntKi), PARAMETER :: B8ADOF93Add = 3969
+ INTEGER(IntKi), PARAMETER :: B8ADOF94Add = 3970
+ INTEGER(IntKi), PARAMETER :: B8ADOF95Add = 3971
+ INTEGER(IntKi), PARAMETER :: B8ADOF96Add = 3972
+ INTEGER(IntKi), PARAMETER :: B8ADOF97Add = 3973
+ INTEGER(IntKi), PARAMETER :: B8ADOF98Add = 3974
+ INTEGER(IntKi), PARAMETER :: B8ADOF99Add = 3975
+ INTEGER(IntKi), PARAMETER :: B9ADOF1Add = 3976
+ INTEGER(IntKi), PARAMETER :: B9ADOF2Add = 3977
+ INTEGER(IntKi), PARAMETER :: B9ADOF3Add = 3978
+ INTEGER(IntKi), PARAMETER :: B9ADOF4Add = 3979
+ INTEGER(IntKi), PARAMETER :: B9ADOF5Add = 3980
+ INTEGER(IntKi), PARAMETER :: B9ADOF6Add = 3981
+ INTEGER(IntKi), PARAMETER :: B9ADOF7Add = 3982
+ INTEGER(IntKi), PARAMETER :: B9ADOF8Add = 3983
+ INTEGER(IntKi), PARAMETER :: B9ADOF9Add = 3984
+ INTEGER(IntKi), PARAMETER :: B9ADOF10Add = 3985
+ INTEGER(IntKi), PARAMETER :: B9ADOF11Add = 3986
+ INTEGER(IntKi), PARAMETER :: B9ADOF12Add = 3987
+ INTEGER(IntKi), PARAMETER :: B9ADOF13Add = 3988
+ INTEGER(IntKi), PARAMETER :: B9ADOF14Add = 3989
+ INTEGER(IntKi), PARAMETER :: B9ADOF15Add = 3990
+ INTEGER(IntKi), PARAMETER :: B9ADOF16Add = 3991
+ INTEGER(IntKi), PARAMETER :: B9ADOF17Add = 3992
+ INTEGER(IntKi), PARAMETER :: B9ADOF18Add = 3993
+ INTEGER(IntKi), PARAMETER :: B9ADOF19Add = 3994
+ INTEGER(IntKi), PARAMETER :: B9ADOF20Add = 3995
+ INTEGER(IntKi), PARAMETER :: B9ADOF21Add = 3996
+ INTEGER(IntKi), PARAMETER :: B9ADOF22Add = 3997
+ INTEGER(IntKi), PARAMETER :: B9ADOF23Add = 3998
+ INTEGER(IntKi), PARAMETER :: B9ADOF24Add = 3999
+ INTEGER(IntKi), PARAMETER :: B9ADOF25Add = 4000
+ INTEGER(IntKi), PARAMETER :: B9ADOF26Add = 4001
+ INTEGER(IntKi), PARAMETER :: B9ADOF27Add = 4002
+ INTEGER(IntKi), PARAMETER :: B9ADOF28Add = 4003
+ INTEGER(IntKi), PARAMETER :: B9ADOF29Add = 4004
+ INTEGER(IntKi), PARAMETER :: B9ADOF30Add = 4005
+ INTEGER(IntKi), PARAMETER :: B9ADOF31Add = 4006
+ INTEGER(IntKi), PARAMETER :: B9ADOF32Add = 4007
+ INTEGER(IntKi), PARAMETER :: B9ADOF33Add = 4008
+ INTEGER(IntKi), PARAMETER :: B9ADOF34Add = 4009
+ INTEGER(IntKi), PARAMETER :: B9ADOF35Add = 4010
+ INTEGER(IntKi), PARAMETER :: B9ADOF36Add = 4011
+ INTEGER(IntKi), PARAMETER :: B9ADOF37Add = 4012
+ INTEGER(IntKi), PARAMETER :: B9ADOF38Add = 4013
+ INTEGER(IntKi), PARAMETER :: B9ADOF39Add = 4014
+ INTEGER(IntKi), PARAMETER :: B9ADOF40Add = 4015
+ INTEGER(IntKi), PARAMETER :: B9ADOF41Add = 4016
+ INTEGER(IntKi), PARAMETER :: B9ADOF42Add = 4017
+ INTEGER(IntKi), PARAMETER :: B9ADOF43Add = 4018
+ INTEGER(IntKi), PARAMETER :: B9ADOF44Add = 4019
+ INTEGER(IntKi), PARAMETER :: B9ADOF45Add = 4020
+ INTEGER(IntKi), PARAMETER :: B9ADOF46Add = 4021
+ INTEGER(IntKi), PARAMETER :: B9ADOF47Add = 4022
+ INTEGER(IntKi), PARAMETER :: B9ADOF48Add = 4023
+ INTEGER(IntKi), PARAMETER :: B9ADOF49Add = 4024
+ INTEGER(IntKi), PARAMETER :: B9ADOF50Add = 4025
+ INTEGER(IntKi), PARAMETER :: B9ADOF51Add = 4026
+ INTEGER(IntKi), PARAMETER :: B9ADOF52Add = 4027
+ INTEGER(IntKi), PARAMETER :: B9ADOF53Add = 4028
+ INTEGER(IntKi), PARAMETER :: B9ADOF54Add = 4029
+ INTEGER(IntKi), PARAMETER :: B9ADOF55Add = 4030
+ INTEGER(IntKi), PARAMETER :: B9ADOF56Add = 4031
+ INTEGER(IntKi), PARAMETER :: B9ADOF57Add = 4032
+ INTEGER(IntKi), PARAMETER :: B9ADOF58Add = 4033
+ INTEGER(IntKi), PARAMETER :: B9ADOF59Add = 4034
+ INTEGER(IntKi), PARAMETER :: B9ADOF60Add = 4035
+ INTEGER(IntKi), PARAMETER :: B9ADOF61Add = 4036
+ INTEGER(IntKi), PARAMETER :: B9ADOF62Add = 4037
+ INTEGER(IntKi), PARAMETER :: B9ADOF63Add = 4038
+ INTEGER(IntKi), PARAMETER :: B9ADOF64Add = 4039
+ INTEGER(IntKi), PARAMETER :: B9ADOF65Add = 4040
+ INTEGER(IntKi), PARAMETER :: B9ADOF66Add = 4041
+ INTEGER(IntKi), PARAMETER :: B9ADOF67Add = 4042
+ INTEGER(IntKi), PARAMETER :: B9ADOF68Add = 4043
+ INTEGER(IntKi), PARAMETER :: B9ADOF69Add = 4044
+ INTEGER(IntKi), PARAMETER :: B9ADOF70Add = 4045
+ INTEGER(IntKi), PARAMETER :: B9ADOF71Add = 4046
+ INTEGER(IntKi), PARAMETER :: B9ADOF72Add = 4047
+ INTEGER(IntKi), PARAMETER :: B9ADOF73Add = 4048
+ INTEGER(IntKi), PARAMETER :: B9ADOF74Add = 4049
+ INTEGER(IntKi), PARAMETER :: B9ADOF75Add = 4050
+ INTEGER(IntKi), PARAMETER :: B9ADOF76Add = 4051
+ INTEGER(IntKi), PARAMETER :: B9ADOF77Add = 4052
+ INTEGER(IntKi), PARAMETER :: B9ADOF78Add = 4053
+ INTEGER(IntKi), PARAMETER :: B9ADOF79Add = 4054
+ INTEGER(IntKi), PARAMETER :: B9ADOF80Add = 4055
+ INTEGER(IntKi), PARAMETER :: B9ADOF81Add = 4056
+ INTEGER(IntKi), PARAMETER :: B9ADOF82Add = 4057
+ INTEGER(IntKi), PARAMETER :: B9ADOF83Add = 4058
+ INTEGER(IntKi), PARAMETER :: B9ADOF84Add = 4059
+ INTEGER(IntKi), PARAMETER :: B9ADOF85Add = 4060
+ INTEGER(IntKi), PARAMETER :: B9ADOF86Add = 4061
+ INTEGER(IntKi), PARAMETER :: B9ADOF87Add = 4062
+ INTEGER(IntKi), PARAMETER :: B9ADOF88Add = 4063
+ INTEGER(IntKi), PARAMETER :: B9ADOF89Add = 4064
+ INTEGER(IntKi), PARAMETER :: B9ADOF90Add = 4065
+ INTEGER(IntKi), PARAMETER :: B9ADOF91Add = 4066
+ INTEGER(IntKi), PARAMETER :: B9ADOF92Add = 4067
+ INTEGER(IntKi), PARAMETER :: B9ADOF93Add = 4068
+ INTEGER(IntKi), PARAMETER :: B9ADOF94Add = 4069
+ INTEGER(IntKi), PARAMETER :: B9ADOF95Add = 4070
+ INTEGER(IntKi), PARAMETER :: B9ADOF96Add = 4071
+ INTEGER(IntKi), PARAMETER :: B9ADOF97Add = 4072
+ INTEGER(IntKi), PARAMETER :: B9ADOF98Add = 4073
+ INTEGER(IntKi), PARAMETER :: B9ADOF99Add = 4074
+ INTEGER(IntKi), PARAMETER :: B1ADOF1Rdt = 4075
+ INTEGER(IntKi), PARAMETER :: B1ADOF2Rdt = 4076
+ INTEGER(IntKi), PARAMETER :: B1ADOF3Rdt = 4077
+ INTEGER(IntKi), PARAMETER :: B1ADOF4Rdt = 4078
+ INTEGER(IntKi), PARAMETER :: B1ADOF5Rdt = 4079
+ INTEGER(IntKi), PARAMETER :: B1ADOF6Rdt = 4080
+ INTEGER(IntKi), PARAMETER :: B1ADOF7Rdt = 4081
+ INTEGER(IntKi), PARAMETER :: B1ADOF8Rdt = 4082
+ INTEGER(IntKi), PARAMETER :: B1ADOF9Rdt = 4083
+ INTEGER(IntKi), PARAMETER :: B1ADOF10Rdt = 4084
+ INTEGER(IntKi), PARAMETER :: B1ADOF11Rdt = 4085
+ INTEGER(IntKi), PARAMETER :: B1ADOF12Rdt = 4086
+ INTEGER(IntKi), PARAMETER :: B1ADOF13Rdt = 4087
+ INTEGER(IntKi), PARAMETER :: B1ADOF14Rdt = 4088
+ INTEGER(IntKi), PARAMETER :: B1ADOF15Rdt = 4089
+ INTEGER(IntKi), PARAMETER :: B1ADOF16Rdt = 4090
+ INTEGER(IntKi), PARAMETER :: B1ADOF17Rdt = 4091
+ INTEGER(IntKi), PARAMETER :: B1ADOF18Rdt = 4092
+ INTEGER(IntKi), PARAMETER :: B1ADOF19Rdt = 4093
+ INTEGER(IntKi), PARAMETER :: B1ADOF20Rdt = 4094
+ INTEGER(IntKi), PARAMETER :: B1ADOF21Rdt = 4095
+ INTEGER(IntKi), PARAMETER :: B1ADOF22Rdt = 4096
+ INTEGER(IntKi), PARAMETER :: B1ADOF23Rdt = 4097
+ INTEGER(IntKi), PARAMETER :: B1ADOF24Rdt = 4098
+ INTEGER(IntKi), PARAMETER :: B1ADOF25Rdt = 4099
+ INTEGER(IntKi), PARAMETER :: B1ADOF26Rdt = 4100
+ INTEGER(IntKi), PARAMETER :: B1ADOF27Rdt = 4101
+ INTEGER(IntKi), PARAMETER :: B1ADOF28Rdt = 4102
+ INTEGER(IntKi), PARAMETER :: B1ADOF29Rdt = 4103
+ INTEGER(IntKi), PARAMETER :: B1ADOF30Rdt = 4104
+ INTEGER(IntKi), PARAMETER :: B1ADOF31Rdt = 4105
+ INTEGER(IntKi), PARAMETER :: B1ADOF32Rdt = 4106
+ INTEGER(IntKi), PARAMETER :: B1ADOF33Rdt = 4107
+ INTEGER(IntKi), PARAMETER :: B1ADOF34Rdt = 4108
+ INTEGER(IntKi), PARAMETER :: B1ADOF35Rdt = 4109
+ INTEGER(IntKi), PARAMETER :: B1ADOF36Rdt = 4110
+ INTEGER(IntKi), PARAMETER :: B1ADOF37Rdt = 4111
+ INTEGER(IntKi), PARAMETER :: B1ADOF38Rdt = 4112
+ INTEGER(IntKi), PARAMETER :: B1ADOF39Rdt = 4113
+ INTEGER(IntKi), PARAMETER :: B1ADOF40Rdt = 4114
+ INTEGER(IntKi), PARAMETER :: B1ADOF41Rdt = 4115
+ INTEGER(IntKi), PARAMETER :: B1ADOF42Rdt = 4116
+ INTEGER(IntKi), PARAMETER :: B1ADOF43Rdt = 4117
+ INTEGER(IntKi), PARAMETER :: B1ADOF44Rdt = 4118
+ INTEGER(IntKi), PARAMETER :: B1ADOF45Rdt = 4119
+ INTEGER(IntKi), PARAMETER :: B1ADOF46Rdt = 4120
+ INTEGER(IntKi), PARAMETER :: B1ADOF47Rdt = 4121
+ INTEGER(IntKi), PARAMETER :: B1ADOF48Rdt = 4122
+ INTEGER(IntKi), PARAMETER :: B1ADOF49Rdt = 4123
+ INTEGER(IntKi), PARAMETER :: B1ADOF50Rdt = 4124
+ INTEGER(IntKi), PARAMETER :: B1ADOF51Rdt = 4125
+ INTEGER(IntKi), PARAMETER :: B1ADOF52Rdt = 4126
+ INTEGER(IntKi), PARAMETER :: B1ADOF53Rdt = 4127
+ INTEGER(IntKi), PARAMETER :: B1ADOF54Rdt = 4128
+ INTEGER(IntKi), PARAMETER :: B1ADOF55Rdt = 4129
+ INTEGER(IntKi), PARAMETER :: B1ADOF56Rdt = 4130
+ INTEGER(IntKi), PARAMETER :: B1ADOF57Rdt = 4131
+ INTEGER(IntKi), PARAMETER :: B1ADOF58Rdt = 4132
+ INTEGER(IntKi), PARAMETER :: B1ADOF59Rdt = 4133
+ INTEGER(IntKi), PARAMETER :: B1ADOF60Rdt = 4134
+ INTEGER(IntKi), PARAMETER :: B1ADOF61Rdt = 4135
+ INTEGER(IntKi), PARAMETER :: B1ADOF62Rdt = 4136
+ INTEGER(IntKi), PARAMETER :: B1ADOF63Rdt = 4137
+ INTEGER(IntKi), PARAMETER :: B1ADOF64Rdt = 4138
+ INTEGER(IntKi), PARAMETER :: B1ADOF65Rdt = 4139
+ INTEGER(IntKi), PARAMETER :: B1ADOF66Rdt = 4140
+ INTEGER(IntKi), PARAMETER :: B1ADOF67Rdt = 4141
+ INTEGER(IntKi), PARAMETER :: B1ADOF68Rdt = 4142
+ INTEGER(IntKi), PARAMETER :: B1ADOF69Rdt = 4143
+ INTEGER(IntKi), PARAMETER :: B1ADOF70Rdt = 4144
+ INTEGER(IntKi), PARAMETER :: B1ADOF71Rdt = 4145
+ INTEGER(IntKi), PARAMETER :: B1ADOF72Rdt = 4146
+ INTEGER(IntKi), PARAMETER :: B1ADOF73Rdt = 4147
+ INTEGER(IntKi), PARAMETER :: B1ADOF74Rdt = 4148
+ INTEGER(IntKi), PARAMETER :: B1ADOF75Rdt = 4149
+ INTEGER(IntKi), PARAMETER :: B1ADOF76Rdt = 4150
+ INTEGER(IntKi), PARAMETER :: B1ADOF77Rdt = 4151
+ INTEGER(IntKi), PARAMETER :: B1ADOF78Rdt = 4152
+ INTEGER(IntKi), PARAMETER :: B1ADOF79Rdt = 4153
+ INTEGER(IntKi), PARAMETER :: B1ADOF80Rdt = 4154
+ INTEGER(IntKi), PARAMETER :: B1ADOF81Rdt = 4155
+ INTEGER(IntKi), PARAMETER :: B1ADOF82Rdt = 4156
+ INTEGER(IntKi), PARAMETER :: B1ADOF83Rdt = 4157
+ INTEGER(IntKi), PARAMETER :: B1ADOF84Rdt = 4158
+ INTEGER(IntKi), PARAMETER :: B1ADOF85Rdt = 4159
+ INTEGER(IntKi), PARAMETER :: B1ADOF86Rdt = 4160
+ INTEGER(IntKi), PARAMETER :: B1ADOF87Rdt = 4161
+ INTEGER(IntKi), PARAMETER :: B1ADOF88Rdt = 4162
+ INTEGER(IntKi), PARAMETER :: B1ADOF89Rdt = 4163
+ INTEGER(IntKi), PARAMETER :: B1ADOF90Rdt = 4164
+ INTEGER(IntKi), PARAMETER :: B1ADOF91Rdt = 4165
+ INTEGER(IntKi), PARAMETER :: B1ADOF92Rdt = 4166
+ INTEGER(IntKi), PARAMETER :: B1ADOF93Rdt = 4167
+ INTEGER(IntKi), PARAMETER :: B1ADOF94Rdt = 4168
+ INTEGER(IntKi), PARAMETER :: B1ADOF95Rdt = 4169
+ INTEGER(IntKi), PARAMETER :: B1ADOF96Rdt = 4170
+ INTEGER(IntKi), PARAMETER :: B1ADOF97Rdt = 4171
+ INTEGER(IntKi), PARAMETER :: B1ADOF98Rdt = 4172
+ INTEGER(IntKi), PARAMETER :: B1ADOF99Rdt = 4173
+ INTEGER(IntKi), PARAMETER :: B2ADOF1Rdt = 4174
+ INTEGER(IntKi), PARAMETER :: B2ADOF2Rdt = 4175
+ INTEGER(IntKi), PARAMETER :: B2ADOF3Rdt = 4176
+ INTEGER(IntKi), PARAMETER :: B2ADOF4Rdt = 4177
+ INTEGER(IntKi), PARAMETER :: B2ADOF5Rdt = 4178
+ INTEGER(IntKi), PARAMETER :: B2ADOF6Rdt = 4179
+ INTEGER(IntKi), PARAMETER :: B2ADOF7Rdt = 4180
+ INTEGER(IntKi), PARAMETER :: B2ADOF8Rdt = 4181
+ INTEGER(IntKi), PARAMETER :: B2ADOF9Rdt = 4182
+ INTEGER(IntKi), PARAMETER :: B2ADOF10Rdt = 4183
+ INTEGER(IntKi), PARAMETER :: B2ADOF11Rdt = 4184
+ INTEGER(IntKi), PARAMETER :: B2ADOF12Rdt = 4185
+ INTEGER(IntKi), PARAMETER :: B2ADOF13Rdt = 4186
+ INTEGER(IntKi), PARAMETER :: B2ADOF14Rdt = 4187
+ INTEGER(IntKi), PARAMETER :: B2ADOF15Rdt = 4188
+ INTEGER(IntKi), PARAMETER :: B2ADOF16Rdt = 4189
+ INTEGER(IntKi), PARAMETER :: B2ADOF17Rdt = 4190
+ INTEGER(IntKi), PARAMETER :: B2ADOF18Rdt = 4191
+ INTEGER(IntKi), PARAMETER :: B2ADOF19Rdt = 4192
+ INTEGER(IntKi), PARAMETER :: B2ADOF20Rdt = 4193
+ INTEGER(IntKi), PARAMETER :: B2ADOF21Rdt = 4194
+ INTEGER(IntKi), PARAMETER :: B2ADOF22Rdt = 4195
+ INTEGER(IntKi), PARAMETER :: B2ADOF23Rdt = 4196
+ INTEGER(IntKi), PARAMETER :: B2ADOF24Rdt = 4197
+ INTEGER(IntKi), PARAMETER :: B2ADOF25Rdt = 4198
+ INTEGER(IntKi), PARAMETER :: B2ADOF26Rdt = 4199
+ INTEGER(IntKi), PARAMETER :: B2ADOF27Rdt = 4200
+ INTEGER(IntKi), PARAMETER :: B2ADOF28Rdt = 4201
+ INTEGER(IntKi), PARAMETER :: B2ADOF29Rdt = 4202
+ INTEGER(IntKi), PARAMETER :: B2ADOF30Rdt = 4203
+ INTEGER(IntKi), PARAMETER :: B2ADOF31Rdt = 4204
+ INTEGER(IntKi), PARAMETER :: B2ADOF32Rdt = 4205
+ INTEGER(IntKi), PARAMETER :: B2ADOF33Rdt = 4206
+ INTEGER(IntKi), PARAMETER :: B2ADOF34Rdt = 4207
+ INTEGER(IntKi), PARAMETER :: B2ADOF35Rdt = 4208
+ INTEGER(IntKi), PARAMETER :: B2ADOF36Rdt = 4209
+ INTEGER(IntKi), PARAMETER :: B2ADOF37Rdt = 4210
+ INTEGER(IntKi), PARAMETER :: B2ADOF38Rdt = 4211
+ INTEGER(IntKi), PARAMETER :: B2ADOF39Rdt = 4212
+ INTEGER(IntKi), PARAMETER :: B2ADOF40Rdt = 4213
+ INTEGER(IntKi), PARAMETER :: B2ADOF41Rdt = 4214
+ INTEGER(IntKi), PARAMETER :: B2ADOF42Rdt = 4215
+ INTEGER(IntKi), PARAMETER :: B2ADOF43Rdt = 4216
+ INTEGER(IntKi), PARAMETER :: B2ADOF44Rdt = 4217
+ INTEGER(IntKi), PARAMETER :: B2ADOF45Rdt = 4218
+ INTEGER(IntKi), PARAMETER :: B2ADOF46Rdt = 4219
+ INTEGER(IntKi), PARAMETER :: B2ADOF47Rdt = 4220
+ INTEGER(IntKi), PARAMETER :: B2ADOF48Rdt = 4221
+ INTEGER(IntKi), PARAMETER :: B2ADOF49Rdt = 4222
+ INTEGER(IntKi), PARAMETER :: B2ADOF50Rdt = 4223
+ INTEGER(IntKi), PARAMETER :: B2ADOF51Rdt = 4224
+ INTEGER(IntKi), PARAMETER :: B2ADOF52Rdt = 4225
+ INTEGER(IntKi), PARAMETER :: B2ADOF53Rdt = 4226
+ INTEGER(IntKi), PARAMETER :: B2ADOF54Rdt = 4227
+ INTEGER(IntKi), PARAMETER :: B2ADOF55Rdt = 4228
+ INTEGER(IntKi), PARAMETER :: B2ADOF56Rdt = 4229
+ INTEGER(IntKi), PARAMETER :: B2ADOF57Rdt = 4230
+ INTEGER(IntKi), PARAMETER :: B2ADOF58Rdt = 4231
+ INTEGER(IntKi), PARAMETER :: B2ADOF59Rdt = 4232
+ INTEGER(IntKi), PARAMETER :: B2ADOF60Rdt = 4233
+ INTEGER(IntKi), PARAMETER :: B2ADOF61Rdt = 4234
+ INTEGER(IntKi), PARAMETER :: B2ADOF62Rdt = 4235
+ INTEGER(IntKi), PARAMETER :: B2ADOF63Rdt = 4236
+ INTEGER(IntKi), PARAMETER :: B2ADOF64Rdt = 4237
+ INTEGER(IntKi), PARAMETER :: B2ADOF65Rdt = 4238
+ INTEGER(IntKi), PARAMETER :: B2ADOF66Rdt = 4239
+ INTEGER(IntKi), PARAMETER :: B2ADOF67Rdt = 4240
+ INTEGER(IntKi), PARAMETER :: B2ADOF68Rdt = 4241
+ INTEGER(IntKi), PARAMETER :: B2ADOF69Rdt = 4242
+ INTEGER(IntKi), PARAMETER :: B2ADOF70Rdt = 4243
+ INTEGER(IntKi), PARAMETER :: B2ADOF71Rdt = 4244
+ INTEGER(IntKi), PARAMETER :: B2ADOF72Rdt = 4245
+ INTEGER(IntKi), PARAMETER :: B2ADOF73Rdt = 4246
+ INTEGER(IntKi), PARAMETER :: B2ADOF74Rdt = 4247
+ INTEGER(IntKi), PARAMETER :: B2ADOF75Rdt = 4248
+ INTEGER(IntKi), PARAMETER :: B2ADOF76Rdt = 4249
+ INTEGER(IntKi), PARAMETER :: B2ADOF77Rdt = 4250
+ INTEGER(IntKi), PARAMETER :: B2ADOF78Rdt = 4251
+ INTEGER(IntKi), PARAMETER :: B2ADOF79Rdt = 4252
+ INTEGER(IntKi), PARAMETER :: B2ADOF80Rdt = 4253
+ INTEGER(IntKi), PARAMETER :: B2ADOF81Rdt = 4254
+ INTEGER(IntKi), PARAMETER :: B2ADOF82Rdt = 4255
+ INTEGER(IntKi), PARAMETER :: B2ADOF83Rdt = 4256
+ INTEGER(IntKi), PARAMETER :: B2ADOF84Rdt = 4257
+ INTEGER(IntKi), PARAMETER :: B2ADOF85Rdt = 4258
+ INTEGER(IntKi), PARAMETER :: B2ADOF86Rdt = 4259
+ INTEGER(IntKi), PARAMETER :: B2ADOF87Rdt = 4260
+ INTEGER(IntKi), PARAMETER :: B2ADOF88Rdt = 4261
+ INTEGER(IntKi), PARAMETER :: B2ADOF89Rdt = 4262
+ INTEGER(IntKi), PARAMETER :: B2ADOF90Rdt = 4263
+ INTEGER(IntKi), PARAMETER :: B2ADOF91Rdt = 4264
+ INTEGER(IntKi), PARAMETER :: B2ADOF92Rdt = 4265
+ INTEGER(IntKi), PARAMETER :: B2ADOF93Rdt = 4266
+ INTEGER(IntKi), PARAMETER :: B2ADOF94Rdt = 4267
+ INTEGER(IntKi), PARAMETER :: B2ADOF95Rdt = 4268
+ INTEGER(IntKi), PARAMETER :: B2ADOF96Rdt = 4269
+ INTEGER(IntKi), PARAMETER :: B2ADOF97Rdt = 4270
+ INTEGER(IntKi), PARAMETER :: B2ADOF98Rdt = 4271
+ INTEGER(IntKi), PARAMETER :: B2ADOF99Rdt = 4272
+ INTEGER(IntKi), PARAMETER :: B3ADOF1Rdt = 4273
+ INTEGER(IntKi), PARAMETER :: B3ADOF2Rdt = 4274
+ INTEGER(IntKi), PARAMETER :: B3ADOF3Rdt = 4275
+ INTEGER(IntKi), PARAMETER :: B3ADOF4Rdt = 4276
+ INTEGER(IntKi), PARAMETER :: B3ADOF5Rdt = 4277
+ INTEGER(IntKi), PARAMETER :: B3ADOF6Rdt = 4278
+ INTEGER(IntKi), PARAMETER :: B3ADOF7Rdt = 4279
+ INTEGER(IntKi), PARAMETER :: B3ADOF8Rdt = 4280
+ INTEGER(IntKi), PARAMETER :: B3ADOF9Rdt = 4281
+ INTEGER(IntKi), PARAMETER :: B3ADOF10Rdt = 4282
+ INTEGER(IntKi), PARAMETER :: B3ADOF11Rdt = 4283
+ INTEGER(IntKi), PARAMETER :: B3ADOF12Rdt = 4284
+ INTEGER(IntKi), PARAMETER :: B3ADOF13Rdt = 4285
+ INTEGER(IntKi), PARAMETER :: B3ADOF14Rdt = 4286
+ INTEGER(IntKi), PARAMETER :: B3ADOF15Rdt = 4287
+ INTEGER(IntKi), PARAMETER :: B3ADOF16Rdt = 4288
+ INTEGER(IntKi), PARAMETER :: B3ADOF17Rdt = 4289
+ INTEGER(IntKi), PARAMETER :: B3ADOF18Rdt = 4290
+ INTEGER(IntKi), PARAMETER :: B3ADOF19Rdt = 4291
+ INTEGER(IntKi), PARAMETER :: B3ADOF20Rdt = 4292
+ INTEGER(IntKi), PARAMETER :: B3ADOF21Rdt = 4293
+ INTEGER(IntKi), PARAMETER :: B3ADOF22Rdt = 4294
+ INTEGER(IntKi), PARAMETER :: B3ADOF23Rdt = 4295
+ INTEGER(IntKi), PARAMETER :: B3ADOF24Rdt = 4296
+ INTEGER(IntKi), PARAMETER :: B3ADOF25Rdt = 4297
+ INTEGER(IntKi), PARAMETER :: B3ADOF26Rdt = 4298
+ INTEGER(IntKi), PARAMETER :: B3ADOF27Rdt = 4299
+ INTEGER(IntKi), PARAMETER :: B3ADOF28Rdt = 4300
+ INTEGER(IntKi), PARAMETER :: B3ADOF29Rdt = 4301
+ INTEGER(IntKi), PARAMETER :: B3ADOF30Rdt = 4302
+ INTEGER(IntKi), PARAMETER :: B3ADOF31Rdt = 4303
+ INTEGER(IntKi), PARAMETER :: B3ADOF32Rdt = 4304
+ INTEGER(IntKi), PARAMETER :: B3ADOF33Rdt = 4305
+ INTEGER(IntKi), PARAMETER :: B3ADOF34Rdt = 4306
+ INTEGER(IntKi), PARAMETER :: B3ADOF35Rdt = 4307
+ INTEGER(IntKi), PARAMETER :: B3ADOF36Rdt = 4308
+ INTEGER(IntKi), PARAMETER :: B3ADOF37Rdt = 4309
+ INTEGER(IntKi), PARAMETER :: B3ADOF38Rdt = 4310
+ INTEGER(IntKi), PARAMETER :: B3ADOF39Rdt = 4311
+ INTEGER(IntKi), PARAMETER :: B3ADOF40Rdt = 4312
+ INTEGER(IntKi), PARAMETER :: B3ADOF41Rdt = 4313
+ INTEGER(IntKi), PARAMETER :: B3ADOF42Rdt = 4314
+ INTEGER(IntKi), PARAMETER :: B3ADOF43Rdt = 4315
+ INTEGER(IntKi), PARAMETER :: B3ADOF44Rdt = 4316
+ INTEGER(IntKi), PARAMETER :: B3ADOF45Rdt = 4317
+ INTEGER(IntKi), PARAMETER :: B3ADOF46Rdt = 4318
+ INTEGER(IntKi), PARAMETER :: B3ADOF47Rdt = 4319
+ INTEGER(IntKi), PARAMETER :: B3ADOF48Rdt = 4320
+ INTEGER(IntKi), PARAMETER :: B3ADOF49Rdt = 4321
+ INTEGER(IntKi), PARAMETER :: B3ADOF50Rdt = 4322
+ INTEGER(IntKi), PARAMETER :: B3ADOF51Rdt = 4323
+ INTEGER(IntKi), PARAMETER :: B3ADOF52Rdt = 4324
+ INTEGER(IntKi), PARAMETER :: B3ADOF53Rdt = 4325
+ INTEGER(IntKi), PARAMETER :: B3ADOF54Rdt = 4326
+ INTEGER(IntKi), PARAMETER :: B3ADOF55Rdt = 4327
+ INTEGER(IntKi), PARAMETER :: B3ADOF56Rdt = 4328
+ INTEGER(IntKi), PARAMETER :: B3ADOF57Rdt = 4329
+ INTEGER(IntKi), PARAMETER :: B3ADOF58Rdt = 4330
+ INTEGER(IntKi), PARAMETER :: B3ADOF59Rdt = 4331
+ INTEGER(IntKi), PARAMETER :: B3ADOF60Rdt = 4332
+ INTEGER(IntKi), PARAMETER :: B3ADOF61Rdt = 4333
+ INTEGER(IntKi), PARAMETER :: B3ADOF62Rdt = 4334
+ INTEGER(IntKi), PARAMETER :: B3ADOF63Rdt = 4335
+ INTEGER(IntKi), PARAMETER :: B3ADOF64Rdt = 4336
+ INTEGER(IntKi), PARAMETER :: B3ADOF65Rdt = 4337
+ INTEGER(IntKi), PARAMETER :: B3ADOF66Rdt = 4338
+ INTEGER(IntKi), PARAMETER :: B3ADOF67Rdt = 4339
+ INTEGER(IntKi), PARAMETER :: B3ADOF68Rdt = 4340
+ INTEGER(IntKi), PARAMETER :: B3ADOF69Rdt = 4341
+ INTEGER(IntKi), PARAMETER :: B3ADOF70Rdt = 4342
+ INTEGER(IntKi), PARAMETER :: B3ADOF71Rdt = 4343
+ INTEGER(IntKi), PARAMETER :: B3ADOF72Rdt = 4344
+ INTEGER(IntKi), PARAMETER :: B3ADOF73Rdt = 4345
+ INTEGER(IntKi), PARAMETER :: B3ADOF74Rdt = 4346
+ INTEGER(IntKi), PARAMETER :: B3ADOF75Rdt = 4347
+ INTEGER(IntKi), PARAMETER :: B3ADOF76Rdt = 4348
+ INTEGER(IntKi), PARAMETER :: B3ADOF77Rdt = 4349
+ INTEGER(IntKi), PARAMETER :: B3ADOF78Rdt = 4350
+ INTEGER(IntKi), PARAMETER :: B3ADOF79Rdt = 4351
+ INTEGER(IntKi), PARAMETER :: B3ADOF80Rdt = 4352
+ INTEGER(IntKi), PARAMETER :: B3ADOF81Rdt = 4353
+ INTEGER(IntKi), PARAMETER :: B3ADOF82Rdt = 4354
+ INTEGER(IntKi), PARAMETER :: B3ADOF83Rdt = 4355
+ INTEGER(IntKi), PARAMETER :: B3ADOF84Rdt = 4356
+ INTEGER(IntKi), PARAMETER :: B3ADOF85Rdt = 4357
+ INTEGER(IntKi), PARAMETER :: B3ADOF86Rdt = 4358
+ INTEGER(IntKi), PARAMETER :: B3ADOF87Rdt = 4359
+ INTEGER(IntKi), PARAMETER :: B3ADOF88Rdt = 4360
+ INTEGER(IntKi), PARAMETER :: B3ADOF89Rdt = 4361
+ INTEGER(IntKi), PARAMETER :: B3ADOF90Rdt = 4362
+ INTEGER(IntKi), PARAMETER :: B3ADOF91Rdt = 4363
+ INTEGER(IntKi), PARAMETER :: B3ADOF92Rdt = 4364
+ INTEGER(IntKi), PARAMETER :: B3ADOF93Rdt = 4365
+ INTEGER(IntKi), PARAMETER :: B3ADOF94Rdt = 4366
+ INTEGER(IntKi), PARAMETER :: B3ADOF95Rdt = 4367
+ INTEGER(IntKi), PARAMETER :: B3ADOF96Rdt = 4368
+ INTEGER(IntKi), PARAMETER :: B3ADOF97Rdt = 4369
+ INTEGER(IntKi), PARAMETER :: B3ADOF98Rdt = 4370
+ INTEGER(IntKi), PARAMETER :: B3ADOF99Rdt = 4371
+ INTEGER(IntKi), PARAMETER :: B4ADOF1Rdt = 4372
+ INTEGER(IntKi), PARAMETER :: B4ADOF2Rdt = 4373
+ INTEGER(IntKi), PARAMETER :: B4ADOF3Rdt = 4374
+ INTEGER(IntKi), PARAMETER :: B4ADOF4Rdt = 4375
+ INTEGER(IntKi), PARAMETER :: B4ADOF5Rdt = 4376
+ INTEGER(IntKi), PARAMETER :: B4ADOF6Rdt = 4377
+ INTEGER(IntKi), PARAMETER :: B4ADOF7Rdt = 4378
+ INTEGER(IntKi), PARAMETER :: B4ADOF8Rdt = 4379
+ INTEGER(IntKi), PARAMETER :: B4ADOF9Rdt = 4380
+ INTEGER(IntKi), PARAMETER :: B4ADOF10Rdt = 4381
+ INTEGER(IntKi), PARAMETER :: B4ADOF11Rdt = 4382
+ INTEGER(IntKi), PARAMETER :: B4ADOF12Rdt = 4383
+ INTEGER(IntKi), PARAMETER :: B4ADOF13Rdt = 4384
+ INTEGER(IntKi), PARAMETER :: B4ADOF14Rdt = 4385
+ INTEGER(IntKi), PARAMETER :: B4ADOF15Rdt = 4386
+ INTEGER(IntKi), PARAMETER :: B4ADOF16Rdt = 4387
+ INTEGER(IntKi), PARAMETER :: B4ADOF17Rdt = 4388
+ INTEGER(IntKi), PARAMETER :: B4ADOF18Rdt = 4389
+ INTEGER(IntKi), PARAMETER :: B4ADOF19Rdt = 4390
+ INTEGER(IntKi), PARAMETER :: B4ADOF20Rdt = 4391
+ INTEGER(IntKi), PARAMETER :: B4ADOF21Rdt = 4392
+ INTEGER(IntKi), PARAMETER :: B4ADOF22Rdt = 4393
+ INTEGER(IntKi), PARAMETER :: B4ADOF23Rdt = 4394
+ INTEGER(IntKi), PARAMETER :: B4ADOF24Rdt = 4395
+ INTEGER(IntKi), PARAMETER :: B4ADOF25Rdt = 4396
+ INTEGER(IntKi), PARAMETER :: B4ADOF26Rdt = 4397
+ INTEGER(IntKi), PARAMETER :: B4ADOF27Rdt = 4398
+ INTEGER(IntKi), PARAMETER :: B4ADOF28Rdt = 4399
+ INTEGER(IntKi), PARAMETER :: B4ADOF29Rdt = 4400
+ INTEGER(IntKi), PARAMETER :: B4ADOF30Rdt = 4401
+ INTEGER(IntKi), PARAMETER :: B4ADOF31Rdt = 4402
+ INTEGER(IntKi), PARAMETER :: B4ADOF32Rdt = 4403
+ INTEGER(IntKi), PARAMETER :: B4ADOF33Rdt = 4404
+ INTEGER(IntKi), PARAMETER :: B4ADOF34Rdt = 4405
+ INTEGER(IntKi), PARAMETER :: B4ADOF35Rdt = 4406
+ INTEGER(IntKi), PARAMETER :: B4ADOF36Rdt = 4407
+ INTEGER(IntKi), PARAMETER :: B4ADOF37Rdt = 4408
+ INTEGER(IntKi), PARAMETER :: B4ADOF38Rdt = 4409
+ INTEGER(IntKi), PARAMETER :: B4ADOF39Rdt = 4410
+ INTEGER(IntKi), PARAMETER :: B4ADOF40Rdt = 4411
+ INTEGER(IntKi), PARAMETER :: B4ADOF41Rdt = 4412
+ INTEGER(IntKi), PARAMETER :: B4ADOF42Rdt = 4413
+ INTEGER(IntKi), PARAMETER :: B4ADOF43Rdt = 4414
+ INTEGER(IntKi), PARAMETER :: B4ADOF44Rdt = 4415
+ INTEGER(IntKi), PARAMETER :: B4ADOF45Rdt = 4416
+ INTEGER(IntKi), PARAMETER :: B4ADOF46Rdt = 4417
+ INTEGER(IntKi), PARAMETER :: B4ADOF47Rdt = 4418
+ INTEGER(IntKi), PARAMETER :: B4ADOF48Rdt = 4419
+ INTEGER(IntKi), PARAMETER :: B4ADOF49Rdt = 4420
+ INTEGER(IntKi), PARAMETER :: B4ADOF50Rdt = 4421
+ INTEGER(IntKi), PARAMETER :: B4ADOF51Rdt = 4422
+ INTEGER(IntKi), PARAMETER :: B4ADOF52Rdt = 4423
+ INTEGER(IntKi), PARAMETER :: B4ADOF53Rdt = 4424
+ INTEGER(IntKi), PARAMETER :: B4ADOF54Rdt = 4425
+ INTEGER(IntKi), PARAMETER :: B4ADOF55Rdt = 4426
+ INTEGER(IntKi), PARAMETER :: B4ADOF56Rdt = 4427
+ INTEGER(IntKi), PARAMETER :: B4ADOF57Rdt = 4428
+ INTEGER(IntKi), PARAMETER :: B4ADOF58Rdt = 4429
+ INTEGER(IntKi), PARAMETER :: B4ADOF59Rdt = 4430
+ INTEGER(IntKi), PARAMETER :: B4ADOF60Rdt = 4431
+ INTEGER(IntKi), PARAMETER :: B4ADOF61Rdt = 4432
+ INTEGER(IntKi), PARAMETER :: B4ADOF62Rdt = 4433
+ INTEGER(IntKi), PARAMETER :: B4ADOF63Rdt = 4434
+ INTEGER(IntKi), PARAMETER :: B4ADOF64Rdt = 4435
+ INTEGER(IntKi), PARAMETER :: B4ADOF65Rdt = 4436
+ INTEGER(IntKi), PARAMETER :: B4ADOF66Rdt = 4437
+ INTEGER(IntKi), PARAMETER :: B4ADOF67Rdt = 4438
+ INTEGER(IntKi), PARAMETER :: B4ADOF68Rdt = 4439
+ INTEGER(IntKi), PARAMETER :: B4ADOF69Rdt = 4440
+ INTEGER(IntKi), PARAMETER :: B4ADOF70Rdt = 4441
+ INTEGER(IntKi), PARAMETER :: B4ADOF71Rdt = 4442
+ INTEGER(IntKi), PARAMETER :: B4ADOF72Rdt = 4443
+ INTEGER(IntKi), PARAMETER :: B4ADOF73Rdt = 4444
+ INTEGER(IntKi), PARAMETER :: B4ADOF74Rdt = 4445
+ INTEGER(IntKi), PARAMETER :: B4ADOF75Rdt = 4446
+ INTEGER(IntKi), PARAMETER :: B4ADOF76Rdt = 4447
+ INTEGER(IntKi), PARAMETER :: B4ADOF77Rdt = 4448
+ INTEGER(IntKi), PARAMETER :: B4ADOF78Rdt = 4449
+ INTEGER(IntKi), PARAMETER :: B4ADOF79Rdt = 4450
+ INTEGER(IntKi), PARAMETER :: B4ADOF80Rdt = 4451
+ INTEGER(IntKi), PARAMETER :: B4ADOF81Rdt = 4452
+ INTEGER(IntKi), PARAMETER :: B4ADOF82Rdt = 4453
+ INTEGER(IntKi), PARAMETER :: B4ADOF83Rdt = 4454
+ INTEGER(IntKi), PARAMETER :: B4ADOF84Rdt = 4455
+ INTEGER(IntKi), PARAMETER :: B4ADOF85Rdt = 4456
+ INTEGER(IntKi), PARAMETER :: B4ADOF86Rdt = 4457
+ INTEGER(IntKi), PARAMETER :: B4ADOF87Rdt = 4458
+ INTEGER(IntKi), PARAMETER :: B4ADOF88Rdt = 4459
+ INTEGER(IntKi), PARAMETER :: B4ADOF89Rdt = 4460
+ INTEGER(IntKi), PARAMETER :: B4ADOF90Rdt = 4461
+ INTEGER(IntKi), PARAMETER :: B4ADOF91Rdt = 4462
+ INTEGER(IntKi), PARAMETER :: B4ADOF92Rdt = 4463
+ INTEGER(IntKi), PARAMETER :: B4ADOF93Rdt = 4464
+ INTEGER(IntKi), PARAMETER :: B4ADOF94Rdt = 4465
+ INTEGER(IntKi), PARAMETER :: B4ADOF95Rdt = 4466
+ INTEGER(IntKi), PARAMETER :: B4ADOF96Rdt = 4467
+ INTEGER(IntKi), PARAMETER :: B4ADOF97Rdt = 4468
+ INTEGER(IntKi), PARAMETER :: B4ADOF98Rdt = 4469
+ INTEGER(IntKi), PARAMETER :: B4ADOF99Rdt = 4470
+ INTEGER(IntKi), PARAMETER :: B5ADOF1Rdt = 4471
+ INTEGER(IntKi), PARAMETER :: B5ADOF2Rdt = 4472
+ INTEGER(IntKi), PARAMETER :: B5ADOF3Rdt = 4473
+ INTEGER(IntKi), PARAMETER :: B5ADOF4Rdt = 4474
+ INTEGER(IntKi), PARAMETER :: B5ADOF5Rdt = 4475
+ INTEGER(IntKi), PARAMETER :: B5ADOF6Rdt = 4476
+ INTEGER(IntKi), PARAMETER :: B5ADOF7Rdt = 4477
+ INTEGER(IntKi), PARAMETER :: B5ADOF8Rdt = 4478
+ INTEGER(IntKi), PARAMETER :: B5ADOF9Rdt = 4479
+ INTEGER(IntKi), PARAMETER :: B5ADOF10Rdt = 4480
+ INTEGER(IntKi), PARAMETER :: B5ADOF11Rdt = 4481
+ INTEGER(IntKi), PARAMETER :: B5ADOF12Rdt = 4482
+ INTEGER(IntKi), PARAMETER :: B5ADOF13Rdt = 4483
+ INTEGER(IntKi), PARAMETER :: B5ADOF14Rdt = 4484
+ INTEGER(IntKi), PARAMETER :: B5ADOF15Rdt = 4485
+ INTEGER(IntKi), PARAMETER :: B5ADOF16Rdt = 4486
+ INTEGER(IntKi), PARAMETER :: B5ADOF17Rdt = 4487
+ INTEGER(IntKi), PARAMETER :: B5ADOF18Rdt = 4488
+ INTEGER(IntKi), PARAMETER :: B5ADOF19Rdt = 4489
+ INTEGER(IntKi), PARAMETER :: B5ADOF20Rdt = 4490
+ INTEGER(IntKi), PARAMETER :: B5ADOF21Rdt = 4491
+ INTEGER(IntKi), PARAMETER :: B5ADOF22Rdt = 4492
+ INTEGER(IntKi), PARAMETER :: B5ADOF23Rdt = 4493
+ INTEGER(IntKi), PARAMETER :: B5ADOF24Rdt = 4494
+ INTEGER(IntKi), PARAMETER :: B5ADOF25Rdt = 4495
+ INTEGER(IntKi), PARAMETER :: B5ADOF26Rdt = 4496
+ INTEGER(IntKi), PARAMETER :: B5ADOF27Rdt = 4497
+ INTEGER(IntKi), PARAMETER :: B5ADOF28Rdt = 4498
+ INTEGER(IntKi), PARAMETER :: B5ADOF29Rdt = 4499
+ INTEGER(IntKi), PARAMETER :: B5ADOF30Rdt = 4500
+ INTEGER(IntKi), PARAMETER :: B5ADOF31Rdt = 4501
+ INTEGER(IntKi), PARAMETER :: B5ADOF32Rdt = 4502
+ INTEGER(IntKi), PARAMETER :: B5ADOF33Rdt = 4503
+ INTEGER(IntKi), PARAMETER :: B5ADOF34Rdt = 4504
+ INTEGER(IntKi), PARAMETER :: B5ADOF35Rdt = 4505
+ INTEGER(IntKi), PARAMETER :: B5ADOF36Rdt = 4506
+ INTEGER(IntKi), PARAMETER :: B5ADOF37Rdt = 4507
+ INTEGER(IntKi), PARAMETER :: B5ADOF38Rdt = 4508
+ INTEGER(IntKi), PARAMETER :: B5ADOF39Rdt = 4509
+ INTEGER(IntKi), PARAMETER :: B5ADOF40Rdt = 4510
+ INTEGER(IntKi), PARAMETER :: B5ADOF41Rdt = 4511
+ INTEGER(IntKi), PARAMETER :: B5ADOF42Rdt = 4512
+ INTEGER(IntKi), PARAMETER :: B5ADOF43Rdt = 4513
+ INTEGER(IntKi), PARAMETER :: B5ADOF44Rdt = 4514
+ INTEGER(IntKi), PARAMETER :: B5ADOF45Rdt = 4515
+ INTEGER(IntKi), PARAMETER :: B5ADOF46Rdt = 4516
+ INTEGER(IntKi), PARAMETER :: B5ADOF47Rdt = 4517
+ INTEGER(IntKi), PARAMETER :: B5ADOF48Rdt = 4518
+ INTEGER(IntKi), PARAMETER :: B5ADOF49Rdt = 4519
+ INTEGER(IntKi), PARAMETER :: B5ADOF50Rdt = 4520
+ INTEGER(IntKi), PARAMETER :: B5ADOF51Rdt = 4521
+ INTEGER(IntKi), PARAMETER :: B5ADOF52Rdt = 4522
+ INTEGER(IntKi), PARAMETER :: B5ADOF53Rdt = 4523
+ INTEGER(IntKi), PARAMETER :: B5ADOF54Rdt = 4524
+ INTEGER(IntKi), PARAMETER :: B5ADOF55Rdt = 4525
+ INTEGER(IntKi), PARAMETER :: B5ADOF56Rdt = 4526
+ INTEGER(IntKi), PARAMETER :: B5ADOF57Rdt = 4527
+ INTEGER(IntKi), PARAMETER :: B5ADOF58Rdt = 4528
+ INTEGER(IntKi), PARAMETER :: B5ADOF59Rdt = 4529
+ INTEGER(IntKi), PARAMETER :: B5ADOF60Rdt = 4530
+ INTEGER(IntKi), PARAMETER :: B5ADOF61Rdt = 4531
+ INTEGER(IntKi), PARAMETER :: B5ADOF62Rdt = 4532
+ INTEGER(IntKi), PARAMETER :: B5ADOF63Rdt = 4533
+ INTEGER(IntKi), PARAMETER :: B5ADOF64Rdt = 4534
+ INTEGER(IntKi), PARAMETER :: B5ADOF65Rdt = 4535
+ INTEGER(IntKi), PARAMETER :: B5ADOF66Rdt = 4536
+ INTEGER(IntKi), PARAMETER :: B5ADOF67Rdt = 4537
+ INTEGER(IntKi), PARAMETER :: B5ADOF68Rdt = 4538
+ INTEGER(IntKi), PARAMETER :: B5ADOF69Rdt = 4539
+ INTEGER(IntKi), PARAMETER :: B5ADOF70Rdt = 4540
+ INTEGER(IntKi), PARAMETER :: B5ADOF71Rdt = 4541
+ INTEGER(IntKi), PARAMETER :: B5ADOF72Rdt = 4542
+ INTEGER(IntKi), PARAMETER :: B5ADOF73Rdt = 4543
+ INTEGER(IntKi), PARAMETER :: B5ADOF74Rdt = 4544
+ INTEGER(IntKi), PARAMETER :: B5ADOF75Rdt = 4545
+ INTEGER(IntKi), PARAMETER :: B5ADOF76Rdt = 4546
+ INTEGER(IntKi), PARAMETER :: B5ADOF77Rdt = 4547
+ INTEGER(IntKi), PARAMETER :: B5ADOF78Rdt = 4548
+ INTEGER(IntKi), PARAMETER :: B5ADOF79Rdt = 4549
+ INTEGER(IntKi), PARAMETER :: B5ADOF80Rdt = 4550
+ INTEGER(IntKi), PARAMETER :: B5ADOF81Rdt = 4551
+ INTEGER(IntKi), PARAMETER :: B5ADOF82Rdt = 4552
+ INTEGER(IntKi), PARAMETER :: B5ADOF83Rdt = 4553
+ INTEGER(IntKi), PARAMETER :: B5ADOF84Rdt = 4554
+ INTEGER(IntKi), PARAMETER :: B5ADOF85Rdt = 4555
+ INTEGER(IntKi), PARAMETER :: B5ADOF86Rdt = 4556
+ INTEGER(IntKi), PARAMETER :: B5ADOF87Rdt = 4557
+ INTEGER(IntKi), PARAMETER :: B5ADOF88Rdt = 4558
+ INTEGER(IntKi), PARAMETER :: B5ADOF89Rdt = 4559
+ INTEGER(IntKi), PARAMETER :: B5ADOF90Rdt = 4560
+ INTEGER(IntKi), PARAMETER :: B5ADOF91Rdt = 4561
+ INTEGER(IntKi), PARAMETER :: B5ADOF92Rdt = 4562
+ INTEGER(IntKi), PARAMETER :: B5ADOF93Rdt = 4563
+ INTEGER(IntKi), PARAMETER :: B5ADOF94Rdt = 4564
+ INTEGER(IntKi), PARAMETER :: B5ADOF95Rdt = 4565
+ INTEGER(IntKi), PARAMETER :: B5ADOF96Rdt = 4566
+ INTEGER(IntKi), PARAMETER :: B5ADOF97Rdt = 4567
+ INTEGER(IntKi), PARAMETER :: B5ADOF98Rdt = 4568
+ INTEGER(IntKi), PARAMETER :: B5ADOF99Rdt = 4569
+ INTEGER(IntKi), PARAMETER :: B6ADOF1Rdt = 4570
+ INTEGER(IntKi), PARAMETER :: B6ADOF2Rdt = 4571
+ INTEGER(IntKi), PARAMETER :: B6ADOF3Rdt = 4572
+ INTEGER(IntKi), PARAMETER :: B6ADOF4Rdt = 4573
+ INTEGER(IntKi), PARAMETER :: B6ADOF5Rdt = 4574
+ INTEGER(IntKi), PARAMETER :: B6ADOF6Rdt = 4575
+ INTEGER(IntKi), PARAMETER :: B6ADOF7Rdt = 4576
+ INTEGER(IntKi), PARAMETER :: B6ADOF8Rdt = 4577
+ INTEGER(IntKi), PARAMETER :: B6ADOF9Rdt = 4578
+ INTEGER(IntKi), PARAMETER :: B6ADOF10Rdt = 4579
+ INTEGER(IntKi), PARAMETER :: B6ADOF11Rdt = 4580
+ INTEGER(IntKi), PARAMETER :: B6ADOF12Rdt = 4581
+ INTEGER(IntKi), PARAMETER :: B6ADOF13Rdt = 4582
+ INTEGER(IntKi), PARAMETER :: B6ADOF14Rdt = 4583
+ INTEGER(IntKi), PARAMETER :: B6ADOF15Rdt = 4584
+ INTEGER(IntKi), PARAMETER :: B6ADOF16Rdt = 4585
+ INTEGER(IntKi), PARAMETER :: B6ADOF17Rdt = 4586
+ INTEGER(IntKi), PARAMETER :: B6ADOF18Rdt = 4587
+ INTEGER(IntKi), PARAMETER :: B6ADOF19Rdt = 4588
+ INTEGER(IntKi), PARAMETER :: B6ADOF20Rdt = 4589
+ INTEGER(IntKi), PARAMETER :: B6ADOF21Rdt = 4590
+ INTEGER(IntKi), PARAMETER :: B6ADOF22Rdt = 4591
+ INTEGER(IntKi), PARAMETER :: B6ADOF23Rdt = 4592
+ INTEGER(IntKi), PARAMETER :: B6ADOF24Rdt = 4593
+ INTEGER(IntKi), PARAMETER :: B6ADOF25Rdt = 4594
+ INTEGER(IntKi), PARAMETER :: B6ADOF26Rdt = 4595
+ INTEGER(IntKi), PARAMETER :: B6ADOF27Rdt = 4596
+ INTEGER(IntKi), PARAMETER :: B6ADOF28Rdt = 4597
+ INTEGER(IntKi), PARAMETER :: B6ADOF29Rdt = 4598
+ INTEGER(IntKi), PARAMETER :: B6ADOF30Rdt = 4599
+ INTEGER(IntKi), PARAMETER :: B6ADOF31Rdt = 4600
+ INTEGER(IntKi), PARAMETER :: B6ADOF32Rdt = 4601
+ INTEGER(IntKi), PARAMETER :: B6ADOF33Rdt = 4602
+ INTEGER(IntKi), PARAMETER :: B6ADOF34Rdt = 4603
+ INTEGER(IntKi), PARAMETER :: B6ADOF35Rdt = 4604
+ INTEGER(IntKi), PARAMETER :: B6ADOF36Rdt = 4605
+ INTEGER(IntKi), PARAMETER :: B6ADOF37Rdt = 4606
+ INTEGER(IntKi), PARAMETER :: B6ADOF38Rdt = 4607
+ INTEGER(IntKi), PARAMETER :: B6ADOF39Rdt = 4608
+ INTEGER(IntKi), PARAMETER :: B6ADOF40Rdt = 4609
+ INTEGER(IntKi), PARAMETER :: B6ADOF41Rdt = 4610
+ INTEGER(IntKi), PARAMETER :: B6ADOF42Rdt = 4611
+ INTEGER(IntKi), PARAMETER :: B6ADOF43Rdt = 4612
+ INTEGER(IntKi), PARAMETER :: B6ADOF44Rdt = 4613
+ INTEGER(IntKi), PARAMETER :: B6ADOF45Rdt = 4614
+ INTEGER(IntKi), PARAMETER :: B6ADOF46Rdt = 4615
+ INTEGER(IntKi), PARAMETER :: B6ADOF47Rdt = 4616
+ INTEGER(IntKi), PARAMETER :: B6ADOF48Rdt = 4617
+ INTEGER(IntKi), PARAMETER :: B6ADOF49Rdt = 4618
+ INTEGER(IntKi), PARAMETER :: B6ADOF50Rdt = 4619
+ INTEGER(IntKi), PARAMETER :: B6ADOF51Rdt = 4620
+ INTEGER(IntKi), PARAMETER :: B6ADOF52Rdt = 4621
+ INTEGER(IntKi), PARAMETER :: B6ADOF53Rdt = 4622
+ INTEGER(IntKi), PARAMETER :: B6ADOF54Rdt = 4623
+ INTEGER(IntKi), PARAMETER :: B6ADOF55Rdt = 4624
+ INTEGER(IntKi), PARAMETER :: B6ADOF56Rdt = 4625
+ INTEGER(IntKi), PARAMETER :: B6ADOF57Rdt = 4626
+ INTEGER(IntKi), PARAMETER :: B6ADOF58Rdt = 4627
+ INTEGER(IntKi), PARAMETER :: B6ADOF59Rdt = 4628
+ INTEGER(IntKi), PARAMETER :: B6ADOF60Rdt = 4629
+ INTEGER(IntKi), PARAMETER :: B6ADOF61Rdt = 4630
+ INTEGER(IntKi), PARAMETER :: B6ADOF62Rdt = 4631
+ INTEGER(IntKi), PARAMETER :: B6ADOF63Rdt = 4632
+ INTEGER(IntKi), PARAMETER :: B6ADOF64Rdt = 4633
+ INTEGER(IntKi), PARAMETER :: B6ADOF65Rdt = 4634
+ INTEGER(IntKi), PARAMETER :: B6ADOF66Rdt = 4635
+ INTEGER(IntKi), PARAMETER :: B6ADOF67Rdt = 4636
+ INTEGER(IntKi), PARAMETER :: B6ADOF68Rdt = 4637
+ INTEGER(IntKi), PARAMETER :: B6ADOF69Rdt = 4638
+ INTEGER(IntKi), PARAMETER :: B6ADOF70Rdt = 4639
+ INTEGER(IntKi), PARAMETER :: B6ADOF71Rdt = 4640
+ INTEGER(IntKi), PARAMETER :: B6ADOF72Rdt = 4641
+ INTEGER(IntKi), PARAMETER :: B6ADOF73Rdt = 4642
+ INTEGER(IntKi), PARAMETER :: B6ADOF74Rdt = 4643
+ INTEGER(IntKi), PARAMETER :: B6ADOF75Rdt = 4644
+ INTEGER(IntKi), PARAMETER :: B6ADOF76Rdt = 4645
+ INTEGER(IntKi), PARAMETER :: B6ADOF77Rdt = 4646
+ INTEGER(IntKi), PARAMETER :: B6ADOF78Rdt = 4647
+ INTEGER(IntKi), PARAMETER :: B6ADOF79Rdt = 4648
+ INTEGER(IntKi), PARAMETER :: B6ADOF80Rdt = 4649
+ INTEGER(IntKi), PARAMETER :: B6ADOF81Rdt = 4650
+ INTEGER(IntKi), PARAMETER :: B6ADOF82Rdt = 4651
+ INTEGER(IntKi), PARAMETER :: B6ADOF83Rdt = 4652
+ INTEGER(IntKi), PARAMETER :: B6ADOF84Rdt = 4653
+ INTEGER(IntKi), PARAMETER :: B6ADOF85Rdt = 4654
+ INTEGER(IntKi), PARAMETER :: B6ADOF86Rdt = 4655
+ INTEGER(IntKi), PARAMETER :: B6ADOF87Rdt = 4656
+ INTEGER(IntKi), PARAMETER :: B6ADOF88Rdt = 4657
+ INTEGER(IntKi), PARAMETER :: B6ADOF89Rdt = 4658
+ INTEGER(IntKi), PARAMETER :: B6ADOF90Rdt = 4659
+ INTEGER(IntKi), PARAMETER :: B6ADOF91Rdt = 4660
+ INTEGER(IntKi), PARAMETER :: B6ADOF92Rdt = 4661
+ INTEGER(IntKi), PARAMETER :: B6ADOF93Rdt = 4662
+ INTEGER(IntKi), PARAMETER :: B6ADOF94Rdt = 4663
+ INTEGER(IntKi), PARAMETER :: B6ADOF95Rdt = 4664
+ INTEGER(IntKi), PARAMETER :: B6ADOF96Rdt = 4665
+ INTEGER(IntKi), PARAMETER :: B6ADOF97Rdt = 4666
+ INTEGER(IntKi), PARAMETER :: B6ADOF98Rdt = 4667
+ INTEGER(IntKi), PARAMETER :: B6ADOF99Rdt = 4668
+ INTEGER(IntKi), PARAMETER :: B7ADOF1Rdt = 4669
+ INTEGER(IntKi), PARAMETER :: B7ADOF2Rdt = 4670
+ INTEGER(IntKi), PARAMETER :: B7ADOF3Rdt = 4671
+ INTEGER(IntKi), PARAMETER :: B7ADOF4Rdt = 4672
+ INTEGER(IntKi), PARAMETER :: B7ADOF5Rdt = 4673
+ INTEGER(IntKi), PARAMETER :: B7ADOF6Rdt = 4674
+ INTEGER(IntKi), PARAMETER :: B7ADOF7Rdt = 4675
+ INTEGER(IntKi), PARAMETER :: B7ADOF8Rdt = 4676
+ INTEGER(IntKi), PARAMETER :: B7ADOF9Rdt = 4677
+ INTEGER(IntKi), PARAMETER :: B7ADOF10Rdt = 4678
+ INTEGER(IntKi), PARAMETER :: B7ADOF11Rdt = 4679
+ INTEGER(IntKi), PARAMETER :: B7ADOF12Rdt = 4680
+ INTEGER(IntKi), PARAMETER :: B7ADOF13Rdt = 4681
+ INTEGER(IntKi), PARAMETER :: B7ADOF14Rdt = 4682
+ INTEGER(IntKi), PARAMETER :: B7ADOF15Rdt = 4683
+ INTEGER(IntKi), PARAMETER :: B7ADOF16Rdt = 4684
+ INTEGER(IntKi), PARAMETER :: B7ADOF17Rdt = 4685
+ INTEGER(IntKi), PARAMETER :: B7ADOF18Rdt = 4686
+ INTEGER(IntKi), PARAMETER :: B7ADOF19Rdt = 4687
+ INTEGER(IntKi), PARAMETER :: B7ADOF20Rdt = 4688
+ INTEGER(IntKi), PARAMETER :: B7ADOF21Rdt = 4689
+ INTEGER(IntKi), PARAMETER :: B7ADOF22Rdt = 4690
+ INTEGER(IntKi), PARAMETER :: B7ADOF23Rdt = 4691
+ INTEGER(IntKi), PARAMETER :: B7ADOF24Rdt = 4692
+ INTEGER(IntKi), PARAMETER :: B7ADOF25Rdt = 4693
+ INTEGER(IntKi), PARAMETER :: B7ADOF26Rdt = 4694
+ INTEGER(IntKi), PARAMETER :: B7ADOF27Rdt = 4695
+ INTEGER(IntKi), PARAMETER :: B7ADOF28Rdt = 4696
+ INTEGER(IntKi), PARAMETER :: B7ADOF29Rdt = 4697
+ INTEGER(IntKi), PARAMETER :: B7ADOF30Rdt = 4698
+ INTEGER(IntKi), PARAMETER :: B7ADOF31Rdt = 4699
+ INTEGER(IntKi), PARAMETER :: B7ADOF32Rdt = 4700
+ INTEGER(IntKi), PARAMETER :: B7ADOF33Rdt = 4701
+ INTEGER(IntKi), PARAMETER :: B7ADOF34Rdt = 4702
+ INTEGER(IntKi), PARAMETER :: B7ADOF35Rdt = 4703
+ INTEGER(IntKi), PARAMETER :: B7ADOF36Rdt = 4704
+ INTEGER(IntKi), PARAMETER :: B7ADOF37Rdt = 4705
+ INTEGER(IntKi), PARAMETER :: B7ADOF38Rdt = 4706
+ INTEGER(IntKi), PARAMETER :: B7ADOF39Rdt = 4707
+ INTEGER(IntKi), PARAMETER :: B7ADOF40Rdt = 4708
+ INTEGER(IntKi), PARAMETER :: B7ADOF41Rdt = 4709
+ INTEGER(IntKi), PARAMETER :: B7ADOF42Rdt = 4710
+ INTEGER(IntKi), PARAMETER :: B7ADOF43Rdt = 4711
+ INTEGER(IntKi), PARAMETER :: B7ADOF44Rdt = 4712
+ INTEGER(IntKi), PARAMETER :: B7ADOF45Rdt = 4713
+ INTEGER(IntKi), PARAMETER :: B7ADOF46Rdt = 4714
+ INTEGER(IntKi), PARAMETER :: B7ADOF47Rdt = 4715
+ INTEGER(IntKi), PARAMETER :: B7ADOF48Rdt = 4716
+ INTEGER(IntKi), PARAMETER :: B7ADOF49Rdt = 4717
+ INTEGER(IntKi), PARAMETER :: B7ADOF50Rdt = 4718
+ INTEGER(IntKi), PARAMETER :: B7ADOF51Rdt = 4719
+ INTEGER(IntKi), PARAMETER :: B7ADOF52Rdt = 4720
+ INTEGER(IntKi), PARAMETER :: B7ADOF53Rdt = 4721
+ INTEGER(IntKi), PARAMETER :: B7ADOF54Rdt = 4722
+ INTEGER(IntKi), PARAMETER :: B7ADOF55Rdt = 4723
+ INTEGER(IntKi), PARAMETER :: B7ADOF56Rdt = 4724
+ INTEGER(IntKi), PARAMETER :: B7ADOF57Rdt = 4725
+ INTEGER(IntKi), PARAMETER :: B7ADOF58Rdt = 4726
+ INTEGER(IntKi), PARAMETER :: B7ADOF59Rdt = 4727
+ INTEGER(IntKi), PARAMETER :: B7ADOF60Rdt = 4728
+ INTEGER(IntKi), PARAMETER :: B7ADOF61Rdt = 4729
+ INTEGER(IntKi), PARAMETER :: B7ADOF62Rdt = 4730
+ INTEGER(IntKi), PARAMETER :: B7ADOF63Rdt = 4731
+ INTEGER(IntKi), PARAMETER :: B7ADOF64Rdt = 4732
+ INTEGER(IntKi), PARAMETER :: B7ADOF65Rdt = 4733
+ INTEGER(IntKi), PARAMETER :: B7ADOF66Rdt = 4734
+ INTEGER(IntKi), PARAMETER :: B7ADOF67Rdt = 4735
+ INTEGER(IntKi), PARAMETER :: B7ADOF68Rdt = 4736
+ INTEGER(IntKi), PARAMETER :: B7ADOF69Rdt = 4737
+ INTEGER(IntKi), PARAMETER :: B7ADOF70Rdt = 4738
+ INTEGER(IntKi), PARAMETER :: B7ADOF71Rdt = 4739
+ INTEGER(IntKi), PARAMETER :: B7ADOF72Rdt = 4740
+ INTEGER(IntKi), PARAMETER :: B7ADOF73Rdt = 4741
+ INTEGER(IntKi), PARAMETER :: B7ADOF74Rdt = 4742
+ INTEGER(IntKi), PARAMETER :: B7ADOF75Rdt = 4743
+ INTEGER(IntKi), PARAMETER :: B7ADOF76Rdt = 4744
+ INTEGER(IntKi), PARAMETER :: B7ADOF77Rdt = 4745
+ INTEGER(IntKi), PARAMETER :: B7ADOF78Rdt = 4746
+ INTEGER(IntKi), PARAMETER :: B7ADOF79Rdt = 4747
+ INTEGER(IntKi), PARAMETER :: B7ADOF80Rdt = 4748
+ INTEGER(IntKi), PARAMETER :: B7ADOF81Rdt = 4749
+ INTEGER(IntKi), PARAMETER :: B7ADOF82Rdt = 4750
+ INTEGER(IntKi), PARAMETER :: B7ADOF83Rdt = 4751
+ INTEGER(IntKi), PARAMETER :: B7ADOF84Rdt = 4752
+ INTEGER(IntKi), PARAMETER :: B7ADOF85Rdt = 4753
+ INTEGER(IntKi), PARAMETER :: B7ADOF86Rdt = 4754
+ INTEGER(IntKi), PARAMETER :: B7ADOF87Rdt = 4755
+ INTEGER(IntKi), PARAMETER :: B7ADOF88Rdt = 4756
+ INTEGER(IntKi), PARAMETER :: B7ADOF89Rdt = 4757
+ INTEGER(IntKi), PARAMETER :: B7ADOF90Rdt = 4758
+ INTEGER(IntKi), PARAMETER :: B7ADOF91Rdt = 4759
+ INTEGER(IntKi), PARAMETER :: B7ADOF92Rdt = 4760
+ INTEGER(IntKi), PARAMETER :: B7ADOF93Rdt = 4761
+ INTEGER(IntKi), PARAMETER :: B7ADOF94Rdt = 4762
+ INTEGER(IntKi), PARAMETER :: B7ADOF95Rdt = 4763
+ INTEGER(IntKi), PARAMETER :: B7ADOF96Rdt = 4764
+ INTEGER(IntKi), PARAMETER :: B7ADOF97Rdt = 4765
+ INTEGER(IntKi), PARAMETER :: B7ADOF98Rdt = 4766
+ INTEGER(IntKi), PARAMETER :: B7ADOF99Rdt = 4767
+ INTEGER(IntKi), PARAMETER :: B8ADOF1Rdt = 4768
+ INTEGER(IntKi), PARAMETER :: B8ADOF2Rdt = 4769
+ INTEGER(IntKi), PARAMETER :: B8ADOF3Rdt = 4770
+ INTEGER(IntKi), PARAMETER :: B8ADOF4Rdt = 4771
+ INTEGER(IntKi), PARAMETER :: B8ADOF5Rdt = 4772
+ INTEGER(IntKi), PARAMETER :: B8ADOF6Rdt = 4773
+ INTEGER(IntKi), PARAMETER :: B8ADOF7Rdt = 4774
+ INTEGER(IntKi), PARAMETER :: B8ADOF8Rdt = 4775
+ INTEGER(IntKi), PARAMETER :: B8ADOF9Rdt = 4776
+ INTEGER(IntKi), PARAMETER :: B8ADOF10Rdt = 4777
+ INTEGER(IntKi), PARAMETER :: B8ADOF11Rdt = 4778
+ INTEGER(IntKi), PARAMETER :: B8ADOF12Rdt = 4779
+ INTEGER(IntKi), PARAMETER :: B8ADOF13Rdt = 4780
+ INTEGER(IntKi), PARAMETER :: B8ADOF14Rdt = 4781
+ INTEGER(IntKi), PARAMETER :: B8ADOF15Rdt = 4782
+ INTEGER(IntKi), PARAMETER :: B8ADOF16Rdt = 4783
+ INTEGER(IntKi), PARAMETER :: B8ADOF17Rdt = 4784
+ INTEGER(IntKi), PARAMETER :: B8ADOF18Rdt = 4785
+ INTEGER(IntKi), PARAMETER :: B8ADOF19Rdt = 4786
+ INTEGER(IntKi), PARAMETER :: B8ADOF20Rdt = 4787
+ INTEGER(IntKi), PARAMETER :: B8ADOF21Rdt = 4788
+ INTEGER(IntKi), PARAMETER :: B8ADOF22Rdt = 4789
+ INTEGER(IntKi), PARAMETER :: B8ADOF23Rdt = 4790
+ INTEGER(IntKi), PARAMETER :: B8ADOF24Rdt = 4791
+ INTEGER(IntKi), PARAMETER :: B8ADOF25Rdt = 4792
+ INTEGER(IntKi), PARAMETER :: B8ADOF26Rdt = 4793
+ INTEGER(IntKi), PARAMETER :: B8ADOF27Rdt = 4794
+ INTEGER(IntKi), PARAMETER :: B8ADOF28Rdt = 4795
+ INTEGER(IntKi), PARAMETER :: B8ADOF29Rdt = 4796
+ INTEGER(IntKi), PARAMETER :: B8ADOF30Rdt = 4797
+ INTEGER(IntKi), PARAMETER :: B8ADOF31Rdt = 4798
+ INTEGER(IntKi), PARAMETER :: B8ADOF32Rdt = 4799
+ INTEGER(IntKi), PARAMETER :: B8ADOF33Rdt = 4800
+ INTEGER(IntKi), PARAMETER :: B8ADOF34Rdt = 4801
+ INTEGER(IntKi), PARAMETER :: B8ADOF35Rdt = 4802
+ INTEGER(IntKi), PARAMETER :: B8ADOF36Rdt = 4803
+ INTEGER(IntKi), PARAMETER :: B8ADOF37Rdt = 4804
+ INTEGER(IntKi), PARAMETER :: B8ADOF38Rdt = 4805
+ INTEGER(IntKi), PARAMETER :: B8ADOF39Rdt = 4806
+ INTEGER(IntKi), PARAMETER :: B8ADOF40Rdt = 4807
+ INTEGER(IntKi), PARAMETER :: B8ADOF41Rdt = 4808
+ INTEGER(IntKi), PARAMETER :: B8ADOF42Rdt = 4809
+ INTEGER(IntKi), PARAMETER :: B8ADOF43Rdt = 4810
+ INTEGER(IntKi), PARAMETER :: B8ADOF44Rdt = 4811
+ INTEGER(IntKi), PARAMETER :: B8ADOF45Rdt = 4812
+ INTEGER(IntKi), PARAMETER :: B8ADOF46Rdt = 4813
+ INTEGER(IntKi), PARAMETER :: B8ADOF47Rdt = 4814
+ INTEGER(IntKi), PARAMETER :: B8ADOF48Rdt = 4815
+ INTEGER(IntKi), PARAMETER :: B8ADOF49Rdt = 4816
+ INTEGER(IntKi), PARAMETER :: B8ADOF50Rdt = 4817
+ INTEGER(IntKi), PARAMETER :: B8ADOF51Rdt = 4818
+ INTEGER(IntKi), PARAMETER :: B8ADOF52Rdt = 4819
+ INTEGER(IntKi), PARAMETER :: B8ADOF53Rdt = 4820
+ INTEGER(IntKi), PARAMETER :: B8ADOF54Rdt = 4821
+ INTEGER(IntKi), PARAMETER :: B8ADOF55Rdt = 4822
+ INTEGER(IntKi), PARAMETER :: B8ADOF56Rdt = 4823
+ INTEGER(IntKi), PARAMETER :: B8ADOF57Rdt = 4824
+ INTEGER(IntKi), PARAMETER :: B8ADOF58Rdt = 4825
+ INTEGER(IntKi), PARAMETER :: B8ADOF59Rdt = 4826
+ INTEGER(IntKi), PARAMETER :: B8ADOF60Rdt = 4827
+ INTEGER(IntKi), PARAMETER :: B8ADOF61Rdt = 4828
+ INTEGER(IntKi), PARAMETER :: B8ADOF62Rdt = 4829
+ INTEGER(IntKi), PARAMETER :: B8ADOF63Rdt = 4830
+ INTEGER(IntKi), PARAMETER :: B8ADOF64Rdt = 4831
+ INTEGER(IntKi), PARAMETER :: B8ADOF65Rdt = 4832
+ INTEGER(IntKi), PARAMETER :: B8ADOF66Rdt = 4833
+ INTEGER(IntKi), PARAMETER :: B8ADOF67Rdt = 4834
+ INTEGER(IntKi), PARAMETER :: B8ADOF68Rdt = 4835
+ INTEGER(IntKi), PARAMETER :: B8ADOF69Rdt = 4836
+ INTEGER(IntKi), PARAMETER :: B8ADOF70Rdt = 4837
+ INTEGER(IntKi), PARAMETER :: B8ADOF71Rdt = 4838
+ INTEGER(IntKi), PARAMETER :: B8ADOF72Rdt = 4839
+ INTEGER(IntKi), PARAMETER :: B8ADOF73Rdt = 4840
+ INTEGER(IntKi), PARAMETER :: B8ADOF74Rdt = 4841
+ INTEGER(IntKi), PARAMETER :: B8ADOF75Rdt = 4842
+ INTEGER(IntKi), PARAMETER :: B8ADOF76Rdt = 4843
+ INTEGER(IntKi), PARAMETER :: B8ADOF77Rdt = 4844
+ INTEGER(IntKi), PARAMETER :: B8ADOF78Rdt = 4845
+ INTEGER(IntKi), PARAMETER :: B8ADOF79Rdt = 4846
+ INTEGER(IntKi), PARAMETER :: B8ADOF80Rdt = 4847
+ INTEGER(IntKi), PARAMETER :: B8ADOF81Rdt = 4848
+ INTEGER(IntKi), PARAMETER :: B8ADOF82Rdt = 4849
+ INTEGER(IntKi), PARAMETER :: B8ADOF83Rdt = 4850
+ INTEGER(IntKi), PARAMETER :: B8ADOF84Rdt = 4851
+ INTEGER(IntKi), PARAMETER :: B8ADOF85Rdt = 4852
+ INTEGER(IntKi), PARAMETER :: B8ADOF86Rdt = 4853
+ INTEGER(IntKi), PARAMETER :: B8ADOF87Rdt = 4854
+ INTEGER(IntKi), PARAMETER :: B8ADOF88Rdt = 4855
+ INTEGER(IntKi), PARAMETER :: B8ADOF89Rdt = 4856
+ INTEGER(IntKi), PARAMETER :: B8ADOF90Rdt = 4857
+ INTEGER(IntKi), PARAMETER :: B8ADOF91Rdt = 4858
+ INTEGER(IntKi), PARAMETER :: B8ADOF92Rdt = 4859
+ INTEGER(IntKi), PARAMETER :: B8ADOF93Rdt = 4860
+ INTEGER(IntKi), PARAMETER :: B8ADOF94Rdt = 4861
+ INTEGER(IntKi), PARAMETER :: B8ADOF95Rdt = 4862
+ INTEGER(IntKi), PARAMETER :: B8ADOF96Rdt = 4863
+ INTEGER(IntKi), PARAMETER :: B8ADOF97Rdt = 4864
+ INTEGER(IntKi), PARAMETER :: B8ADOF98Rdt = 4865
+ INTEGER(IntKi), PARAMETER :: B8ADOF99Rdt = 4866
+ INTEGER(IntKi), PARAMETER :: B9ADOF1Rdt = 4867
+ INTEGER(IntKi), PARAMETER :: B9ADOF2Rdt = 4868
+ INTEGER(IntKi), PARAMETER :: B9ADOF3Rdt = 4869
+ INTEGER(IntKi), PARAMETER :: B9ADOF4Rdt = 4870
+ INTEGER(IntKi), PARAMETER :: B9ADOF5Rdt = 4871
+ INTEGER(IntKi), PARAMETER :: B9ADOF6Rdt = 4872
+ INTEGER(IntKi), PARAMETER :: B9ADOF7Rdt = 4873
+ INTEGER(IntKi), PARAMETER :: B9ADOF8Rdt = 4874
+ INTEGER(IntKi), PARAMETER :: B9ADOF9Rdt = 4875
+ INTEGER(IntKi), PARAMETER :: B9ADOF10Rdt = 4876
+ INTEGER(IntKi), PARAMETER :: B9ADOF11Rdt = 4877
+ INTEGER(IntKi), PARAMETER :: B9ADOF12Rdt = 4878
+ INTEGER(IntKi), PARAMETER :: B9ADOF13Rdt = 4879
+ INTEGER(IntKi), PARAMETER :: B9ADOF14Rdt = 4880
+ INTEGER(IntKi), PARAMETER :: B9ADOF15Rdt = 4881
+ INTEGER(IntKi), PARAMETER :: B9ADOF16Rdt = 4882
+ INTEGER(IntKi), PARAMETER :: B9ADOF17Rdt = 4883
+ INTEGER(IntKi), PARAMETER :: B9ADOF18Rdt = 4884
+ INTEGER(IntKi), PARAMETER :: B9ADOF19Rdt = 4885
+ INTEGER(IntKi), PARAMETER :: B9ADOF20Rdt = 4886
+ INTEGER(IntKi), PARAMETER :: B9ADOF21Rdt = 4887
+ INTEGER(IntKi), PARAMETER :: B9ADOF22Rdt = 4888
+ INTEGER(IntKi), PARAMETER :: B9ADOF23Rdt = 4889
+ INTEGER(IntKi), PARAMETER :: B9ADOF24Rdt = 4890
+ INTEGER(IntKi), PARAMETER :: B9ADOF25Rdt = 4891
+ INTEGER(IntKi), PARAMETER :: B9ADOF26Rdt = 4892
+ INTEGER(IntKi), PARAMETER :: B9ADOF27Rdt = 4893
+ INTEGER(IntKi), PARAMETER :: B9ADOF28Rdt = 4894
+ INTEGER(IntKi), PARAMETER :: B9ADOF29Rdt = 4895
+ INTEGER(IntKi), PARAMETER :: B9ADOF30Rdt = 4896
+ INTEGER(IntKi), PARAMETER :: B9ADOF31Rdt = 4897
+ INTEGER(IntKi), PARAMETER :: B9ADOF32Rdt = 4898
+ INTEGER(IntKi), PARAMETER :: B9ADOF33Rdt = 4899
+ INTEGER(IntKi), PARAMETER :: B9ADOF34Rdt = 4900
+ INTEGER(IntKi), PARAMETER :: B9ADOF35Rdt = 4901
+ INTEGER(IntKi), PARAMETER :: B9ADOF36Rdt = 4902
+ INTEGER(IntKi), PARAMETER :: B9ADOF37Rdt = 4903
+ INTEGER(IntKi), PARAMETER :: B9ADOF38Rdt = 4904
+ INTEGER(IntKi), PARAMETER :: B9ADOF39Rdt = 4905
+ INTEGER(IntKi), PARAMETER :: B9ADOF40Rdt = 4906
+ INTEGER(IntKi), PARAMETER :: B9ADOF41Rdt = 4907
+ INTEGER(IntKi), PARAMETER :: B9ADOF42Rdt = 4908
+ INTEGER(IntKi), PARAMETER :: B9ADOF43Rdt = 4909
+ INTEGER(IntKi), PARAMETER :: B9ADOF44Rdt = 4910
+ INTEGER(IntKi), PARAMETER :: B9ADOF45Rdt = 4911
+ INTEGER(IntKi), PARAMETER :: B9ADOF46Rdt = 4912
+ INTEGER(IntKi), PARAMETER :: B9ADOF47Rdt = 4913
+ INTEGER(IntKi), PARAMETER :: B9ADOF48Rdt = 4914
+ INTEGER(IntKi), PARAMETER :: B9ADOF49Rdt = 4915
+ INTEGER(IntKi), PARAMETER :: B9ADOF50Rdt = 4916
+ INTEGER(IntKi), PARAMETER :: B9ADOF51Rdt = 4917
+ INTEGER(IntKi), PARAMETER :: B9ADOF52Rdt = 4918
+ INTEGER(IntKi), PARAMETER :: B9ADOF53Rdt = 4919
+ INTEGER(IntKi), PARAMETER :: B9ADOF54Rdt = 4920
+ INTEGER(IntKi), PARAMETER :: B9ADOF55Rdt = 4921
+ INTEGER(IntKi), PARAMETER :: B9ADOF56Rdt = 4922
+ INTEGER(IntKi), PARAMETER :: B9ADOF57Rdt = 4923
+ INTEGER(IntKi), PARAMETER :: B9ADOF58Rdt = 4924
+ INTEGER(IntKi), PARAMETER :: B9ADOF59Rdt = 4925
+ INTEGER(IntKi), PARAMETER :: B9ADOF60Rdt = 4926
+ INTEGER(IntKi), PARAMETER :: B9ADOF61Rdt = 4927
+ INTEGER(IntKi), PARAMETER :: B9ADOF62Rdt = 4928
+ INTEGER(IntKi), PARAMETER :: B9ADOF63Rdt = 4929
+ INTEGER(IntKi), PARAMETER :: B9ADOF64Rdt = 4930
+ INTEGER(IntKi), PARAMETER :: B9ADOF65Rdt = 4931
+ INTEGER(IntKi), PARAMETER :: B9ADOF66Rdt = 4932
+ INTEGER(IntKi), PARAMETER :: B9ADOF67Rdt = 4933
+ INTEGER(IntKi), PARAMETER :: B9ADOF68Rdt = 4934
+ INTEGER(IntKi), PARAMETER :: B9ADOF69Rdt = 4935
+ INTEGER(IntKi), PARAMETER :: B9ADOF70Rdt = 4936
+ INTEGER(IntKi), PARAMETER :: B9ADOF71Rdt = 4937
+ INTEGER(IntKi), PARAMETER :: B9ADOF72Rdt = 4938
+ INTEGER(IntKi), PARAMETER :: B9ADOF73Rdt = 4939
+ INTEGER(IntKi), PARAMETER :: B9ADOF74Rdt = 4940
+ INTEGER(IntKi), PARAMETER :: B9ADOF75Rdt = 4941
+ INTEGER(IntKi), PARAMETER :: B9ADOF76Rdt = 4942
+ INTEGER(IntKi), PARAMETER :: B9ADOF77Rdt = 4943
+ INTEGER(IntKi), PARAMETER :: B9ADOF78Rdt = 4944
+ INTEGER(IntKi), PARAMETER :: B9ADOF79Rdt = 4945
+ INTEGER(IntKi), PARAMETER :: B9ADOF80Rdt = 4946
+ INTEGER(IntKi), PARAMETER :: B9ADOF81Rdt = 4947
+ INTEGER(IntKi), PARAMETER :: B9ADOF82Rdt = 4948
+ INTEGER(IntKi), PARAMETER :: B9ADOF83Rdt = 4949
+ INTEGER(IntKi), PARAMETER :: B9ADOF84Rdt = 4950
+ INTEGER(IntKi), PARAMETER :: B9ADOF85Rdt = 4951
+ INTEGER(IntKi), PARAMETER :: B9ADOF86Rdt = 4952
+ INTEGER(IntKi), PARAMETER :: B9ADOF87Rdt = 4953
+ INTEGER(IntKi), PARAMETER :: B9ADOF88Rdt = 4954
+ INTEGER(IntKi), PARAMETER :: B9ADOF89Rdt = 4955
+ INTEGER(IntKi), PARAMETER :: B9ADOF90Rdt = 4956
+ INTEGER(IntKi), PARAMETER :: B9ADOF91Rdt = 4957
+ INTEGER(IntKi), PARAMETER :: B9ADOF92Rdt = 4958
+ INTEGER(IntKi), PARAMETER :: B9ADOF93Rdt = 4959
+ INTEGER(IntKi), PARAMETER :: B9ADOF94Rdt = 4960
+ INTEGER(IntKi), PARAMETER :: B9ADOF95Rdt = 4961
+ INTEGER(IntKi), PARAMETER :: B9ADOF96Rdt = 4962
+ INTEGER(IntKi), PARAMETER :: B9ADOF97Rdt = 4963
+ INTEGER(IntKi), PARAMETER :: B9ADOF98Rdt = 4964
+ INTEGER(IntKi), PARAMETER :: B9ADOF99Rdt = 4965
+ INTEGER(IntKi), PARAMETER :: B1ADOF1Hds = 4966
+ INTEGER(IntKi), PARAMETER :: B1ADOF2Hds = 4967
+ INTEGER(IntKi), PARAMETER :: B1ADOF3Hds = 4968
+ INTEGER(IntKi), PARAMETER :: B1ADOF4Hds = 4969
+ INTEGER(IntKi), PARAMETER :: B1ADOF5Hds = 4970
+ INTEGER(IntKi), PARAMETER :: B1ADOF6Hds = 4971
+ INTEGER(IntKi), PARAMETER :: B1ADOF7Hds = 4972
+ INTEGER(IntKi), PARAMETER :: B1ADOF8Hds = 4973
+ INTEGER(IntKi), PARAMETER :: B1ADOF9Hds = 4974
+ INTEGER(IntKi), PARAMETER :: B1ADOF10Hds = 4975
+ INTEGER(IntKi), PARAMETER :: B1ADOF11Hds = 4976
+ INTEGER(IntKi), PARAMETER :: B1ADOF12Hds = 4977
+ INTEGER(IntKi), PARAMETER :: B1ADOF13Hds = 4978
+ INTEGER(IntKi), PARAMETER :: B1ADOF14Hds = 4979
+ INTEGER(IntKi), PARAMETER :: B1ADOF15Hds = 4980
+ INTEGER(IntKi), PARAMETER :: B1ADOF16Hds = 4981
+ INTEGER(IntKi), PARAMETER :: B1ADOF17Hds = 4982
+ INTEGER(IntKi), PARAMETER :: B1ADOF18Hds = 4983
+ INTEGER(IntKi), PARAMETER :: B1ADOF19Hds = 4984
+ INTEGER(IntKi), PARAMETER :: B1ADOF20Hds = 4985
+ INTEGER(IntKi), PARAMETER :: B1ADOF21Hds = 4986
+ INTEGER(IntKi), PARAMETER :: B1ADOF22Hds = 4987
+ INTEGER(IntKi), PARAMETER :: B1ADOF23Hds = 4988
+ INTEGER(IntKi), PARAMETER :: B1ADOF24Hds = 4989
+ INTEGER(IntKi), PARAMETER :: B1ADOF25Hds = 4990
+ INTEGER(IntKi), PARAMETER :: B1ADOF26Hds = 4991
+ INTEGER(IntKi), PARAMETER :: B1ADOF27Hds = 4992
+ INTEGER(IntKi), PARAMETER :: B1ADOF28Hds = 4993
+ INTEGER(IntKi), PARAMETER :: B1ADOF29Hds = 4994
+ INTEGER(IntKi), PARAMETER :: B1ADOF30Hds = 4995
+ INTEGER(IntKi), PARAMETER :: B1ADOF31Hds = 4996
+ INTEGER(IntKi), PARAMETER :: B1ADOF32Hds = 4997
+ INTEGER(IntKi), PARAMETER :: B1ADOF33Hds = 4998
+ INTEGER(IntKi), PARAMETER :: B1ADOF34Hds = 4999
+ INTEGER(IntKi), PARAMETER :: B1ADOF35Hds = 5000
+ INTEGER(IntKi), PARAMETER :: B1ADOF36Hds = 5001
+ INTEGER(IntKi), PARAMETER :: B1ADOF37Hds = 5002
+ INTEGER(IntKi), PARAMETER :: B1ADOF38Hds = 5003
+ INTEGER(IntKi), PARAMETER :: B1ADOF39Hds = 5004
+ INTEGER(IntKi), PARAMETER :: B1ADOF40Hds = 5005
+ INTEGER(IntKi), PARAMETER :: B1ADOF41Hds = 5006
+ INTEGER(IntKi), PARAMETER :: B1ADOF42Hds = 5007
+ INTEGER(IntKi), PARAMETER :: B1ADOF43Hds = 5008
+ INTEGER(IntKi), PARAMETER :: B1ADOF44Hds = 5009
+ INTEGER(IntKi), PARAMETER :: B1ADOF45Hds = 5010
+ INTEGER(IntKi), PARAMETER :: B1ADOF46Hds = 5011
+ INTEGER(IntKi), PARAMETER :: B1ADOF47Hds = 5012
+ INTEGER(IntKi), PARAMETER :: B1ADOF48Hds = 5013
+ INTEGER(IntKi), PARAMETER :: B1ADOF49Hds = 5014
+ INTEGER(IntKi), PARAMETER :: B1ADOF50Hds = 5015
+ INTEGER(IntKi), PARAMETER :: B1ADOF51Hds = 5016
+ INTEGER(IntKi), PARAMETER :: B1ADOF52Hds = 5017
+ INTEGER(IntKi), PARAMETER :: B1ADOF53Hds = 5018
+ INTEGER(IntKi), PARAMETER :: B1ADOF54Hds = 5019
+ INTEGER(IntKi), PARAMETER :: B1ADOF55Hds = 5020
+ INTEGER(IntKi), PARAMETER :: B1ADOF56Hds = 5021
+ INTEGER(IntKi), PARAMETER :: B1ADOF57Hds = 5022
+ INTEGER(IntKi), PARAMETER :: B1ADOF58Hds = 5023
+ INTEGER(IntKi), PARAMETER :: B1ADOF59Hds = 5024
+ INTEGER(IntKi), PARAMETER :: B1ADOF60Hds = 5025
+ INTEGER(IntKi), PARAMETER :: B1ADOF61Hds = 5026
+ INTEGER(IntKi), PARAMETER :: B1ADOF62Hds = 5027
+ INTEGER(IntKi), PARAMETER :: B1ADOF63Hds = 5028
+ INTEGER(IntKi), PARAMETER :: B1ADOF64Hds = 5029
+ INTEGER(IntKi), PARAMETER :: B1ADOF65Hds = 5030
+ INTEGER(IntKi), PARAMETER :: B1ADOF66Hds = 5031
+ INTEGER(IntKi), PARAMETER :: B1ADOF67Hds = 5032
+ INTEGER(IntKi), PARAMETER :: B1ADOF68Hds = 5033
+ INTEGER(IntKi), PARAMETER :: B1ADOF69Hds = 5034
+ INTEGER(IntKi), PARAMETER :: B1ADOF70Hds = 5035
+ INTEGER(IntKi), PARAMETER :: B1ADOF71Hds = 5036
+ INTEGER(IntKi), PARAMETER :: B1ADOF72Hds = 5037
+ INTEGER(IntKi), PARAMETER :: B1ADOF73Hds = 5038
+ INTEGER(IntKi), PARAMETER :: B1ADOF74Hds = 5039
+ INTEGER(IntKi), PARAMETER :: B1ADOF75Hds = 5040
+ INTEGER(IntKi), PARAMETER :: B1ADOF76Hds = 5041
+ INTEGER(IntKi), PARAMETER :: B1ADOF77Hds = 5042
+ INTEGER(IntKi), PARAMETER :: B1ADOF78Hds = 5043
+ INTEGER(IntKi), PARAMETER :: B1ADOF79Hds = 5044
+ INTEGER(IntKi), PARAMETER :: B1ADOF80Hds = 5045
+ INTEGER(IntKi), PARAMETER :: B1ADOF81Hds = 5046
+ INTEGER(IntKi), PARAMETER :: B1ADOF82Hds = 5047
+ INTEGER(IntKi), PARAMETER :: B1ADOF83Hds = 5048
+ INTEGER(IntKi), PARAMETER :: B1ADOF84Hds = 5049
+ INTEGER(IntKi), PARAMETER :: B1ADOF85Hds = 5050
+ INTEGER(IntKi), PARAMETER :: B1ADOF86Hds = 5051
+ INTEGER(IntKi), PARAMETER :: B1ADOF87Hds = 5052
+ INTEGER(IntKi), PARAMETER :: B1ADOF88Hds = 5053
+ INTEGER(IntKi), PARAMETER :: B1ADOF89Hds = 5054
+ INTEGER(IntKi), PARAMETER :: B1ADOF90Hds = 5055
+ INTEGER(IntKi), PARAMETER :: B1ADOF91Hds = 5056
+ INTEGER(IntKi), PARAMETER :: B1ADOF92Hds = 5057
+ INTEGER(IntKi), PARAMETER :: B1ADOF93Hds = 5058
+ INTEGER(IntKi), PARAMETER :: B1ADOF94Hds = 5059
+ INTEGER(IntKi), PARAMETER :: B1ADOF95Hds = 5060
+ INTEGER(IntKi), PARAMETER :: B1ADOF96Hds = 5061
+ INTEGER(IntKi), PARAMETER :: B1ADOF97Hds = 5062
+ INTEGER(IntKi), PARAMETER :: B1ADOF98Hds = 5063
+ INTEGER(IntKi), PARAMETER :: B1ADOF99Hds = 5064
+ INTEGER(IntKi), PARAMETER :: B2ADOF1Hds = 5065
+ INTEGER(IntKi), PARAMETER :: B2ADOF2Hds = 5066
+ INTEGER(IntKi), PARAMETER :: B2ADOF3Hds = 5067
+ INTEGER(IntKi), PARAMETER :: B2ADOF4Hds = 5068
+ INTEGER(IntKi), PARAMETER :: B2ADOF5Hds = 5069
+ INTEGER(IntKi), PARAMETER :: B2ADOF6Hds = 5070
+ INTEGER(IntKi), PARAMETER :: B2ADOF7Hds = 5071
+ INTEGER(IntKi), PARAMETER :: B2ADOF8Hds = 5072
+ INTEGER(IntKi), PARAMETER :: B2ADOF9Hds = 5073
+ INTEGER(IntKi), PARAMETER :: B2ADOF10Hds = 5074
+ INTEGER(IntKi), PARAMETER :: B2ADOF11Hds = 5075
+ INTEGER(IntKi), PARAMETER :: B2ADOF12Hds = 5076
+ INTEGER(IntKi), PARAMETER :: B2ADOF13Hds = 5077
+ INTEGER(IntKi), PARAMETER :: B2ADOF14Hds = 5078
+ INTEGER(IntKi), PARAMETER :: B2ADOF15Hds = 5079
+ INTEGER(IntKi), PARAMETER :: B2ADOF16Hds = 5080
+ INTEGER(IntKi), PARAMETER :: B2ADOF17Hds = 5081
+ INTEGER(IntKi), PARAMETER :: B2ADOF18Hds = 5082
+ INTEGER(IntKi), PARAMETER :: B2ADOF19Hds = 5083
+ INTEGER(IntKi), PARAMETER :: B2ADOF20Hds = 5084
+ INTEGER(IntKi), PARAMETER :: B2ADOF21Hds = 5085
+ INTEGER(IntKi), PARAMETER :: B2ADOF22Hds = 5086
+ INTEGER(IntKi), PARAMETER :: B2ADOF23Hds = 5087
+ INTEGER(IntKi), PARAMETER :: B2ADOF24Hds = 5088
+ INTEGER(IntKi), PARAMETER :: B2ADOF25Hds = 5089
+ INTEGER(IntKi), PARAMETER :: B2ADOF26Hds = 5090
+ INTEGER(IntKi), PARAMETER :: B2ADOF27Hds = 5091
+ INTEGER(IntKi), PARAMETER :: B2ADOF28Hds = 5092
+ INTEGER(IntKi), PARAMETER :: B2ADOF29Hds = 5093
+ INTEGER(IntKi), PARAMETER :: B2ADOF30Hds = 5094
+ INTEGER(IntKi), PARAMETER :: B2ADOF31Hds = 5095
+ INTEGER(IntKi), PARAMETER :: B2ADOF32Hds = 5096
+ INTEGER(IntKi), PARAMETER :: B2ADOF33Hds = 5097
+ INTEGER(IntKi), PARAMETER :: B2ADOF34Hds = 5098
+ INTEGER(IntKi), PARAMETER :: B2ADOF35Hds = 5099
+ INTEGER(IntKi), PARAMETER :: B2ADOF36Hds = 5100
+ INTEGER(IntKi), PARAMETER :: B2ADOF37Hds = 5101
+ INTEGER(IntKi), PARAMETER :: B2ADOF38Hds = 5102
+ INTEGER(IntKi), PARAMETER :: B2ADOF39Hds = 5103
+ INTEGER(IntKi), PARAMETER :: B2ADOF40Hds = 5104
+ INTEGER(IntKi), PARAMETER :: B2ADOF41Hds = 5105
+ INTEGER(IntKi), PARAMETER :: B2ADOF42Hds = 5106
+ INTEGER(IntKi), PARAMETER :: B2ADOF43Hds = 5107
+ INTEGER(IntKi), PARAMETER :: B2ADOF44Hds = 5108
+ INTEGER(IntKi), PARAMETER :: B2ADOF45Hds = 5109
+ INTEGER(IntKi), PARAMETER :: B2ADOF46Hds = 5110
+ INTEGER(IntKi), PARAMETER :: B2ADOF47Hds = 5111
+ INTEGER(IntKi), PARAMETER :: B2ADOF48Hds = 5112
+ INTEGER(IntKi), PARAMETER :: B2ADOF49Hds = 5113
+ INTEGER(IntKi), PARAMETER :: B2ADOF50Hds = 5114
+ INTEGER(IntKi), PARAMETER :: B2ADOF51Hds = 5115
+ INTEGER(IntKi), PARAMETER :: B2ADOF52Hds = 5116
+ INTEGER(IntKi), PARAMETER :: B2ADOF53Hds = 5117
+ INTEGER(IntKi), PARAMETER :: B2ADOF54Hds = 5118
+ INTEGER(IntKi), PARAMETER :: B2ADOF55Hds = 5119
+ INTEGER(IntKi), PARAMETER :: B2ADOF56Hds = 5120
+ INTEGER(IntKi), PARAMETER :: B2ADOF57Hds = 5121
+ INTEGER(IntKi), PARAMETER :: B2ADOF58Hds = 5122
+ INTEGER(IntKi), PARAMETER :: B2ADOF59Hds = 5123
+ INTEGER(IntKi), PARAMETER :: B2ADOF60Hds = 5124
+ INTEGER(IntKi), PARAMETER :: B2ADOF61Hds = 5125
+ INTEGER(IntKi), PARAMETER :: B2ADOF62Hds = 5126
+ INTEGER(IntKi), PARAMETER :: B2ADOF63Hds = 5127
+ INTEGER(IntKi), PARAMETER :: B2ADOF64Hds = 5128
+ INTEGER(IntKi), PARAMETER :: B2ADOF65Hds = 5129
+ INTEGER(IntKi), PARAMETER :: B2ADOF66Hds = 5130
+ INTEGER(IntKi), PARAMETER :: B2ADOF67Hds = 5131
+ INTEGER(IntKi), PARAMETER :: B2ADOF68Hds = 5132
+ INTEGER(IntKi), PARAMETER :: B2ADOF69Hds = 5133
+ INTEGER(IntKi), PARAMETER :: B2ADOF70Hds = 5134
+ INTEGER(IntKi), PARAMETER :: B2ADOF71Hds = 5135
+ INTEGER(IntKi), PARAMETER :: B2ADOF72Hds = 5136
+ INTEGER(IntKi), PARAMETER :: B2ADOF73Hds = 5137
+ INTEGER(IntKi), PARAMETER :: B2ADOF74Hds = 5138
+ INTEGER(IntKi), PARAMETER :: B2ADOF75Hds = 5139
+ INTEGER(IntKi), PARAMETER :: B2ADOF76Hds = 5140
+ INTEGER(IntKi), PARAMETER :: B2ADOF77Hds = 5141
+ INTEGER(IntKi), PARAMETER :: B2ADOF78Hds = 5142
+ INTEGER(IntKi), PARAMETER :: B2ADOF79Hds = 5143
+ INTEGER(IntKi), PARAMETER :: B2ADOF80Hds = 5144
+ INTEGER(IntKi), PARAMETER :: B2ADOF81Hds = 5145
+ INTEGER(IntKi), PARAMETER :: B2ADOF82Hds = 5146
+ INTEGER(IntKi), PARAMETER :: B2ADOF83Hds = 5147
+ INTEGER(IntKi), PARAMETER :: B2ADOF84Hds = 5148
+ INTEGER(IntKi), PARAMETER :: B2ADOF85Hds = 5149
+ INTEGER(IntKi), PARAMETER :: B2ADOF86Hds = 5150
+ INTEGER(IntKi), PARAMETER :: B2ADOF87Hds = 5151
+ INTEGER(IntKi), PARAMETER :: B2ADOF88Hds = 5152
+ INTEGER(IntKi), PARAMETER :: B2ADOF89Hds = 5153
+ INTEGER(IntKi), PARAMETER :: B2ADOF90Hds = 5154
+ INTEGER(IntKi), PARAMETER :: B2ADOF91Hds = 5155
+ INTEGER(IntKi), PARAMETER :: B2ADOF92Hds = 5156
+ INTEGER(IntKi), PARAMETER :: B2ADOF93Hds = 5157
+ INTEGER(IntKi), PARAMETER :: B2ADOF94Hds = 5158
+ INTEGER(IntKi), PARAMETER :: B2ADOF95Hds = 5159
+ INTEGER(IntKi), PARAMETER :: B2ADOF96Hds = 5160
+ INTEGER(IntKi), PARAMETER :: B2ADOF97Hds = 5161
+ INTEGER(IntKi), PARAMETER :: B2ADOF98Hds = 5162
+ INTEGER(IntKi), PARAMETER :: B2ADOF99Hds = 5163
+ INTEGER(IntKi), PARAMETER :: B3ADOF1Hds = 5164
+ INTEGER(IntKi), PARAMETER :: B3ADOF2Hds = 5165
+ INTEGER(IntKi), PARAMETER :: B3ADOF3Hds = 5166
+ INTEGER(IntKi), PARAMETER :: B3ADOF4Hds = 5167
+ INTEGER(IntKi), PARAMETER :: B3ADOF5Hds = 5168
+ INTEGER(IntKi), PARAMETER :: B3ADOF6Hds = 5169
+ INTEGER(IntKi), PARAMETER :: B3ADOF7Hds = 5170
+ INTEGER(IntKi), PARAMETER :: B3ADOF8Hds = 5171
+ INTEGER(IntKi), PARAMETER :: B3ADOF9Hds = 5172
+ INTEGER(IntKi), PARAMETER :: B3ADOF10Hds = 5173
+ INTEGER(IntKi), PARAMETER :: B3ADOF11Hds = 5174
+ INTEGER(IntKi), PARAMETER :: B3ADOF12Hds = 5175
+ INTEGER(IntKi), PARAMETER :: B3ADOF13Hds = 5176
+ INTEGER(IntKi), PARAMETER :: B3ADOF14Hds = 5177
+ INTEGER(IntKi), PARAMETER :: B3ADOF15Hds = 5178
+ INTEGER(IntKi), PARAMETER :: B3ADOF16Hds = 5179
+ INTEGER(IntKi), PARAMETER :: B3ADOF17Hds = 5180
+ INTEGER(IntKi), PARAMETER :: B3ADOF18Hds = 5181
+ INTEGER(IntKi), PARAMETER :: B3ADOF19Hds = 5182
+ INTEGER(IntKi), PARAMETER :: B3ADOF20Hds = 5183
+ INTEGER(IntKi), PARAMETER :: B3ADOF21Hds = 5184
+ INTEGER(IntKi), PARAMETER :: B3ADOF22Hds = 5185
+ INTEGER(IntKi), PARAMETER :: B3ADOF23Hds = 5186
+ INTEGER(IntKi), PARAMETER :: B3ADOF24Hds = 5187
+ INTEGER(IntKi), PARAMETER :: B3ADOF25Hds = 5188
+ INTEGER(IntKi), PARAMETER :: B3ADOF26Hds = 5189
+ INTEGER(IntKi), PARAMETER :: B3ADOF27Hds = 5190
+ INTEGER(IntKi), PARAMETER :: B3ADOF28Hds = 5191
+ INTEGER(IntKi), PARAMETER :: B3ADOF29Hds = 5192
+ INTEGER(IntKi), PARAMETER :: B3ADOF30Hds = 5193
+ INTEGER(IntKi), PARAMETER :: B3ADOF31Hds = 5194
+ INTEGER(IntKi), PARAMETER :: B3ADOF32Hds = 5195
+ INTEGER(IntKi), PARAMETER :: B3ADOF33Hds = 5196
+ INTEGER(IntKi), PARAMETER :: B3ADOF34Hds = 5197
+ INTEGER(IntKi), PARAMETER :: B3ADOF35Hds = 5198
+ INTEGER(IntKi), PARAMETER :: B3ADOF36Hds = 5199
+ INTEGER(IntKi), PARAMETER :: B3ADOF37Hds = 5200
+ INTEGER(IntKi), PARAMETER :: B3ADOF38Hds = 5201
+ INTEGER(IntKi), PARAMETER :: B3ADOF39Hds = 5202
+ INTEGER(IntKi), PARAMETER :: B3ADOF40Hds = 5203
+ INTEGER(IntKi), PARAMETER :: B3ADOF41Hds = 5204
+ INTEGER(IntKi), PARAMETER :: B3ADOF42Hds = 5205
+ INTEGER(IntKi), PARAMETER :: B3ADOF43Hds = 5206
+ INTEGER(IntKi), PARAMETER :: B3ADOF44Hds = 5207
+ INTEGER(IntKi), PARAMETER :: B3ADOF45Hds = 5208
+ INTEGER(IntKi), PARAMETER :: B3ADOF46Hds = 5209
+ INTEGER(IntKi), PARAMETER :: B3ADOF47Hds = 5210
+ INTEGER(IntKi), PARAMETER :: B3ADOF48Hds = 5211
+ INTEGER(IntKi), PARAMETER :: B3ADOF49Hds = 5212
+ INTEGER(IntKi), PARAMETER :: B3ADOF50Hds = 5213
+ INTEGER(IntKi), PARAMETER :: B3ADOF51Hds = 5214
+ INTEGER(IntKi), PARAMETER :: B3ADOF52Hds = 5215
+ INTEGER(IntKi), PARAMETER :: B3ADOF53Hds = 5216
+ INTEGER(IntKi), PARAMETER :: B3ADOF54Hds = 5217
+ INTEGER(IntKi), PARAMETER :: B3ADOF55Hds = 5218
+ INTEGER(IntKi), PARAMETER :: B3ADOF56Hds = 5219
+ INTEGER(IntKi), PARAMETER :: B3ADOF57Hds = 5220
+ INTEGER(IntKi), PARAMETER :: B3ADOF58Hds = 5221
+ INTEGER(IntKi), PARAMETER :: B3ADOF59Hds = 5222
+ INTEGER(IntKi), PARAMETER :: B3ADOF60Hds = 5223
+ INTEGER(IntKi), PARAMETER :: B3ADOF61Hds = 5224
+ INTEGER(IntKi), PARAMETER :: B3ADOF62Hds = 5225
+ INTEGER(IntKi), PARAMETER :: B3ADOF63Hds = 5226
+ INTEGER(IntKi), PARAMETER :: B3ADOF64Hds = 5227
+ INTEGER(IntKi), PARAMETER :: B3ADOF65Hds = 5228
+ INTEGER(IntKi), PARAMETER :: B3ADOF66Hds = 5229
+ INTEGER(IntKi), PARAMETER :: B3ADOF67Hds = 5230
+ INTEGER(IntKi), PARAMETER :: B3ADOF68Hds = 5231
+ INTEGER(IntKi), PARAMETER :: B3ADOF69Hds = 5232
+ INTEGER(IntKi), PARAMETER :: B3ADOF70Hds = 5233
+ INTEGER(IntKi), PARAMETER :: B3ADOF71Hds = 5234
+ INTEGER(IntKi), PARAMETER :: B3ADOF72Hds = 5235
+ INTEGER(IntKi), PARAMETER :: B3ADOF73Hds = 5236
+ INTEGER(IntKi), PARAMETER :: B3ADOF74Hds = 5237
+ INTEGER(IntKi), PARAMETER :: B3ADOF75Hds = 5238
+ INTEGER(IntKi), PARAMETER :: B3ADOF76Hds = 5239
+ INTEGER(IntKi), PARAMETER :: B3ADOF77Hds = 5240
+ INTEGER(IntKi), PARAMETER :: B3ADOF78Hds = 5241
+ INTEGER(IntKi), PARAMETER :: B3ADOF79Hds = 5242
+ INTEGER(IntKi), PARAMETER :: B3ADOF80Hds = 5243
+ INTEGER(IntKi), PARAMETER :: B3ADOF81Hds = 5244
+ INTEGER(IntKi), PARAMETER :: B3ADOF82Hds = 5245
+ INTEGER(IntKi), PARAMETER :: B3ADOF83Hds = 5246
+ INTEGER(IntKi), PARAMETER :: B3ADOF84Hds = 5247
+ INTEGER(IntKi), PARAMETER :: B3ADOF85Hds = 5248
+ INTEGER(IntKi), PARAMETER :: B3ADOF86Hds = 5249
+ INTEGER(IntKi), PARAMETER :: B3ADOF87Hds = 5250
+ INTEGER(IntKi), PARAMETER :: B3ADOF88Hds = 5251
+ INTEGER(IntKi), PARAMETER :: B3ADOF89Hds = 5252
+ INTEGER(IntKi), PARAMETER :: B3ADOF90Hds = 5253
+ INTEGER(IntKi), PARAMETER :: B3ADOF91Hds = 5254
+ INTEGER(IntKi), PARAMETER :: B3ADOF92Hds = 5255
+ INTEGER(IntKi), PARAMETER :: B3ADOF93Hds = 5256
+ INTEGER(IntKi), PARAMETER :: B3ADOF94Hds = 5257
+ INTEGER(IntKi), PARAMETER :: B3ADOF95Hds = 5258
+ INTEGER(IntKi), PARAMETER :: B3ADOF96Hds = 5259
+ INTEGER(IntKi), PARAMETER :: B3ADOF97Hds = 5260
+ INTEGER(IntKi), PARAMETER :: B3ADOF98Hds = 5261
+ INTEGER(IntKi), PARAMETER :: B3ADOF99Hds = 5262
+ INTEGER(IntKi), PARAMETER :: B4ADOF1Hds = 5263
+ INTEGER(IntKi), PARAMETER :: B4ADOF2Hds = 5264
+ INTEGER(IntKi), PARAMETER :: B4ADOF3Hds = 5265
+ INTEGER(IntKi), PARAMETER :: B4ADOF4Hds = 5266
+ INTEGER(IntKi), PARAMETER :: B4ADOF5Hds = 5267
+ INTEGER(IntKi), PARAMETER :: B4ADOF6Hds = 5268
+ INTEGER(IntKi), PARAMETER :: B4ADOF7Hds = 5269
+ INTEGER(IntKi), PARAMETER :: B4ADOF8Hds = 5270
+ INTEGER(IntKi), PARAMETER :: B4ADOF9Hds = 5271
+ INTEGER(IntKi), PARAMETER :: B4ADOF10Hds = 5272
+ INTEGER(IntKi), PARAMETER :: B4ADOF11Hds = 5273
+ INTEGER(IntKi), PARAMETER :: B4ADOF12Hds = 5274
+ INTEGER(IntKi), PARAMETER :: B4ADOF13Hds = 5275
+ INTEGER(IntKi), PARAMETER :: B4ADOF14Hds = 5276
+ INTEGER(IntKi), PARAMETER :: B4ADOF15Hds = 5277
+ INTEGER(IntKi), PARAMETER :: B4ADOF16Hds = 5278
+ INTEGER(IntKi), PARAMETER :: B4ADOF17Hds = 5279
+ INTEGER(IntKi), PARAMETER :: B4ADOF18Hds = 5280
+ INTEGER(IntKi), PARAMETER :: B4ADOF19Hds = 5281
+ INTEGER(IntKi), PARAMETER :: B4ADOF20Hds = 5282
+ INTEGER(IntKi), PARAMETER :: B4ADOF21Hds = 5283
+ INTEGER(IntKi), PARAMETER :: B4ADOF22Hds = 5284
+ INTEGER(IntKi), PARAMETER :: B4ADOF23Hds = 5285
+ INTEGER(IntKi), PARAMETER :: B4ADOF24Hds = 5286
+ INTEGER(IntKi), PARAMETER :: B4ADOF25Hds = 5287
+ INTEGER(IntKi), PARAMETER :: B4ADOF26Hds = 5288
+ INTEGER(IntKi), PARAMETER :: B4ADOF27Hds = 5289
+ INTEGER(IntKi), PARAMETER :: B4ADOF28Hds = 5290
+ INTEGER(IntKi), PARAMETER :: B4ADOF29Hds = 5291
+ INTEGER(IntKi), PARAMETER :: B4ADOF30Hds = 5292
+ INTEGER(IntKi), PARAMETER :: B4ADOF31Hds = 5293
+ INTEGER(IntKi), PARAMETER :: B4ADOF32Hds = 5294
+ INTEGER(IntKi), PARAMETER :: B4ADOF33Hds = 5295
+ INTEGER(IntKi), PARAMETER :: B4ADOF34Hds = 5296
+ INTEGER(IntKi), PARAMETER :: B4ADOF35Hds = 5297
+ INTEGER(IntKi), PARAMETER :: B4ADOF36Hds = 5298
+ INTEGER(IntKi), PARAMETER :: B4ADOF37Hds = 5299
+ INTEGER(IntKi), PARAMETER :: B4ADOF38Hds = 5300
+ INTEGER(IntKi), PARAMETER :: B4ADOF39Hds = 5301
+ INTEGER(IntKi), PARAMETER :: B4ADOF40Hds = 5302
+ INTEGER(IntKi), PARAMETER :: B4ADOF41Hds = 5303
+ INTEGER(IntKi), PARAMETER :: B4ADOF42Hds = 5304
+ INTEGER(IntKi), PARAMETER :: B4ADOF43Hds = 5305
+ INTEGER(IntKi), PARAMETER :: B4ADOF44Hds = 5306
+ INTEGER(IntKi), PARAMETER :: B4ADOF45Hds = 5307
+ INTEGER(IntKi), PARAMETER :: B4ADOF46Hds = 5308
+ INTEGER(IntKi), PARAMETER :: B4ADOF47Hds = 5309
+ INTEGER(IntKi), PARAMETER :: B4ADOF48Hds = 5310
+ INTEGER(IntKi), PARAMETER :: B4ADOF49Hds = 5311
+ INTEGER(IntKi), PARAMETER :: B4ADOF50Hds = 5312
+ INTEGER(IntKi), PARAMETER :: B4ADOF51Hds = 5313
+ INTEGER(IntKi), PARAMETER :: B4ADOF52Hds = 5314
+ INTEGER(IntKi), PARAMETER :: B4ADOF53Hds = 5315
+ INTEGER(IntKi), PARAMETER :: B4ADOF54Hds = 5316
+ INTEGER(IntKi), PARAMETER :: B4ADOF55Hds = 5317
+ INTEGER(IntKi), PARAMETER :: B4ADOF56Hds = 5318
+ INTEGER(IntKi), PARAMETER :: B4ADOF57Hds = 5319
+ INTEGER(IntKi), PARAMETER :: B4ADOF58Hds = 5320
+ INTEGER(IntKi), PARAMETER :: B4ADOF59Hds = 5321
+ INTEGER(IntKi), PARAMETER :: B4ADOF60Hds = 5322
+ INTEGER(IntKi), PARAMETER :: B4ADOF61Hds = 5323
+ INTEGER(IntKi), PARAMETER :: B4ADOF62Hds = 5324
+ INTEGER(IntKi), PARAMETER :: B4ADOF63Hds = 5325
+ INTEGER(IntKi), PARAMETER :: B4ADOF64Hds = 5326
+ INTEGER(IntKi), PARAMETER :: B4ADOF65Hds = 5327
+ INTEGER(IntKi), PARAMETER :: B4ADOF66Hds = 5328
+ INTEGER(IntKi), PARAMETER :: B4ADOF67Hds = 5329
+ INTEGER(IntKi), PARAMETER :: B4ADOF68Hds = 5330
+ INTEGER(IntKi), PARAMETER :: B4ADOF69Hds = 5331
+ INTEGER(IntKi), PARAMETER :: B4ADOF70Hds = 5332
+ INTEGER(IntKi), PARAMETER :: B4ADOF71Hds = 5333
+ INTEGER(IntKi), PARAMETER :: B4ADOF72Hds = 5334
+ INTEGER(IntKi), PARAMETER :: B4ADOF73Hds = 5335
+ INTEGER(IntKi), PARAMETER :: B4ADOF74Hds = 5336
+ INTEGER(IntKi), PARAMETER :: B4ADOF75Hds = 5337
+ INTEGER(IntKi), PARAMETER :: B4ADOF76Hds = 5338
+ INTEGER(IntKi), PARAMETER :: B4ADOF77Hds = 5339
+ INTEGER(IntKi), PARAMETER :: B4ADOF78Hds = 5340
+ INTEGER(IntKi), PARAMETER :: B4ADOF79Hds = 5341
+ INTEGER(IntKi), PARAMETER :: B4ADOF80Hds = 5342
+ INTEGER(IntKi), PARAMETER :: B4ADOF81Hds = 5343
+ INTEGER(IntKi), PARAMETER :: B4ADOF82Hds = 5344
+ INTEGER(IntKi), PARAMETER :: B4ADOF83Hds = 5345
+ INTEGER(IntKi), PARAMETER :: B4ADOF84Hds = 5346
+ INTEGER(IntKi), PARAMETER :: B4ADOF85Hds = 5347
+ INTEGER(IntKi), PARAMETER :: B4ADOF86Hds = 5348
+ INTEGER(IntKi), PARAMETER :: B4ADOF87Hds = 5349
+ INTEGER(IntKi), PARAMETER :: B4ADOF88Hds = 5350
+ INTEGER(IntKi), PARAMETER :: B4ADOF89Hds = 5351
+ INTEGER(IntKi), PARAMETER :: B4ADOF90Hds = 5352
+ INTEGER(IntKi), PARAMETER :: B4ADOF91Hds = 5353
+ INTEGER(IntKi), PARAMETER :: B4ADOF92Hds = 5354
+ INTEGER(IntKi), PARAMETER :: B4ADOF93Hds = 5355
+ INTEGER(IntKi), PARAMETER :: B4ADOF94Hds = 5356
+ INTEGER(IntKi), PARAMETER :: B4ADOF95Hds = 5357
+ INTEGER(IntKi), PARAMETER :: B4ADOF96Hds = 5358
+ INTEGER(IntKi), PARAMETER :: B4ADOF97Hds = 5359
+ INTEGER(IntKi), PARAMETER :: B4ADOF98Hds = 5360
+ INTEGER(IntKi), PARAMETER :: B4ADOF99Hds = 5361
+ INTEGER(IntKi), PARAMETER :: B5ADOF1Hds = 5362
+ INTEGER(IntKi), PARAMETER :: B5ADOF2Hds = 5363
+ INTEGER(IntKi), PARAMETER :: B5ADOF3Hds = 5364
+ INTEGER(IntKi), PARAMETER :: B5ADOF4Hds = 5365
+ INTEGER(IntKi), PARAMETER :: B5ADOF5Hds = 5366
+ INTEGER(IntKi), PARAMETER :: B5ADOF6Hds = 5367
+ INTEGER(IntKi), PARAMETER :: B5ADOF7Hds = 5368
+ INTEGER(IntKi), PARAMETER :: B5ADOF8Hds = 5369
+ INTEGER(IntKi), PARAMETER :: B5ADOF9Hds = 5370
+ INTEGER(IntKi), PARAMETER :: B5ADOF10Hds = 5371
+ INTEGER(IntKi), PARAMETER :: B5ADOF11Hds = 5372
+ INTEGER(IntKi), PARAMETER :: B5ADOF12Hds = 5373
+ INTEGER(IntKi), PARAMETER :: B5ADOF13Hds = 5374
+ INTEGER(IntKi), PARAMETER :: B5ADOF14Hds = 5375
+ INTEGER(IntKi), PARAMETER :: B5ADOF15Hds = 5376
+ INTEGER(IntKi), PARAMETER :: B5ADOF16Hds = 5377
+ INTEGER(IntKi), PARAMETER :: B5ADOF17Hds = 5378
+ INTEGER(IntKi), PARAMETER :: B5ADOF18Hds = 5379
+ INTEGER(IntKi), PARAMETER :: B5ADOF19Hds = 5380
+ INTEGER(IntKi), PARAMETER :: B5ADOF20Hds = 5381
+ INTEGER(IntKi), PARAMETER :: B5ADOF21Hds = 5382
+ INTEGER(IntKi), PARAMETER :: B5ADOF22Hds = 5383
+ INTEGER(IntKi), PARAMETER :: B5ADOF23Hds = 5384
+ INTEGER(IntKi), PARAMETER :: B5ADOF24Hds = 5385
+ INTEGER(IntKi), PARAMETER :: B5ADOF25Hds = 5386
+ INTEGER(IntKi), PARAMETER :: B5ADOF26Hds = 5387
+ INTEGER(IntKi), PARAMETER :: B5ADOF27Hds = 5388
+ INTEGER(IntKi), PARAMETER :: B5ADOF28Hds = 5389
+ INTEGER(IntKi), PARAMETER :: B5ADOF29Hds = 5390
+ INTEGER(IntKi), PARAMETER :: B5ADOF30Hds = 5391
+ INTEGER(IntKi), PARAMETER :: B5ADOF31Hds = 5392
+ INTEGER(IntKi), PARAMETER :: B5ADOF32Hds = 5393
+ INTEGER(IntKi), PARAMETER :: B5ADOF33Hds = 5394
+ INTEGER(IntKi), PARAMETER :: B5ADOF34Hds = 5395
+ INTEGER(IntKi), PARAMETER :: B5ADOF35Hds = 5396
+ INTEGER(IntKi), PARAMETER :: B5ADOF36Hds = 5397
+ INTEGER(IntKi), PARAMETER :: B5ADOF37Hds = 5398
+ INTEGER(IntKi), PARAMETER :: B5ADOF38Hds = 5399
+ INTEGER(IntKi), PARAMETER :: B5ADOF39Hds = 5400
+ INTEGER(IntKi), PARAMETER :: B5ADOF40Hds = 5401
+ INTEGER(IntKi), PARAMETER :: B5ADOF41Hds = 5402
+ INTEGER(IntKi), PARAMETER :: B5ADOF42Hds = 5403
+ INTEGER(IntKi), PARAMETER :: B5ADOF43Hds = 5404
+ INTEGER(IntKi), PARAMETER :: B5ADOF44Hds = 5405
+ INTEGER(IntKi), PARAMETER :: B5ADOF45Hds = 5406
+ INTEGER(IntKi), PARAMETER :: B5ADOF46Hds = 5407
+ INTEGER(IntKi), PARAMETER :: B5ADOF47Hds = 5408
+ INTEGER(IntKi), PARAMETER :: B5ADOF48Hds = 5409
+ INTEGER(IntKi), PARAMETER :: B5ADOF49Hds = 5410
+ INTEGER(IntKi), PARAMETER :: B5ADOF50Hds = 5411
+ INTEGER(IntKi), PARAMETER :: B5ADOF51Hds = 5412
+ INTEGER(IntKi), PARAMETER :: B5ADOF52Hds = 5413
+ INTEGER(IntKi), PARAMETER :: B5ADOF53Hds = 5414
+ INTEGER(IntKi), PARAMETER :: B5ADOF54Hds = 5415
+ INTEGER(IntKi), PARAMETER :: B5ADOF55Hds = 5416
+ INTEGER(IntKi), PARAMETER :: B5ADOF56Hds = 5417
+ INTEGER(IntKi), PARAMETER :: B5ADOF57Hds = 5418
+ INTEGER(IntKi), PARAMETER :: B5ADOF58Hds = 5419
+ INTEGER(IntKi), PARAMETER :: B5ADOF59Hds = 5420
+ INTEGER(IntKi), PARAMETER :: B5ADOF60Hds = 5421
+ INTEGER(IntKi), PARAMETER :: B5ADOF61Hds = 5422
+ INTEGER(IntKi), PARAMETER :: B5ADOF62Hds = 5423
+ INTEGER(IntKi), PARAMETER :: B5ADOF63Hds = 5424
+ INTEGER(IntKi), PARAMETER :: B5ADOF64Hds = 5425
+ INTEGER(IntKi), PARAMETER :: B5ADOF65Hds = 5426
+ INTEGER(IntKi), PARAMETER :: B5ADOF66Hds = 5427
+ INTEGER(IntKi), PARAMETER :: B5ADOF67Hds = 5428
+ INTEGER(IntKi), PARAMETER :: B5ADOF68Hds = 5429
+ INTEGER(IntKi), PARAMETER :: B5ADOF69Hds = 5430
+ INTEGER(IntKi), PARAMETER :: B5ADOF70Hds = 5431
+ INTEGER(IntKi), PARAMETER :: B5ADOF71Hds = 5432
+ INTEGER(IntKi), PARAMETER :: B5ADOF72Hds = 5433
+ INTEGER(IntKi), PARAMETER :: B5ADOF73Hds = 5434
+ INTEGER(IntKi), PARAMETER :: B5ADOF74Hds = 5435
+ INTEGER(IntKi), PARAMETER :: B5ADOF75Hds = 5436
+ INTEGER(IntKi), PARAMETER :: B5ADOF76Hds = 5437
+ INTEGER(IntKi), PARAMETER :: B5ADOF77Hds = 5438
+ INTEGER(IntKi), PARAMETER :: B5ADOF78Hds = 5439
+ INTEGER(IntKi), PARAMETER :: B5ADOF79Hds = 5440
+ INTEGER(IntKi), PARAMETER :: B5ADOF80Hds = 5441
+ INTEGER(IntKi), PARAMETER :: B5ADOF81Hds = 5442
+ INTEGER(IntKi), PARAMETER :: B5ADOF82Hds = 5443
+ INTEGER(IntKi), PARAMETER :: B5ADOF83Hds = 5444
+ INTEGER(IntKi), PARAMETER :: B5ADOF84Hds = 5445
+ INTEGER(IntKi), PARAMETER :: B5ADOF85Hds = 5446
+ INTEGER(IntKi), PARAMETER :: B5ADOF86Hds = 5447
+ INTEGER(IntKi), PARAMETER :: B5ADOF87Hds = 5448
+ INTEGER(IntKi), PARAMETER :: B5ADOF88Hds = 5449
+ INTEGER(IntKi), PARAMETER :: B5ADOF89Hds = 5450
+ INTEGER(IntKi), PARAMETER :: B5ADOF90Hds = 5451
+ INTEGER(IntKi), PARAMETER :: B5ADOF91Hds = 5452
+ INTEGER(IntKi), PARAMETER :: B5ADOF92Hds = 5453
+ INTEGER(IntKi), PARAMETER :: B5ADOF93Hds = 5454
+ INTEGER(IntKi), PARAMETER :: B5ADOF94Hds = 5455
+ INTEGER(IntKi), PARAMETER :: B5ADOF95Hds = 5456
+ INTEGER(IntKi), PARAMETER :: B5ADOF96Hds = 5457
+ INTEGER(IntKi), PARAMETER :: B5ADOF97Hds = 5458
+ INTEGER(IntKi), PARAMETER :: B5ADOF98Hds = 5459
+ INTEGER(IntKi), PARAMETER :: B5ADOF99Hds = 5460
+ INTEGER(IntKi), PARAMETER :: B6ADOF1Hds = 5461
+ INTEGER(IntKi), PARAMETER :: B6ADOF2Hds = 5462
+ INTEGER(IntKi), PARAMETER :: B6ADOF3Hds = 5463
+ INTEGER(IntKi), PARAMETER :: B6ADOF4Hds = 5464
+ INTEGER(IntKi), PARAMETER :: B6ADOF5Hds = 5465
+ INTEGER(IntKi), PARAMETER :: B6ADOF6Hds = 5466
+ INTEGER(IntKi), PARAMETER :: B6ADOF7Hds = 5467
+ INTEGER(IntKi), PARAMETER :: B6ADOF8Hds = 5468
+ INTEGER(IntKi), PARAMETER :: B6ADOF9Hds = 5469
+ INTEGER(IntKi), PARAMETER :: B6ADOF10Hds = 5470
+ INTEGER(IntKi), PARAMETER :: B6ADOF11Hds = 5471
+ INTEGER(IntKi), PARAMETER :: B6ADOF12Hds = 5472
+ INTEGER(IntKi), PARAMETER :: B6ADOF13Hds = 5473
+ INTEGER(IntKi), PARAMETER :: B6ADOF14Hds = 5474
+ INTEGER(IntKi), PARAMETER :: B6ADOF15Hds = 5475
+ INTEGER(IntKi), PARAMETER :: B6ADOF16Hds = 5476
+ INTEGER(IntKi), PARAMETER :: B6ADOF17Hds = 5477
+ INTEGER(IntKi), PARAMETER :: B6ADOF18Hds = 5478
+ INTEGER(IntKi), PARAMETER :: B6ADOF19Hds = 5479
+ INTEGER(IntKi), PARAMETER :: B6ADOF20Hds = 5480
+ INTEGER(IntKi), PARAMETER :: B6ADOF21Hds = 5481
+ INTEGER(IntKi), PARAMETER :: B6ADOF22Hds = 5482
+ INTEGER(IntKi), PARAMETER :: B6ADOF23Hds = 5483
+ INTEGER(IntKi), PARAMETER :: B6ADOF24Hds = 5484
+ INTEGER(IntKi), PARAMETER :: B6ADOF25Hds = 5485
+ INTEGER(IntKi), PARAMETER :: B6ADOF26Hds = 5486
+ INTEGER(IntKi), PARAMETER :: B6ADOF27Hds = 5487
+ INTEGER(IntKi), PARAMETER :: B6ADOF28Hds = 5488
+ INTEGER(IntKi), PARAMETER :: B6ADOF29Hds = 5489
+ INTEGER(IntKi), PARAMETER :: B6ADOF30Hds = 5490
+ INTEGER(IntKi), PARAMETER :: B6ADOF31Hds = 5491
+ INTEGER(IntKi), PARAMETER :: B6ADOF32Hds = 5492
+ INTEGER(IntKi), PARAMETER :: B6ADOF33Hds = 5493
+ INTEGER(IntKi), PARAMETER :: B6ADOF34Hds = 5494
+ INTEGER(IntKi), PARAMETER :: B6ADOF35Hds = 5495
+ INTEGER(IntKi), PARAMETER :: B6ADOF36Hds = 5496
+ INTEGER(IntKi), PARAMETER :: B6ADOF37Hds = 5497
+ INTEGER(IntKi), PARAMETER :: B6ADOF38Hds = 5498
+ INTEGER(IntKi), PARAMETER :: B6ADOF39Hds = 5499
+ INTEGER(IntKi), PARAMETER :: B6ADOF40Hds = 5500
+ INTEGER(IntKi), PARAMETER :: B6ADOF41Hds = 5501
+ INTEGER(IntKi), PARAMETER :: B6ADOF42Hds = 5502
+ INTEGER(IntKi), PARAMETER :: B6ADOF43Hds = 5503
+ INTEGER(IntKi), PARAMETER :: B6ADOF44Hds = 5504
+ INTEGER(IntKi), PARAMETER :: B6ADOF45Hds = 5505
+ INTEGER(IntKi), PARAMETER :: B6ADOF46Hds = 5506
+ INTEGER(IntKi), PARAMETER :: B6ADOF47Hds = 5507
+ INTEGER(IntKi), PARAMETER :: B6ADOF48Hds = 5508
+ INTEGER(IntKi), PARAMETER :: B6ADOF49Hds = 5509
+ INTEGER(IntKi), PARAMETER :: B6ADOF50Hds = 5510
+ INTEGER(IntKi), PARAMETER :: B6ADOF51Hds = 5511
+ INTEGER(IntKi), PARAMETER :: B6ADOF52Hds = 5512
+ INTEGER(IntKi), PARAMETER :: B6ADOF53Hds = 5513
+ INTEGER(IntKi), PARAMETER :: B6ADOF54Hds = 5514
+ INTEGER(IntKi), PARAMETER :: B6ADOF55Hds = 5515
+ INTEGER(IntKi), PARAMETER :: B6ADOF56Hds = 5516
+ INTEGER(IntKi), PARAMETER :: B6ADOF57Hds = 5517
+ INTEGER(IntKi), PARAMETER :: B6ADOF58Hds = 5518
+ INTEGER(IntKi), PARAMETER :: B6ADOF59Hds = 5519
+ INTEGER(IntKi), PARAMETER :: B6ADOF60Hds = 5520
+ INTEGER(IntKi), PARAMETER :: B6ADOF61Hds = 5521
+ INTEGER(IntKi), PARAMETER :: B6ADOF62Hds = 5522
+ INTEGER(IntKi), PARAMETER :: B6ADOF63Hds = 5523
+ INTEGER(IntKi), PARAMETER :: B6ADOF64Hds = 5524
+ INTEGER(IntKi), PARAMETER :: B6ADOF65Hds = 5525
+ INTEGER(IntKi), PARAMETER :: B6ADOF66Hds = 5526
+ INTEGER(IntKi), PARAMETER :: B6ADOF67Hds = 5527
+ INTEGER(IntKi), PARAMETER :: B6ADOF68Hds = 5528
+ INTEGER(IntKi), PARAMETER :: B6ADOF69Hds = 5529
+ INTEGER(IntKi), PARAMETER :: B6ADOF70Hds = 5530
+ INTEGER(IntKi), PARAMETER :: B6ADOF71Hds = 5531
+ INTEGER(IntKi), PARAMETER :: B6ADOF72Hds = 5532
+ INTEGER(IntKi), PARAMETER :: B6ADOF73Hds = 5533
+ INTEGER(IntKi), PARAMETER :: B6ADOF74Hds = 5534
+ INTEGER(IntKi), PARAMETER :: B6ADOF75Hds = 5535
+ INTEGER(IntKi), PARAMETER :: B6ADOF76Hds = 5536
+ INTEGER(IntKi), PARAMETER :: B6ADOF77Hds = 5537
+ INTEGER(IntKi), PARAMETER :: B6ADOF78Hds = 5538
+ INTEGER(IntKi), PARAMETER :: B6ADOF79Hds = 5539
+ INTEGER(IntKi), PARAMETER :: B6ADOF80Hds = 5540
+ INTEGER(IntKi), PARAMETER :: B6ADOF81Hds = 5541
+ INTEGER(IntKi), PARAMETER :: B6ADOF82Hds = 5542
+ INTEGER(IntKi), PARAMETER :: B6ADOF83Hds = 5543
+ INTEGER(IntKi), PARAMETER :: B6ADOF84Hds = 5544
+ INTEGER(IntKi), PARAMETER :: B6ADOF85Hds = 5545
+ INTEGER(IntKi), PARAMETER :: B6ADOF86Hds = 5546
+ INTEGER(IntKi), PARAMETER :: B6ADOF87Hds = 5547
+ INTEGER(IntKi), PARAMETER :: B6ADOF88Hds = 5548
+ INTEGER(IntKi), PARAMETER :: B6ADOF89Hds = 5549
+ INTEGER(IntKi), PARAMETER :: B6ADOF90Hds = 5550
+ INTEGER(IntKi), PARAMETER :: B6ADOF91Hds = 5551
+ INTEGER(IntKi), PARAMETER :: B6ADOF92Hds = 5552
+ INTEGER(IntKi), PARAMETER :: B6ADOF93Hds = 5553
+ INTEGER(IntKi), PARAMETER :: B6ADOF94Hds = 5554
+ INTEGER(IntKi), PARAMETER :: B6ADOF95Hds = 5555
+ INTEGER(IntKi), PARAMETER :: B6ADOF96Hds = 5556
+ INTEGER(IntKi), PARAMETER :: B6ADOF97Hds = 5557
+ INTEGER(IntKi), PARAMETER :: B6ADOF98Hds = 5558
+ INTEGER(IntKi), PARAMETER :: B6ADOF99Hds = 5559
+ INTEGER(IntKi), PARAMETER :: B7ADOF1Hds = 5560
+ INTEGER(IntKi), PARAMETER :: B7ADOF2Hds = 5561
+ INTEGER(IntKi), PARAMETER :: B7ADOF3Hds = 5562
+ INTEGER(IntKi), PARAMETER :: B7ADOF4Hds = 5563
+ INTEGER(IntKi), PARAMETER :: B7ADOF5Hds = 5564
+ INTEGER(IntKi), PARAMETER :: B7ADOF6Hds = 5565
+ INTEGER(IntKi), PARAMETER :: B7ADOF7Hds = 5566
+ INTEGER(IntKi), PARAMETER :: B7ADOF8Hds = 5567
+ INTEGER(IntKi), PARAMETER :: B7ADOF9Hds = 5568
+ INTEGER(IntKi), PARAMETER :: B7ADOF10Hds = 5569
+ INTEGER(IntKi), PARAMETER :: B7ADOF11Hds = 5570
+ INTEGER(IntKi), PARAMETER :: B7ADOF12Hds = 5571
+ INTEGER(IntKi), PARAMETER :: B7ADOF13Hds = 5572
+ INTEGER(IntKi), PARAMETER :: B7ADOF14Hds = 5573
+ INTEGER(IntKi), PARAMETER :: B7ADOF15Hds = 5574
+ INTEGER(IntKi), PARAMETER :: B7ADOF16Hds = 5575
+ INTEGER(IntKi), PARAMETER :: B7ADOF17Hds = 5576
+ INTEGER(IntKi), PARAMETER :: B7ADOF18Hds = 5577
+ INTEGER(IntKi), PARAMETER :: B7ADOF19Hds = 5578
+ INTEGER(IntKi), PARAMETER :: B7ADOF20Hds = 5579
+ INTEGER(IntKi), PARAMETER :: B7ADOF21Hds = 5580
+ INTEGER(IntKi), PARAMETER :: B7ADOF22Hds = 5581
+ INTEGER(IntKi), PARAMETER :: B7ADOF23Hds = 5582
+ INTEGER(IntKi), PARAMETER :: B7ADOF24Hds = 5583
+ INTEGER(IntKi), PARAMETER :: B7ADOF25Hds = 5584
+ INTEGER(IntKi), PARAMETER :: B7ADOF26Hds = 5585
+ INTEGER(IntKi), PARAMETER :: B7ADOF27Hds = 5586
+ INTEGER(IntKi), PARAMETER :: B7ADOF28Hds = 5587
+ INTEGER(IntKi), PARAMETER :: B7ADOF29Hds = 5588
+ INTEGER(IntKi), PARAMETER :: B7ADOF30Hds = 5589
+ INTEGER(IntKi), PARAMETER :: B7ADOF31Hds = 5590
+ INTEGER(IntKi), PARAMETER :: B7ADOF32Hds = 5591
+ INTEGER(IntKi), PARAMETER :: B7ADOF33Hds = 5592
+ INTEGER(IntKi), PARAMETER :: B7ADOF34Hds = 5593
+ INTEGER(IntKi), PARAMETER :: B7ADOF35Hds = 5594
+ INTEGER(IntKi), PARAMETER :: B7ADOF36Hds = 5595
+ INTEGER(IntKi), PARAMETER :: B7ADOF37Hds = 5596
+ INTEGER(IntKi), PARAMETER :: B7ADOF38Hds = 5597
+ INTEGER(IntKi), PARAMETER :: B7ADOF39Hds = 5598
+ INTEGER(IntKi), PARAMETER :: B7ADOF40Hds = 5599
+ INTEGER(IntKi), PARAMETER :: B7ADOF41Hds = 5600
+ INTEGER(IntKi), PARAMETER :: B7ADOF42Hds = 5601
+ INTEGER(IntKi), PARAMETER :: B7ADOF43Hds = 5602
+ INTEGER(IntKi), PARAMETER :: B7ADOF44Hds = 5603
+ INTEGER(IntKi), PARAMETER :: B7ADOF45Hds = 5604
+ INTEGER(IntKi), PARAMETER :: B7ADOF46Hds = 5605
+ INTEGER(IntKi), PARAMETER :: B7ADOF47Hds = 5606
+ INTEGER(IntKi), PARAMETER :: B7ADOF48Hds = 5607
+ INTEGER(IntKi), PARAMETER :: B7ADOF49Hds = 5608
+ INTEGER(IntKi), PARAMETER :: B7ADOF50Hds = 5609
+ INTEGER(IntKi), PARAMETER :: B7ADOF51Hds = 5610
+ INTEGER(IntKi), PARAMETER :: B7ADOF52Hds = 5611
+ INTEGER(IntKi), PARAMETER :: B7ADOF53Hds = 5612
+ INTEGER(IntKi), PARAMETER :: B7ADOF54Hds = 5613
+ INTEGER(IntKi), PARAMETER :: B7ADOF55Hds = 5614
+ INTEGER(IntKi), PARAMETER :: B7ADOF56Hds = 5615
+ INTEGER(IntKi), PARAMETER :: B7ADOF57Hds = 5616
+ INTEGER(IntKi), PARAMETER :: B7ADOF58Hds = 5617
+ INTEGER(IntKi), PARAMETER :: B7ADOF59Hds = 5618
+ INTEGER(IntKi), PARAMETER :: B7ADOF60Hds = 5619
+ INTEGER(IntKi), PARAMETER :: B7ADOF61Hds = 5620
+ INTEGER(IntKi), PARAMETER :: B7ADOF62Hds = 5621
+ INTEGER(IntKi), PARAMETER :: B7ADOF63Hds = 5622
+ INTEGER(IntKi), PARAMETER :: B7ADOF64Hds = 5623
+ INTEGER(IntKi), PARAMETER :: B7ADOF65Hds = 5624
+ INTEGER(IntKi), PARAMETER :: B7ADOF66Hds = 5625
+ INTEGER(IntKi), PARAMETER :: B7ADOF67Hds = 5626
+ INTEGER(IntKi), PARAMETER :: B7ADOF68Hds = 5627
+ INTEGER(IntKi), PARAMETER :: B7ADOF69Hds = 5628
+ INTEGER(IntKi), PARAMETER :: B7ADOF70Hds = 5629
+ INTEGER(IntKi), PARAMETER :: B7ADOF71Hds = 5630
+ INTEGER(IntKi), PARAMETER :: B7ADOF72Hds = 5631
+ INTEGER(IntKi), PARAMETER :: B7ADOF73Hds = 5632
+ INTEGER(IntKi), PARAMETER :: B7ADOF74Hds = 5633
+ INTEGER(IntKi), PARAMETER :: B7ADOF75Hds = 5634
+ INTEGER(IntKi), PARAMETER :: B7ADOF76Hds = 5635
+ INTEGER(IntKi), PARAMETER :: B7ADOF77Hds = 5636
+ INTEGER(IntKi), PARAMETER :: B7ADOF78Hds = 5637
+ INTEGER(IntKi), PARAMETER :: B7ADOF79Hds = 5638
+ INTEGER(IntKi), PARAMETER :: B7ADOF80Hds = 5639
+ INTEGER(IntKi), PARAMETER :: B7ADOF81Hds = 5640
+ INTEGER(IntKi), PARAMETER :: B7ADOF82Hds = 5641
+ INTEGER(IntKi), PARAMETER :: B7ADOF83Hds = 5642
+ INTEGER(IntKi), PARAMETER :: B7ADOF84Hds = 5643
+ INTEGER(IntKi), PARAMETER :: B7ADOF85Hds = 5644
+ INTEGER(IntKi), PARAMETER :: B7ADOF86Hds = 5645
+ INTEGER(IntKi), PARAMETER :: B7ADOF87Hds = 5646
+ INTEGER(IntKi), PARAMETER :: B7ADOF88Hds = 5647
+ INTEGER(IntKi), PARAMETER :: B7ADOF89Hds = 5648
+ INTEGER(IntKi), PARAMETER :: B7ADOF90Hds = 5649
+ INTEGER(IntKi), PARAMETER :: B7ADOF91Hds = 5650
+ INTEGER(IntKi), PARAMETER :: B7ADOF92Hds = 5651
+ INTEGER(IntKi), PARAMETER :: B7ADOF93Hds = 5652
+ INTEGER(IntKi), PARAMETER :: B7ADOF94Hds = 5653
+ INTEGER(IntKi), PARAMETER :: B7ADOF95Hds = 5654
+ INTEGER(IntKi), PARAMETER :: B7ADOF96Hds = 5655
+ INTEGER(IntKi), PARAMETER :: B7ADOF97Hds = 5656
+ INTEGER(IntKi), PARAMETER :: B7ADOF98Hds = 5657
+ INTEGER(IntKi), PARAMETER :: B7ADOF99Hds = 5658
+ INTEGER(IntKi), PARAMETER :: B8ADOF1Hds = 5659
+ INTEGER(IntKi), PARAMETER :: B8ADOF2Hds = 5660
+ INTEGER(IntKi), PARAMETER :: B8ADOF3Hds = 5661
+ INTEGER(IntKi), PARAMETER :: B8ADOF4Hds = 5662
+ INTEGER(IntKi), PARAMETER :: B8ADOF5Hds = 5663
+ INTEGER(IntKi), PARAMETER :: B8ADOF6Hds = 5664
+ INTEGER(IntKi), PARAMETER :: B8ADOF7Hds = 5665
+ INTEGER(IntKi), PARAMETER :: B8ADOF8Hds = 5666
+ INTEGER(IntKi), PARAMETER :: B8ADOF9Hds = 5667
+ INTEGER(IntKi), PARAMETER :: B8ADOF10Hds = 5668
+ INTEGER(IntKi), PARAMETER :: B8ADOF11Hds = 5669
+ INTEGER(IntKi), PARAMETER :: B8ADOF12Hds = 5670
+ INTEGER(IntKi), PARAMETER :: B8ADOF13Hds = 5671
+ INTEGER(IntKi), PARAMETER :: B8ADOF14Hds = 5672
+ INTEGER(IntKi), PARAMETER :: B8ADOF15Hds = 5673
+ INTEGER(IntKi), PARAMETER :: B8ADOF16Hds = 5674
+ INTEGER(IntKi), PARAMETER :: B8ADOF17Hds = 5675
+ INTEGER(IntKi), PARAMETER :: B8ADOF18Hds = 5676
+ INTEGER(IntKi), PARAMETER :: B8ADOF19Hds = 5677
+ INTEGER(IntKi), PARAMETER :: B8ADOF20Hds = 5678
+ INTEGER(IntKi), PARAMETER :: B8ADOF21Hds = 5679
+ INTEGER(IntKi), PARAMETER :: B8ADOF22Hds = 5680
+ INTEGER(IntKi), PARAMETER :: B8ADOF23Hds = 5681
+ INTEGER(IntKi), PARAMETER :: B8ADOF24Hds = 5682
+ INTEGER(IntKi), PARAMETER :: B8ADOF25Hds = 5683
+ INTEGER(IntKi), PARAMETER :: B8ADOF26Hds = 5684
+ INTEGER(IntKi), PARAMETER :: B8ADOF27Hds = 5685
+ INTEGER(IntKi), PARAMETER :: B8ADOF28Hds = 5686
+ INTEGER(IntKi), PARAMETER :: B8ADOF29Hds = 5687
+ INTEGER(IntKi), PARAMETER :: B8ADOF30Hds = 5688
+ INTEGER(IntKi), PARAMETER :: B8ADOF31Hds = 5689
+ INTEGER(IntKi), PARAMETER :: B8ADOF32Hds = 5690
+ INTEGER(IntKi), PARAMETER :: B8ADOF33Hds = 5691
+ INTEGER(IntKi), PARAMETER :: B8ADOF34Hds = 5692
+ INTEGER(IntKi), PARAMETER :: B8ADOF35Hds = 5693
+ INTEGER(IntKi), PARAMETER :: B8ADOF36Hds = 5694
+ INTEGER(IntKi), PARAMETER :: B8ADOF37Hds = 5695
+ INTEGER(IntKi), PARAMETER :: B8ADOF38Hds = 5696
+ INTEGER(IntKi), PARAMETER :: B8ADOF39Hds = 5697
+ INTEGER(IntKi), PARAMETER :: B8ADOF40Hds = 5698
+ INTEGER(IntKi), PARAMETER :: B8ADOF41Hds = 5699
+ INTEGER(IntKi), PARAMETER :: B8ADOF42Hds = 5700
+ INTEGER(IntKi), PARAMETER :: B8ADOF43Hds = 5701
+ INTEGER(IntKi), PARAMETER :: B8ADOF44Hds = 5702
+ INTEGER(IntKi), PARAMETER :: B8ADOF45Hds = 5703
+ INTEGER(IntKi), PARAMETER :: B8ADOF46Hds = 5704
+ INTEGER(IntKi), PARAMETER :: B8ADOF47Hds = 5705
+ INTEGER(IntKi), PARAMETER :: B8ADOF48Hds = 5706
+ INTEGER(IntKi), PARAMETER :: B8ADOF49Hds = 5707
+ INTEGER(IntKi), PARAMETER :: B8ADOF50Hds = 5708
+ INTEGER(IntKi), PARAMETER :: B8ADOF51Hds = 5709
+ INTEGER(IntKi), PARAMETER :: B8ADOF52Hds = 5710
+ INTEGER(IntKi), PARAMETER :: B8ADOF53Hds = 5711
+ INTEGER(IntKi), PARAMETER :: B8ADOF54Hds = 5712
+ INTEGER(IntKi), PARAMETER :: B8ADOF55Hds = 5713
+ INTEGER(IntKi), PARAMETER :: B8ADOF56Hds = 5714
+ INTEGER(IntKi), PARAMETER :: B8ADOF57Hds = 5715
+ INTEGER(IntKi), PARAMETER :: B8ADOF58Hds = 5716
+ INTEGER(IntKi), PARAMETER :: B8ADOF59Hds = 5717
+ INTEGER(IntKi), PARAMETER :: B8ADOF60Hds = 5718
+ INTEGER(IntKi), PARAMETER :: B8ADOF61Hds = 5719
+ INTEGER(IntKi), PARAMETER :: B8ADOF62Hds = 5720
+ INTEGER(IntKi), PARAMETER :: B8ADOF63Hds = 5721
+ INTEGER(IntKi), PARAMETER :: B8ADOF64Hds = 5722
+ INTEGER(IntKi), PARAMETER :: B8ADOF65Hds = 5723
+ INTEGER(IntKi), PARAMETER :: B8ADOF66Hds = 5724
+ INTEGER(IntKi), PARAMETER :: B8ADOF67Hds = 5725
+ INTEGER(IntKi), PARAMETER :: B8ADOF68Hds = 5726
+ INTEGER(IntKi), PARAMETER :: B8ADOF69Hds = 5727
+ INTEGER(IntKi), PARAMETER :: B8ADOF70Hds = 5728
+ INTEGER(IntKi), PARAMETER :: B8ADOF71Hds = 5729
+ INTEGER(IntKi), PARAMETER :: B8ADOF72Hds = 5730
+ INTEGER(IntKi), PARAMETER :: B8ADOF73Hds = 5731
+ INTEGER(IntKi), PARAMETER :: B8ADOF74Hds = 5732
+ INTEGER(IntKi), PARAMETER :: B8ADOF75Hds = 5733
+ INTEGER(IntKi), PARAMETER :: B8ADOF76Hds = 5734
+ INTEGER(IntKi), PARAMETER :: B8ADOF77Hds = 5735
+ INTEGER(IntKi), PARAMETER :: B8ADOF78Hds = 5736
+ INTEGER(IntKi), PARAMETER :: B8ADOF79Hds = 5737
+ INTEGER(IntKi), PARAMETER :: B8ADOF80Hds = 5738
+ INTEGER(IntKi), PARAMETER :: B8ADOF81Hds = 5739
+ INTEGER(IntKi), PARAMETER :: B8ADOF82Hds = 5740
+ INTEGER(IntKi), PARAMETER :: B8ADOF83Hds = 5741
+ INTEGER(IntKi), PARAMETER :: B8ADOF84Hds = 5742
+ INTEGER(IntKi), PARAMETER :: B8ADOF85Hds = 5743
+ INTEGER(IntKi), PARAMETER :: B8ADOF86Hds = 5744
+ INTEGER(IntKi), PARAMETER :: B8ADOF87Hds = 5745
+ INTEGER(IntKi), PARAMETER :: B8ADOF88Hds = 5746
+ INTEGER(IntKi), PARAMETER :: B8ADOF89Hds = 5747
+ INTEGER(IntKi), PARAMETER :: B8ADOF90Hds = 5748
+ INTEGER(IntKi), PARAMETER :: B8ADOF91Hds = 5749
+ INTEGER(IntKi), PARAMETER :: B8ADOF92Hds = 5750
+ INTEGER(IntKi), PARAMETER :: B8ADOF93Hds = 5751
+ INTEGER(IntKi), PARAMETER :: B8ADOF94Hds = 5752
+ INTEGER(IntKi), PARAMETER :: B8ADOF95Hds = 5753
+ INTEGER(IntKi), PARAMETER :: B8ADOF96Hds = 5754
+ INTEGER(IntKi), PARAMETER :: B8ADOF97Hds = 5755
+ INTEGER(IntKi), PARAMETER :: B8ADOF98Hds = 5756
+ INTEGER(IntKi), PARAMETER :: B8ADOF99Hds = 5757
+ INTEGER(IntKi), PARAMETER :: B9ADOF1Hds = 5758
+ INTEGER(IntKi), PARAMETER :: B9ADOF2Hds = 5759
+ INTEGER(IntKi), PARAMETER :: B9ADOF3Hds = 5760
+ INTEGER(IntKi), PARAMETER :: B9ADOF4Hds = 5761
+ INTEGER(IntKi), PARAMETER :: B9ADOF5Hds = 5762
+ INTEGER(IntKi), PARAMETER :: B9ADOF6Hds = 5763
+ INTEGER(IntKi), PARAMETER :: B9ADOF7Hds = 5764
+ INTEGER(IntKi), PARAMETER :: B9ADOF8Hds = 5765
+ INTEGER(IntKi), PARAMETER :: B9ADOF9Hds = 5766
+ INTEGER(IntKi), PARAMETER :: B9ADOF10Hds = 5767
+ INTEGER(IntKi), PARAMETER :: B9ADOF11Hds = 5768
+ INTEGER(IntKi), PARAMETER :: B9ADOF12Hds = 5769
+ INTEGER(IntKi), PARAMETER :: B9ADOF13Hds = 5770
+ INTEGER(IntKi), PARAMETER :: B9ADOF14Hds = 5771
+ INTEGER(IntKi), PARAMETER :: B9ADOF15Hds = 5772
+ INTEGER(IntKi), PARAMETER :: B9ADOF16Hds = 5773
+ INTEGER(IntKi), PARAMETER :: B9ADOF17Hds = 5774
+ INTEGER(IntKi), PARAMETER :: B9ADOF18Hds = 5775
+ INTEGER(IntKi), PARAMETER :: B9ADOF19Hds = 5776
+ INTEGER(IntKi), PARAMETER :: B9ADOF20Hds = 5777
+ INTEGER(IntKi), PARAMETER :: B9ADOF21Hds = 5778
+ INTEGER(IntKi), PARAMETER :: B9ADOF22Hds = 5779
+ INTEGER(IntKi), PARAMETER :: B9ADOF23Hds = 5780
+ INTEGER(IntKi), PARAMETER :: B9ADOF24Hds = 5781
+ INTEGER(IntKi), PARAMETER :: B9ADOF25Hds = 5782
+ INTEGER(IntKi), PARAMETER :: B9ADOF26Hds = 5783
+ INTEGER(IntKi), PARAMETER :: B9ADOF27Hds = 5784
+ INTEGER(IntKi), PARAMETER :: B9ADOF28Hds = 5785
+ INTEGER(IntKi), PARAMETER :: B9ADOF29Hds = 5786
+ INTEGER(IntKi), PARAMETER :: B9ADOF30Hds = 5787
+ INTEGER(IntKi), PARAMETER :: B9ADOF31Hds = 5788
+ INTEGER(IntKi), PARAMETER :: B9ADOF32Hds = 5789
+ INTEGER(IntKi), PARAMETER :: B9ADOF33Hds = 5790
+ INTEGER(IntKi), PARAMETER :: B9ADOF34Hds = 5791
+ INTEGER(IntKi), PARAMETER :: B9ADOF35Hds = 5792
+ INTEGER(IntKi), PARAMETER :: B9ADOF36Hds = 5793
+ INTEGER(IntKi), PARAMETER :: B9ADOF37Hds = 5794
+ INTEGER(IntKi), PARAMETER :: B9ADOF38Hds = 5795
+ INTEGER(IntKi), PARAMETER :: B9ADOF39Hds = 5796
+ INTEGER(IntKi), PARAMETER :: B9ADOF40Hds = 5797
+ INTEGER(IntKi), PARAMETER :: B9ADOF41Hds = 5798
+ INTEGER(IntKi), PARAMETER :: B9ADOF42Hds = 5799
+ INTEGER(IntKi), PARAMETER :: B9ADOF43Hds = 5800
+ INTEGER(IntKi), PARAMETER :: B9ADOF44Hds = 5801
+ INTEGER(IntKi), PARAMETER :: B9ADOF45Hds = 5802
+ INTEGER(IntKi), PARAMETER :: B9ADOF46Hds = 5803
+ INTEGER(IntKi), PARAMETER :: B9ADOF47Hds = 5804
+ INTEGER(IntKi), PARAMETER :: B9ADOF48Hds = 5805
+ INTEGER(IntKi), PARAMETER :: B9ADOF49Hds = 5806
+ INTEGER(IntKi), PARAMETER :: B9ADOF50Hds = 5807
+ INTEGER(IntKi), PARAMETER :: B9ADOF51Hds = 5808
+ INTEGER(IntKi), PARAMETER :: B9ADOF52Hds = 5809
+ INTEGER(IntKi), PARAMETER :: B9ADOF53Hds = 5810
+ INTEGER(IntKi), PARAMETER :: B9ADOF54Hds = 5811
+ INTEGER(IntKi), PARAMETER :: B9ADOF55Hds = 5812
+ INTEGER(IntKi), PARAMETER :: B9ADOF56Hds = 5813
+ INTEGER(IntKi), PARAMETER :: B9ADOF57Hds = 5814
+ INTEGER(IntKi), PARAMETER :: B9ADOF58Hds = 5815
+ INTEGER(IntKi), PARAMETER :: B9ADOF59Hds = 5816
+ INTEGER(IntKi), PARAMETER :: B9ADOF60Hds = 5817
+ INTEGER(IntKi), PARAMETER :: B9ADOF61Hds = 5818
+ INTEGER(IntKi), PARAMETER :: B9ADOF62Hds = 5819
+ INTEGER(IntKi), PARAMETER :: B9ADOF63Hds = 5820
+ INTEGER(IntKi), PARAMETER :: B9ADOF64Hds = 5821
+ INTEGER(IntKi), PARAMETER :: B9ADOF65Hds = 5822
+ INTEGER(IntKi), PARAMETER :: B9ADOF66Hds = 5823
+ INTEGER(IntKi), PARAMETER :: B9ADOF67Hds = 5824
+ INTEGER(IntKi), PARAMETER :: B9ADOF68Hds = 5825
+ INTEGER(IntKi), PARAMETER :: B9ADOF69Hds = 5826
+ INTEGER(IntKi), PARAMETER :: B9ADOF70Hds = 5827
+ INTEGER(IntKi), PARAMETER :: B9ADOF71Hds = 5828
+ INTEGER(IntKi), PARAMETER :: B9ADOF72Hds = 5829
+ INTEGER(IntKi), PARAMETER :: B9ADOF73Hds = 5830
+ INTEGER(IntKi), PARAMETER :: B9ADOF74Hds = 5831
+ INTEGER(IntKi), PARAMETER :: B9ADOF75Hds = 5832
+ INTEGER(IntKi), PARAMETER :: B9ADOF76Hds = 5833
+ INTEGER(IntKi), PARAMETER :: B9ADOF77Hds = 5834
+ INTEGER(IntKi), PARAMETER :: B9ADOF78Hds = 5835
+ INTEGER(IntKi), PARAMETER :: B9ADOF79Hds = 5836
+ INTEGER(IntKi), PARAMETER :: B9ADOF80Hds = 5837
+ INTEGER(IntKi), PARAMETER :: B9ADOF81Hds = 5838
+ INTEGER(IntKi), PARAMETER :: B9ADOF82Hds = 5839
+ INTEGER(IntKi), PARAMETER :: B9ADOF83Hds = 5840
+ INTEGER(IntKi), PARAMETER :: B9ADOF84Hds = 5841
+ INTEGER(IntKi), PARAMETER :: B9ADOF85Hds = 5842
+ INTEGER(IntKi), PARAMETER :: B9ADOF86Hds = 5843
+ INTEGER(IntKi), PARAMETER :: B9ADOF87Hds = 5844
+ INTEGER(IntKi), PARAMETER :: B9ADOF88Hds = 5845
+ INTEGER(IntKi), PARAMETER :: B9ADOF89Hds = 5846
+ INTEGER(IntKi), PARAMETER :: B9ADOF90Hds = 5847
+ INTEGER(IntKi), PARAMETER :: B9ADOF91Hds = 5848
+ INTEGER(IntKi), PARAMETER :: B9ADOF92Hds = 5849
+ INTEGER(IntKi), PARAMETER :: B9ADOF93Hds = 5850
+ INTEGER(IntKi), PARAMETER :: B9ADOF94Hds = 5851
+ INTEGER(IntKi), PARAMETER :: B9ADOF95Hds = 5852
+ INTEGER(IntKi), PARAMETER :: B9ADOF96Hds = 5853
+ INTEGER(IntKi), PARAMETER :: B9ADOF97Hds = 5854
+ INTEGER(IntKi), PARAMETER :: B9ADOF98Hds = 5855
+ INTEGER(IntKi), PARAMETER :: B9ADOF99Hds = 5856
+ INTEGER(IntKi), PARAMETER :: B1ADOF1Wvs = 5857
+ INTEGER(IntKi), PARAMETER :: B1ADOF2Wvs = 5858
+ INTEGER(IntKi), PARAMETER :: B1ADOF3Wvs = 5859
+ INTEGER(IntKi), PARAMETER :: B1ADOF4Wvs = 5860
+ INTEGER(IntKi), PARAMETER :: B1ADOF5Wvs = 5861
+ INTEGER(IntKi), PARAMETER :: B1ADOF6Wvs = 5862
+ INTEGER(IntKi), PARAMETER :: B1ADOF7Wvs = 5863
+ INTEGER(IntKi), PARAMETER :: B1ADOF8Wvs = 5864
+ INTEGER(IntKi), PARAMETER :: B1ADOF9Wvs = 5865
+ INTEGER(IntKi), PARAMETER :: B1ADOF10Wvs = 5866
+ INTEGER(IntKi), PARAMETER :: B1ADOF11Wvs = 5867
+ INTEGER(IntKi), PARAMETER :: B1ADOF12Wvs = 5868
+ INTEGER(IntKi), PARAMETER :: B1ADOF13Wvs = 5869
+ INTEGER(IntKi), PARAMETER :: B1ADOF14Wvs = 5870
+ INTEGER(IntKi), PARAMETER :: B1ADOF15Wvs = 5871
+ INTEGER(IntKi), PARAMETER :: B1ADOF16Wvs = 5872
+ INTEGER(IntKi), PARAMETER :: B1ADOF17Wvs = 5873
+ INTEGER(IntKi), PARAMETER :: B1ADOF18Wvs = 5874
+ INTEGER(IntKi), PARAMETER :: B1ADOF19Wvs = 5875
+ INTEGER(IntKi), PARAMETER :: B1ADOF20Wvs = 5876
+ INTEGER(IntKi), PARAMETER :: B1ADOF21Wvs = 5877
+ INTEGER(IntKi), PARAMETER :: B1ADOF22Wvs = 5878
+ INTEGER(IntKi), PARAMETER :: B1ADOF23Wvs = 5879
+ INTEGER(IntKi), PARAMETER :: B1ADOF24Wvs = 5880
+ INTEGER(IntKi), PARAMETER :: B1ADOF25Wvs = 5881
+ INTEGER(IntKi), PARAMETER :: B1ADOF26Wvs = 5882
+ INTEGER(IntKi), PARAMETER :: B1ADOF27Wvs = 5883
+ INTEGER(IntKi), PARAMETER :: B1ADOF28Wvs = 5884
+ INTEGER(IntKi), PARAMETER :: B1ADOF29Wvs = 5885
+ INTEGER(IntKi), PARAMETER :: B1ADOF30Wvs = 5886
+ INTEGER(IntKi), PARAMETER :: B1ADOF31Wvs = 5887
+ INTEGER(IntKi), PARAMETER :: B1ADOF32Wvs = 5888
+ INTEGER(IntKi), PARAMETER :: B1ADOF33Wvs = 5889
+ INTEGER(IntKi), PARAMETER :: B1ADOF34Wvs = 5890
+ INTEGER(IntKi), PARAMETER :: B1ADOF35Wvs = 5891
+ INTEGER(IntKi), PARAMETER :: B1ADOF36Wvs = 5892
+ INTEGER(IntKi), PARAMETER :: B1ADOF37Wvs = 5893
+ INTEGER(IntKi), PARAMETER :: B1ADOF38Wvs = 5894
+ INTEGER(IntKi), PARAMETER :: B1ADOF39Wvs = 5895
+ INTEGER(IntKi), PARAMETER :: B1ADOF40Wvs = 5896
+ INTEGER(IntKi), PARAMETER :: B1ADOF41Wvs = 5897
+ INTEGER(IntKi), PARAMETER :: B1ADOF42Wvs = 5898
+ INTEGER(IntKi), PARAMETER :: B1ADOF43Wvs = 5899
+ INTEGER(IntKi), PARAMETER :: B1ADOF44Wvs = 5900
+ INTEGER(IntKi), PARAMETER :: B1ADOF45Wvs = 5901
+ INTEGER(IntKi), PARAMETER :: B1ADOF46Wvs = 5902
+ INTEGER(IntKi), PARAMETER :: B1ADOF47Wvs = 5903
+ INTEGER(IntKi), PARAMETER :: B1ADOF48Wvs = 5904
+ INTEGER(IntKi), PARAMETER :: B1ADOF49Wvs = 5905
+ INTEGER(IntKi), PARAMETER :: B1ADOF50Wvs = 5906
+ INTEGER(IntKi), PARAMETER :: B1ADOF51Wvs = 5907
+ INTEGER(IntKi), PARAMETER :: B1ADOF52Wvs = 5908
+ INTEGER(IntKi), PARAMETER :: B1ADOF53Wvs = 5909
+ INTEGER(IntKi), PARAMETER :: B1ADOF54Wvs = 5910
+ INTEGER(IntKi), PARAMETER :: B1ADOF55Wvs = 5911
+ INTEGER(IntKi), PARAMETER :: B1ADOF56Wvs = 5912
+ INTEGER(IntKi), PARAMETER :: B1ADOF57Wvs = 5913
+ INTEGER(IntKi), PARAMETER :: B1ADOF58Wvs = 5914
+ INTEGER(IntKi), PARAMETER :: B1ADOF59Wvs = 5915
+ INTEGER(IntKi), PARAMETER :: B1ADOF60Wvs = 5916
+ INTEGER(IntKi), PARAMETER :: B1ADOF61Wvs = 5917
+ INTEGER(IntKi), PARAMETER :: B1ADOF62Wvs = 5918
+ INTEGER(IntKi), PARAMETER :: B1ADOF63Wvs = 5919
+ INTEGER(IntKi), PARAMETER :: B1ADOF64Wvs = 5920
+ INTEGER(IntKi), PARAMETER :: B1ADOF65Wvs = 5921
+ INTEGER(IntKi), PARAMETER :: B1ADOF66Wvs = 5922
+ INTEGER(IntKi), PARAMETER :: B1ADOF67Wvs = 5923
+ INTEGER(IntKi), PARAMETER :: B1ADOF68Wvs = 5924
+ INTEGER(IntKi), PARAMETER :: B1ADOF69Wvs = 5925
+ INTEGER(IntKi), PARAMETER :: B1ADOF70Wvs = 5926
+ INTEGER(IntKi), PARAMETER :: B1ADOF71Wvs = 5927
+ INTEGER(IntKi), PARAMETER :: B1ADOF72Wvs = 5928
+ INTEGER(IntKi), PARAMETER :: B1ADOF73Wvs = 5929
+ INTEGER(IntKi), PARAMETER :: B1ADOF74Wvs = 5930
+ INTEGER(IntKi), PARAMETER :: B1ADOF75Wvs = 5931
+ INTEGER(IntKi), PARAMETER :: B1ADOF76Wvs = 5932
+ INTEGER(IntKi), PARAMETER :: B1ADOF77Wvs = 5933
+ INTEGER(IntKi), PARAMETER :: B1ADOF78Wvs = 5934
+ INTEGER(IntKi), PARAMETER :: B1ADOF79Wvs = 5935
+ INTEGER(IntKi), PARAMETER :: B1ADOF80Wvs = 5936
+ INTEGER(IntKi), PARAMETER :: B1ADOF81Wvs = 5937
+ INTEGER(IntKi), PARAMETER :: B1ADOF82Wvs = 5938
+ INTEGER(IntKi), PARAMETER :: B1ADOF83Wvs = 5939
+ INTEGER(IntKi), PARAMETER :: B1ADOF84Wvs = 5940
+ INTEGER(IntKi), PARAMETER :: B1ADOF85Wvs = 5941
+ INTEGER(IntKi), PARAMETER :: B1ADOF86Wvs = 5942
+ INTEGER(IntKi), PARAMETER :: B1ADOF87Wvs = 5943
+ INTEGER(IntKi), PARAMETER :: B1ADOF88Wvs = 5944
+ INTEGER(IntKi), PARAMETER :: B1ADOF89Wvs = 5945
+ INTEGER(IntKi), PARAMETER :: B1ADOF90Wvs = 5946
+ INTEGER(IntKi), PARAMETER :: B1ADOF91Wvs = 5947
+ INTEGER(IntKi), PARAMETER :: B1ADOF92Wvs = 5948
+ INTEGER(IntKi), PARAMETER :: B1ADOF93Wvs = 5949
+ INTEGER(IntKi), PARAMETER :: B1ADOF94Wvs = 5950
+ INTEGER(IntKi), PARAMETER :: B1ADOF95Wvs = 5951
+ INTEGER(IntKi), PARAMETER :: B1ADOF96Wvs = 5952
+ INTEGER(IntKi), PARAMETER :: B1ADOF97Wvs = 5953
+ INTEGER(IntKi), PARAMETER :: B1ADOF98Wvs = 5954
+ INTEGER(IntKi), PARAMETER :: B1ADOF99Wvs = 5955
+ INTEGER(IntKi), PARAMETER :: B2ADOF1Wvs = 5956
+ INTEGER(IntKi), PARAMETER :: B2ADOF2Wvs = 5957
+ INTEGER(IntKi), PARAMETER :: B2ADOF3Wvs = 5958
+ INTEGER(IntKi), PARAMETER :: B2ADOF4Wvs = 5959
+ INTEGER(IntKi), PARAMETER :: B2ADOF5Wvs = 5960
+ INTEGER(IntKi), PARAMETER :: B2ADOF6Wvs = 5961
+ INTEGER(IntKi), PARAMETER :: B2ADOF7Wvs = 5962
+ INTEGER(IntKi), PARAMETER :: B2ADOF8Wvs = 5963
+ INTEGER(IntKi), PARAMETER :: B2ADOF9Wvs = 5964
+ INTEGER(IntKi), PARAMETER :: B2ADOF10Wvs = 5965
+ INTEGER(IntKi), PARAMETER :: B2ADOF11Wvs = 5966
+ INTEGER(IntKi), PARAMETER :: B2ADOF12Wvs = 5967
+ INTEGER(IntKi), PARAMETER :: B2ADOF13Wvs = 5968
+ INTEGER(IntKi), PARAMETER :: B2ADOF14Wvs = 5969
+ INTEGER(IntKi), PARAMETER :: B2ADOF15Wvs = 5970
+ INTEGER(IntKi), PARAMETER :: B2ADOF16Wvs = 5971
+ INTEGER(IntKi), PARAMETER :: B2ADOF17Wvs = 5972
+ INTEGER(IntKi), PARAMETER :: B2ADOF18Wvs = 5973
+ INTEGER(IntKi), PARAMETER :: B2ADOF19Wvs = 5974
+ INTEGER(IntKi), PARAMETER :: B2ADOF20Wvs = 5975
+ INTEGER(IntKi), PARAMETER :: B2ADOF21Wvs = 5976
+ INTEGER(IntKi), PARAMETER :: B2ADOF22Wvs = 5977
+ INTEGER(IntKi), PARAMETER :: B2ADOF23Wvs = 5978
+ INTEGER(IntKi), PARAMETER :: B2ADOF24Wvs = 5979
+ INTEGER(IntKi), PARAMETER :: B2ADOF25Wvs = 5980
+ INTEGER(IntKi), PARAMETER :: B2ADOF26Wvs = 5981
+ INTEGER(IntKi), PARAMETER :: B2ADOF27Wvs = 5982
+ INTEGER(IntKi), PARAMETER :: B2ADOF28Wvs = 5983
+ INTEGER(IntKi), PARAMETER :: B2ADOF29Wvs = 5984
+ INTEGER(IntKi), PARAMETER :: B2ADOF30Wvs = 5985
+ INTEGER(IntKi), PARAMETER :: B2ADOF31Wvs = 5986
+ INTEGER(IntKi), PARAMETER :: B2ADOF32Wvs = 5987
+ INTEGER(IntKi), PARAMETER :: B2ADOF33Wvs = 5988
+ INTEGER(IntKi), PARAMETER :: B2ADOF34Wvs = 5989
+ INTEGER(IntKi), PARAMETER :: B2ADOF35Wvs = 5990
+ INTEGER(IntKi), PARAMETER :: B2ADOF36Wvs = 5991
+ INTEGER(IntKi), PARAMETER :: B2ADOF37Wvs = 5992
+ INTEGER(IntKi), PARAMETER :: B2ADOF38Wvs = 5993
+ INTEGER(IntKi), PARAMETER :: B2ADOF39Wvs = 5994
+ INTEGER(IntKi), PARAMETER :: B2ADOF40Wvs = 5995
+ INTEGER(IntKi), PARAMETER :: B2ADOF41Wvs = 5996
+ INTEGER(IntKi), PARAMETER :: B2ADOF42Wvs = 5997
+ INTEGER(IntKi), PARAMETER :: B2ADOF43Wvs = 5998
+ INTEGER(IntKi), PARAMETER :: B2ADOF44Wvs = 5999
+ INTEGER(IntKi), PARAMETER :: B2ADOF45Wvs = 6000
+ INTEGER(IntKi), PARAMETER :: B2ADOF46Wvs = 6001
+ INTEGER(IntKi), PARAMETER :: B2ADOF47Wvs = 6002
+ INTEGER(IntKi), PARAMETER :: B2ADOF48Wvs = 6003
+ INTEGER(IntKi), PARAMETER :: B2ADOF49Wvs = 6004
+ INTEGER(IntKi), PARAMETER :: B2ADOF50Wvs = 6005
+ INTEGER(IntKi), PARAMETER :: B2ADOF51Wvs = 6006
+ INTEGER(IntKi), PARAMETER :: B2ADOF52Wvs = 6007
+ INTEGER(IntKi), PARAMETER :: B2ADOF53Wvs = 6008
+ INTEGER(IntKi), PARAMETER :: B2ADOF54Wvs = 6009
+ INTEGER(IntKi), PARAMETER :: B2ADOF55Wvs = 6010
+ INTEGER(IntKi), PARAMETER :: B2ADOF56Wvs = 6011
+ INTEGER(IntKi), PARAMETER :: B2ADOF57Wvs = 6012
+ INTEGER(IntKi), PARAMETER :: B2ADOF58Wvs = 6013
+ INTEGER(IntKi), PARAMETER :: B2ADOF59Wvs = 6014
+ INTEGER(IntKi), PARAMETER :: B2ADOF60Wvs = 6015
+ INTEGER(IntKi), PARAMETER :: B2ADOF61Wvs = 6016
+ INTEGER(IntKi), PARAMETER :: B2ADOF62Wvs = 6017
+ INTEGER(IntKi), PARAMETER :: B2ADOF63Wvs = 6018
+ INTEGER(IntKi), PARAMETER :: B2ADOF64Wvs = 6019
+ INTEGER(IntKi), PARAMETER :: B2ADOF65Wvs = 6020
+ INTEGER(IntKi), PARAMETER :: B2ADOF66Wvs = 6021
+ INTEGER(IntKi), PARAMETER :: B2ADOF67Wvs = 6022
+ INTEGER(IntKi), PARAMETER :: B2ADOF68Wvs = 6023
+ INTEGER(IntKi), PARAMETER :: B2ADOF69Wvs = 6024
+ INTEGER(IntKi), PARAMETER :: B2ADOF70Wvs = 6025
+ INTEGER(IntKi), PARAMETER :: B2ADOF71Wvs = 6026
+ INTEGER(IntKi), PARAMETER :: B2ADOF72Wvs = 6027
+ INTEGER(IntKi), PARAMETER :: B2ADOF73Wvs = 6028
+ INTEGER(IntKi), PARAMETER :: B2ADOF74Wvs = 6029
+ INTEGER(IntKi), PARAMETER :: B2ADOF75Wvs = 6030
+ INTEGER(IntKi), PARAMETER :: B2ADOF76Wvs = 6031
+ INTEGER(IntKi), PARAMETER :: B2ADOF77Wvs = 6032
+ INTEGER(IntKi), PARAMETER :: B2ADOF78Wvs = 6033
+ INTEGER(IntKi), PARAMETER :: B2ADOF79Wvs = 6034
+ INTEGER(IntKi), PARAMETER :: B2ADOF80Wvs = 6035
+ INTEGER(IntKi), PARAMETER :: B2ADOF81Wvs = 6036
+ INTEGER(IntKi), PARAMETER :: B2ADOF82Wvs = 6037
+ INTEGER(IntKi), PARAMETER :: B2ADOF83Wvs = 6038
+ INTEGER(IntKi), PARAMETER :: B2ADOF84Wvs = 6039
+ INTEGER(IntKi), PARAMETER :: B2ADOF85Wvs = 6040
+ INTEGER(IntKi), PARAMETER :: B2ADOF86Wvs = 6041
+ INTEGER(IntKi), PARAMETER :: B2ADOF87Wvs = 6042
+ INTEGER(IntKi), PARAMETER :: B2ADOF88Wvs = 6043
+ INTEGER(IntKi), PARAMETER :: B2ADOF89Wvs = 6044
+ INTEGER(IntKi), PARAMETER :: B2ADOF90Wvs = 6045
+ INTEGER(IntKi), PARAMETER :: B2ADOF91Wvs = 6046
+ INTEGER(IntKi), PARAMETER :: B2ADOF92Wvs = 6047
+ INTEGER(IntKi), PARAMETER :: B2ADOF93Wvs = 6048
+ INTEGER(IntKi), PARAMETER :: B2ADOF94Wvs = 6049
+ INTEGER(IntKi), PARAMETER :: B2ADOF95Wvs = 6050
+ INTEGER(IntKi), PARAMETER :: B2ADOF96Wvs = 6051
+ INTEGER(IntKi), PARAMETER :: B2ADOF97Wvs = 6052
+ INTEGER(IntKi), PARAMETER :: B2ADOF98Wvs = 6053
+ INTEGER(IntKi), PARAMETER :: B2ADOF99Wvs = 6054
+ INTEGER(IntKi), PARAMETER :: B3ADOF1Wvs = 6055
+ INTEGER(IntKi), PARAMETER :: B3ADOF2Wvs = 6056
+ INTEGER(IntKi), PARAMETER :: B3ADOF3Wvs = 6057
+ INTEGER(IntKi), PARAMETER :: B3ADOF4Wvs = 6058
+ INTEGER(IntKi), PARAMETER :: B3ADOF5Wvs = 6059
+ INTEGER(IntKi), PARAMETER :: B3ADOF6Wvs = 6060
+ INTEGER(IntKi), PARAMETER :: B3ADOF7Wvs = 6061
+ INTEGER(IntKi), PARAMETER :: B3ADOF8Wvs = 6062
+ INTEGER(IntKi), PARAMETER :: B3ADOF9Wvs = 6063
+ INTEGER(IntKi), PARAMETER :: B3ADOF10Wvs = 6064
+ INTEGER(IntKi), PARAMETER :: B3ADOF11Wvs = 6065
+ INTEGER(IntKi), PARAMETER :: B3ADOF12Wvs = 6066
+ INTEGER(IntKi), PARAMETER :: B3ADOF13Wvs = 6067
+ INTEGER(IntKi), PARAMETER :: B3ADOF14Wvs = 6068
+ INTEGER(IntKi), PARAMETER :: B3ADOF15Wvs = 6069
+ INTEGER(IntKi), PARAMETER :: B3ADOF16Wvs = 6070
+ INTEGER(IntKi), PARAMETER :: B3ADOF17Wvs = 6071
+ INTEGER(IntKi), PARAMETER :: B3ADOF18Wvs = 6072
+ INTEGER(IntKi), PARAMETER :: B3ADOF19Wvs = 6073
+ INTEGER(IntKi), PARAMETER :: B3ADOF20Wvs = 6074
+ INTEGER(IntKi), PARAMETER :: B3ADOF21Wvs = 6075
+ INTEGER(IntKi), PARAMETER :: B3ADOF22Wvs = 6076
+ INTEGER(IntKi), PARAMETER :: B3ADOF23Wvs = 6077
+ INTEGER(IntKi), PARAMETER :: B3ADOF24Wvs = 6078
+ INTEGER(IntKi), PARAMETER :: B3ADOF25Wvs = 6079
+ INTEGER(IntKi), PARAMETER :: B3ADOF26Wvs = 6080
+ INTEGER(IntKi), PARAMETER :: B3ADOF27Wvs = 6081
+ INTEGER(IntKi), PARAMETER :: B3ADOF28Wvs = 6082
+ INTEGER(IntKi), PARAMETER :: B3ADOF29Wvs = 6083
+ INTEGER(IntKi), PARAMETER :: B3ADOF30Wvs = 6084
+ INTEGER(IntKi), PARAMETER :: B3ADOF31Wvs = 6085
+ INTEGER(IntKi), PARAMETER :: B3ADOF32Wvs = 6086
+ INTEGER(IntKi), PARAMETER :: B3ADOF33Wvs = 6087
+ INTEGER(IntKi), PARAMETER :: B3ADOF34Wvs = 6088
+ INTEGER(IntKi), PARAMETER :: B3ADOF35Wvs = 6089
+ INTEGER(IntKi), PARAMETER :: B3ADOF36Wvs = 6090
+ INTEGER(IntKi), PARAMETER :: B3ADOF37Wvs = 6091
+ INTEGER(IntKi), PARAMETER :: B3ADOF38Wvs = 6092
+ INTEGER(IntKi), PARAMETER :: B3ADOF39Wvs = 6093
+ INTEGER(IntKi), PARAMETER :: B3ADOF40Wvs = 6094
+ INTEGER(IntKi), PARAMETER :: B3ADOF41Wvs = 6095
+ INTEGER(IntKi), PARAMETER :: B3ADOF42Wvs = 6096
+ INTEGER(IntKi), PARAMETER :: B3ADOF43Wvs = 6097
+ INTEGER(IntKi), PARAMETER :: B3ADOF44Wvs = 6098
+ INTEGER(IntKi), PARAMETER :: B3ADOF45Wvs = 6099
+ INTEGER(IntKi), PARAMETER :: B3ADOF46Wvs = 6100
+ INTEGER(IntKi), PARAMETER :: B3ADOF47Wvs = 6101
+ INTEGER(IntKi), PARAMETER :: B3ADOF48Wvs = 6102
+ INTEGER(IntKi), PARAMETER :: B3ADOF49Wvs = 6103
+ INTEGER(IntKi), PARAMETER :: B3ADOF50Wvs = 6104
+ INTEGER(IntKi), PARAMETER :: B3ADOF51Wvs = 6105
+ INTEGER(IntKi), PARAMETER :: B3ADOF52Wvs = 6106
+ INTEGER(IntKi), PARAMETER :: B3ADOF53Wvs = 6107
+ INTEGER(IntKi), PARAMETER :: B3ADOF54Wvs = 6108
+ INTEGER(IntKi), PARAMETER :: B3ADOF55Wvs = 6109
+ INTEGER(IntKi), PARAMETER :: B3ADOF56Wvs = 6110
+ INTEGER(IntKi), PARAMETER :: B3ADOF57Wvs = 6111
+ INTEGER(IntKi), PARAMETER :: B3ADOF58Wvs = 6112
+ INTEGER(IntKi), PARAMETER :: B3ADOF59Wvs = 6113
+ INTEGER(IntKi), PARAMETER :: B3ADOF60Wvs = 6114
+ INTEGER(IntKi), PARAMETER :: B3ADOF61Wvs = 6115
+ INTEGER(IntKi), PARAMETER :: B3ADOF62Wvs = 6116
+ INTEGER(IntKi), PARAMETER :: B3ADOF63Wvs = 6117
+ INTEGER(IntKi), PARAMETER :: B3ADOF64Wvs = 6118
+ INTEGER(IntKi), PARAMETER :: B3ADOF65Wvs = 6119
+ INTEGER(IntKi), PARAMETER :: B3ADOF66Wvs = 6120
+ INTEGER(IntKi), PARAMETER :: B3ADOF67Wvs = 6121
+ INTEGER(IntKi), PARAMETER :: B3ADOF68Wvs = 6122
+ INTEGER(IntKi), PARAMETER :: B3ADOF69Wvs = 6123
+ INTEGER(IntKi), PARAMETER :: B3ADOF70Wvs = 6124
+ INTEGER(IntKi), PARAMETER :: B3ADOF71Wvs = 6125
+ INTEGER(IntKi), PARAMETER :: B3ADOF72Wvs = 6126
+ INTEGER(IntKi), PARAMETER :: B3ADOF73Wvs = 6127
+ INTEGER(IntKi), PARAMETER :: B3ADOF74Wvs = 6128
+ INTEGER(IntKi), PARAMETER :: B3ADOF75Wvs = 6129
+ INTEGER(IntKi), PARAMETER :: B3ADOF76Wvs = 6130
+ INTEGER(IntKi), PARAMETER :: B3ADOF77Wvs = 6131
+ INTEGER(IntKi), PARAMETER :: B3ADOF78Wvs = 6132
+ INTEGER(IntKi), PARAMETER :: B3ADOF79Wvs = 6133
+ INTEGER(IntKi), PARAMETER :: B3ADOF80Wvs = 6134
+ INTEGER(IntKi), PARAMETER :: B3ADOF81Wvs = 6135
+ INTEGER(IntKi), PARAMETER :: B3ADOF82Wvs = 6136
+ INTEGER(IntKi), PARAMETER :: B3ADOF83Wvs = 6137
+ INTEGER(IntKi), PARAMETER :: B3ADOF84Wvs = 6138
+ INTEGER(IntKi), PARAMETER :: B3ADOF85Wvs = 6139
+ INTEGER(IntKi), PARAMETER :: B3ADOF86Wvs = 6140
+ INTEGER(IntKi), PARAMETER :: B3ADOF87Wvs = 6141
+ INTEGER(IntKi), PARAMETER :: B3ADOF88Wvs = 6142
+ INTEGER(IntKi), PARAMETER :: B3ADOF89Wvs = 6143
+ INTEGER(IntKi), PARAMETER :: B3ADOF90Wvs = 6144
+ INTEGER(IntKi), PARAMETER :: B3ADOF91Wvs = 6145
+ INTEGER(IntKi), PARAMETER :: B3ADOF92Wvs = 6146
+ INTEGER(IntKi), PARAMETER :: B3ADOF93Wvs = 6147
+ INTEGER(IntKi), PARAMETER :: B3ADOF94Wvs = 6148
+ INTEGER(IntKi), PARAMETER :: B3ADOF95Wvs = 6149
+ INTEGER(IntKi), PARAMETER :: B3ADOF96Wvs = 6150
+ INTEGER(IntKi), PARAMETER :: B3ADOF97Wvs = 6151
+ INTEGER(IntKi), PARAMETER :: B3ADOF98Wvs = 6152
+ INTEGER(IntKi), PARAMETER :: B3ADOF99Wvs = 6153
+ INTEGER(IntKi), PARAMETER :: B4ADOF1Wvs = 6154
+ INTEGER(IntKi), PARAMETER :: B4ADOF2Wvs = 6155
+ INTEGER(IntKi), PARAMETER :: B4ADOF3Wvs = 6156
+ INTEGER(IntKi), PARAMETER :: B4ADOF4Wvs = 6157
+ INTEGER(IntKi), PARAMETER :: B4ADOF5Wvs = 6158
+ INTEGER(IntKi), PARAMETER :: B4ADOF6Wvs = 6159
+ INTEGER(IntKi), PARAMETER :: B4ADOF7Wvs = 6160
+ INTEGER(IntKi), PARAMETER :: B4ADOF8Wvs = 6161
+ INTEGER(IntKi), PARAMETER :: B4ADOF9Wvs = 6162
+ INTEGER(IntKi), PARAMETER :: B4ADOF10Wvs = 6163
+ INTEGER(IntKi), PARAMETER :: B4ADOF11Wvs = 6164
+ INTEGER(IntKi), PARAMETER :: B4ADOF12Wvs = 6165
+ INTEGER(IntKi), PARAMETER :: B4ADOF13Wvs = 6166
+ INTEGER(IntKi), PARAMETER :: B4ADOF14Wvs = 6167
+ INTEGER(IntKi), PARAMETER :: B4ADOF15Wvs = 6168
+ INTEGER(IntKi), PARAMETER :: B4ADOF16Wvs = 6169
+ INTEGER(IntKi), PARAMETER :: B4ADOF17Wvs = 6170
+ INTEGER(IntKi), PARAMETER :: B4ADOF18Wvs = 6171
+ INTEGER(IntKi), PARAMETER :: B4ADOF19Wvs = 6172
+ INTEGER(IntKi), PARAMETER :: B4ADOF20Wvs = 6173
+ INTEGER(IntKi), PARAMETER :: B4ADOF21Wvs = 6174
+ INTEGER(IntKi), PARAMETER :: B4ADOF22Wvs = 6175
+ INTEGER(IntKi), PARAMETER :: B4ADOF23Wvs = 6176
+ INTEGER(IntKi), PARAMETER :: B4ADOF24Wvs = 6177
+ INTEGER(IntKi), PARAMETER :: B4ADOF25Wvs = 6178
+ INTEGER(IntKi), PARAMETER :: B4ADOF26Wvs = 6179
+ INTEGER(IntKi), PARAMETER :: B4ADOF27Wvs = 6180
+ INTEGER(IntKi), PARAMETER :: B4ADOF28Wvs = 6181
+ INTEGER(IntKi), PARAMETER :: B4ADOF29Wvs = 6182
+ INTEGER(IntKi), PARAMETER :: B4ADOF30Wvs = 6183
+ INTEGER(IntKi), PARAMETER :: B4ADOF31Wvs = 6184
+ INTEGER(IntKi), PARAMETER :: B4ADOF32Wvs = 6185
+ INTEGER(IntKi), PARAMETER :: B4ADOF33Wvs = 6186
+ INTEGER(IntKi), PARAMETER :: B4ADOF34Wvs = 6187
+ INTEGER(IntKi), PARAMETER :: B4ADOF35Wvs = 6188
+ INTEGER(IntKi), PARAMETER :: B4ADOF36Wvs = 6189
+ INTEGER(IntKi), PARAMETER :: B4ADOF37Wvs = 6190
+ INTEGER(IntKi), PARAMETER :: B4ADOF38Wvs = 6191
+ INTEGER(IntKi), PARAMETER :: B4ADOF39Wvs = 6192
+ INTEGER(IntKi), PARAMETER :: B4ADOF40Wvs = 6193
+ INTEGER(IntKi), PARAMETER :: B4ADOF41Wvs = 6194
+ INTEGER(IntKi), PARAMETER :: B4ADOF42Wvs = 6195
+ INTEGER(IntKi), PARAMETER :: B4ADOF43Wvs = 6196
+ INTEGER(IntKi), PARAMETER :: B4ADOF44Wvs = 6197
+ INTEGER(IntKi), PARAMETER :: B4ADOF45Wvs = 6198
+ INTEGER(IntKi), PARAMETER :: B4ADOF46Wvs = 6199
+ INTEGER(IntKi), PARAMETER :: B4ADOF47Wvs = 6200
+ INTEGER(IntKi), PARAMETER :: B4ADOF48Wvs = 6201
+ INTEGER(IntKi), PARAMETER :: B4ADOF49Wvs = 6202
+ INTEGER(IntKi), PARAMETER :: B4ADOF50Wvs = 6203
+ INTEGER(IntKi), PARAMETER :: B4ADOF51Wvs = 6204
+ INTEGER(IntKi), PARAMETER :: B4ADOF52Wvs = 6205
+ INTEGER(IntKi), PARAMETER :: B4ADOF53Wvs = 6206
+ INTEGER(IntKi), PARAMETER :: B4ADOF54Wvs = 6207
+ INTEGER(IntKi), PARAMETER :: B4ADOF55Wvs = 6208
+ INTEGER(IntKi), PARAMETER :: B4ADOF56Wvs = 6209
+ INTEGER(IntKi), PARAMETER :: B4ADOF57Wvs = 6210
+ INTEGER(IntKi), PARAMETER :: B4ADOF58Wvs = 6211
+ INTEGER(IntKi), PARAMETER :: B4ADOF59Wvs = 6212
+ INTEGER(IntKi), PARAMETER :: B4ADOF60Wvs = 6213
+ INTEGER(IntKi), PARAMETER :: B4ADOF61Wvs = 6214
+ INTEGER(IntKi), PARAMETER :: B4ADOF62Wvs = 6215
+ INTEGER(IntKi), PARAMETER :: B4ADOF63Wvs = 6216
+ INTEGER(IntKi), PARAMETER :: B4ADOF64Wvs = 6217
+ INTEGER(IntKi), PARAMETER :: B4ADOF65Wvs = 6218
+ INTEGER(IntKi), PARAMETER :: B4ADOF66Wvs = 6219
+ INTEGER(IntKi), PARAMETER :: B4ADOF67Wvs = 6220
+ INTEGER(IntKi), PARAMETER :: B4ADOF68Wvs = 6221
+ INTEGER(IntKi), PARAMETER :: B4ADOF69Wvs = 6222
+ INTEGER(IntKi), PARAMETER :: B4ADOF70Wvs = 6223
+ INTEGER(IntKi), PARAMETER :: B4ADOF71Wvs = 6224
+ INTEGER(IntKi), PARAMETER :: B4ADOF72Wvs = 6225
+ INTEGER(IntKi), PARAMETER :: B4ADOF73Wvs = 6226
+ INTEGER(IntKi), PARAMETER :: B4ADOF74Wvs = 6227
+ INTEGER(IntKi), PARAMETER :: B4ADOF75Wvs = 6228
+ INTEGER(IntKi), PARAMETER :: B4ADOF76Wvs = 6229
+ INTEGER(IntKi), PARAMETER :: B4ADOF77Wvs = 6230
+ INTEGER(IntKi), PARAMETER :: B4ADOF78Wvs = 6231
+ INTEGER(IntKi), PARAMETER :: B4ADOF79Wvs = 6232
+ INTEGER(IntKi), PARAMETER :: B4ADOF80Wvs = 6233
+ INTEGER(IntKi), PARAMETER :: B4ADOF81Wvs = 6234
+ INTEGER(IntKi), PARAMETER :: B4ADOF82Wvs = 6235
+ INTEGER(IntKi), PARAMETER :: B4ADOF83Wvs = 6236
+ INTEGER(IntKi), PARAMETER :: B4ADOF84Wvs = 6237
+ INTEGER(IntKi), PARAMETER :: B4ADOF85Wvs = 6238
+ INTEGER(IntKi), PARAMETER :: B4ADOF86Wvs = 6239
+ INTEGER(IntKi), PARAMETER :: B4ADOF87Wvs = 6240
+ INTEGER(IntKi), PARAMETER :: B4ADOF88Wvs = 6241
+ INTEGER(IntKi), PARAMETER :: B4ADOF89Wvs = 6242
+ INTEGER(IntKi), PARAMETER :: B4ADOF90Wvs = 6243
+ INTEGER(IntKi), PARAMETER :: B4ADOF91Wvs = 6244
+ INTEGER(IntKi), PARAMETER :: B4ADOF92Wvs = 6245
+ INTEGER(IntKi), PARAMETER :: B4ADOF93Wvs = 6246
+ INTEGER(IntKi), PARAMETER :: B4ADOF94Wvs = 6247
+ INTEGER(IntKi), PARAMETER :: B4ADOF95Wvs = 6248
+ INTEGER(IntKi), PARAMETER :: B4ADOF96Wvs = 6249
+ INTEGER(IntKi), PARAMETER :: B4ADOF97Wvs = 6250
+ INTEGER(IntKi), PARAMETER :: B4ADOF98Wvs = 6251
+ INTEGER(IntKi), PARAMETER :: B4ADOF99Wvs = 6252
+ INTEGER(IntKi), PARAMETER :: B5ADOF1Wvs = 6253
+ INTEGER(IntKi), PARAMETER :: B5ADOF2Wvs = 6254
+ INTEGER(IntKi), PARAMETER :: B5ADOF3Wvs = 6255
+ INTEGER(IntKi), PARAMETER :: B5ADOF4Wvs = 6256
+ INTEGER(IntKi), PARAMETER :: B5ADOF5Wvs = 6257
+ INTEGER(IntKi), PARAMETER :: B5ADOF6Wvs = 6258
+ INTEGER(IntKi), PARAMETER :: B5ADOF7Wvs = 6259
+ INTEGER(IntKi), PARAMETER :: B5ADOF8Wvs = 6260
+ INTEGER(IntKi), PARAMETER :: B5ADOF9Wvs = 6261
+ INTEGER(IntKi), PARAMETER :: B5ADOF10Wvs = 6262
+ INTEGER(IntKi), PARAMETER :: B5ADOF11Wvs = 6263
+ INTEGER(IntKi), PARAMETER :: B5ADOF12Wvs = 6264
+ INTEGER(IntKi), PARAMETER :: B5ADOF13Wvs = 6265
+ INTEGER(IntKi), PARAMETER :: B5ADOF14Wvs = 6266
+ INTEGER(IntKi), PARAMETER :: B5ADOF15Wvs = 6267
+ INTEGER(IntKi), PARAMETER :: B5ADOF16Wvs = 6268
+ INTEGER(IntKi), PARAMETER :: B5ADOF17Wvs = 6269
+ INTEGER(IntKi), PARAMETER :: B5ADOF18Wvs = 6270
+ INTEGER(IntKi), PARAMETER :: B5ADOF19Wvs = 6271
+ INTEGER(IntKi), PARAMETER :: B5ADOF20Wvs = 6272
+ INTEGER(IntKi), PARAMETER :: B5ADOF21Wvs = 6273
+ INTEGER(IntKi), PARAMETER :: B5ADOF22Wvs = 6274
+ INTEGER(IntKi), PARAMETER :: B5ADOF23Wvs = 6275
+ INTEGER(IntKi), PARAMETER :: B5ADOF24Wvs = 6276
+ INTEGER(IntKi), PARAMETER :: B5ADOF25Wvs = 6277
+ INTEGER(IntKi), PARAMETER :: B5ADOF26Wvs = 6278
+ INTEGER(IntKi), PARAMETER :: B5ADOF27Wvs = 6279
+ INTEGER(IntKi), PARAMETER :: B5ADOF28Wvs = 6280
+ INTEGER(IntKi), PARAMETER :: B5ADOF29Wvs = 6281
+ INTEGER(IntKi), PARAMETER :: B5ADOF30Wvs = 6282
+ INTEGER(IntKi), PARAMETER :: B5ADOF31Wvs = 6283
+ INTEGER(IntKi), PARAMETER :: B5ADOF32Wvs = 6284
+ INTEGER(IntKi), PARAMETER :: B5ADOF33Wvs = 6285
+ INTEGER(IntKi), PARAMETER :: B5ADOF34Wvs = 6286
+ INTEGER(IntKi), PARAMETER :: B5ADOF35Wvs = 6287
+ INTEGER(IntKi), PARAMETER :: B5ADOF36Wvs = 6288
+ INTEGER(IntKi), PARAMETER :: B5ADOF37Wvs = 6289
+ INTEGER(IntKi), PARAMETER :: B5ADOF38Wvs = 6290
+ INTEGER(IntKi), PARAMETER :: B5ADOF39Wvs = 6291
+ INTEGER(IntKi), PARAMETER :: B5ADOF40Wvs = 6292
+ INTEGER(IntKi), PARAMETER :: B5ADOF41Wvs = 6293
+ INTEGER(IntKi), PARAMETER :: B5ADOF42Wvs = 6294
+ INTEGER(IntKi), PARAMETER :: B5ADOF43Wvs = 6295
+ INTEGER(IntKi), PARAMETER :: B5ADOF44Wvs = 6296
+ INTEGER(IntKi), PARAMETER :: B5ADOF45Wvs = 6297
+ INTEGER(IntKi), PARAMETER :: B5ADOF46Wvs = 6298
+ INTEGER(IntKi), PARAMETER :: B5ADOF47Wvs = 6299
+ INTEGER(IntKi), PARAMETER :: B5ADOF48Wvs = 6300
+ INTEGER(IntKi), PARAMETER :: B5ADOF49Wvs = 6301
+ INTEGER(IntKi), PARAMETER :: B5ADOF50Wvs = 6302
+ INTEGER(IntKi), PARAMETER :: B5ADOF51Wvs = 6303
+ INTEGER(IntKi), PARAMETER :: B5ADOF52Wvs = 6304
+ INTEGER(IntKi), PARAMETER :: B5ADOF53Wvs = 6305
+ INTEGER(IntKi), PARAMETER :: B5ADOF54Wvs = 6306
+ INTEGER(IntKi), PARAMETER :: B5ADOF55Wvs = 6307
+ INTEGER(IntKi), PARAMETER :: B5ADOF56Wvs = 6308
+ INTEGER(IntKi), PARAMETER :: B5ADOF57Wvs = 6309
+ INTEGER(IntKi), PARAMETER :: B5ADOF58Wvs = 6310
+ INTEGER(IntKi), PARAMETER :: B5ADOF59Wvs = 6311
+ INTEGER(IntKi), PARAMETER :: B5ADOF60Wvs = 6312
+ INTEGER(IntKi), PARAMETER :: B5ADOF61Wvs = 6313
+ INTEGER(IntKi), PARAMETER :: B5ADOF62Wvs = 6314
+ INTEGER(IntKi), PARAMETER :: B5ADOF63Wvs = 6315
+ INTEGER(IntKi), PARAMETER :: B5ADOF64Wvs = 6316
+ INTEGER(IntKi), PARAMETER :: B5ADOF65Wvs = 6317
+ INTEGER(IntKi), PARAMETER :: B5ADOF66Wvs = 6318
+ INTEGER(IntKi), PARAMETER :: B5ADOF67Wvs = 6319
+ INTEGER(IntKi), PARAMETER :: B5ADOF68Wvs = 6320
+ INTEGER(IntKi), PARAMETER :: B5ADOF69Wvs = 6321
+ INTEGER(IntKi), PARAMETER :: B5ADOF70Wvs = 6322
+ INTEGER(IntKi), PARAMETER :: B5ADOF71Wvs = 6323
+ INTEGER(IntKi), PARAMETER :: B5ADOF72Wvs = 6324
+ INTEGER(IntKi), PARAMETER :: B5ADOF73Wvs = 6325
+ INTEGER(IntKi), PARAMETER :: B5ADOF74Wvs = 6326
+ INTEGER(IntKi), PARAMETER :: B5ADOF75Wvs = 6327
+ INTEGER(IntKi), PARAMETER :: B5ADOF76Wvs = 6328
+ INTEGER(IntKi), PARAMETER :: B5ADOF77Wvs = 6329
+ INTEGER(IntKi), PARAMETER :: B5ADOF78Wvs = 6330
+ INTEGER(IntKi), PARAMETER :: B5ADOF79Wvs = 6331
+ INTEGER(IntKi), PARAMETER :: B5ADOF80Wvs = 6332
+ INTEGER(IntKi), PARAMETER :: B5ADOF81Wvs = 6333
+ INTEGER(IntKi), PARAMETER :: B5ADOF82Wvs = 6334
+ INTEGER(IntKi), PARAMETER :: B5ADOF83Wvs = 6335
+ INTEGER(IntKi), PARAMETER :: B5ADOF84Wvs = 6336
+ INTEGER(IntKi), PARAMETER :: B5ADOF85Wvs = 6337
+ INTEGER(IntKi), PARAMETER :: B5ADOF86Wvs = 6338
+ INTEGER(IntKi), PARAMETER :: B5ADOF87Wvs = 6339
+ INTEGER(IntKi), PARAMETER :: B5ADOF88Wvs = 6340
+ INTEGER(IntKi), PARAMETER :: B5ADOF89Wvs = 6341
+ INTEGER(IntKi), PARAMETER :: B5ADOF90Wvs = 6342
+ INTEGER(IntKi), PARAMETER :: B5ADOF91Wvs = 6343
+ INTEGER(IntKi), PARAMETER :: B5ADOF92Wvs = 6344
+ INTEGER(IntKi), PARAMETER :: B5ADOF93Wvs = 6345
+ INTEGER(IntKi), PARAMETER :: B5ADOF94Wvs = 6346
+ INTEGER(IntKi), PARAMETER :: B5ADOF95Wvs = 6347
+ INTEGER(IntKi), PARAMETER :: B5ADOF96Wvs = 6348
+ INTEGER(IntKi), PARAMETER :: B5ADOF97Wvs = 6349
+ INTEGER(IntKi), PARAMETER :: B5ADOF98Wvs = 6350
+ INTEGER(IntKi), PARAMETER :: B5ADOF99Wvs = 6351
+ INTEGER(IntKi), PARAMETER :: B6ADOF1Wvs = 6352
+ INTEGER(IntKi), PARAMETER :: B6ADOF2Wvs = 6353
+ INTEGER(IntKi), PARAMETER :: B6ADOF3Wvs = 6354
+ INTEGER(IntKi), PARAMETER :: B6ADOF4Wvs = 6355
+ INTEGER(IntKi), PARAMETER :: B6ADOF5Wvs = 6356
+ INTEGER(IntKi), PARAMETER :: B6ADOF6Wvs = 6357
+ INTEGER(IntKi), PARAMETER :: B6ADOF7Wvs = 6358
+ INTEGER(IntKi), PARAMETER :: B6ADOF8Wvs = 6359
+ INTEGER(IntKi), PARAMETER :: B6ADOF9Wvs = 6360
+ INTEGER(IntKi), PARAMETER :: B6ADOF10Wvs = 6361
+ INTEGER(IntKi), PARAMETER :: B6ADOF11Wvs = 6362
+ INTEGER(IntKi), PARAMETER :: B6ADOF12Wvs = 6363
+ INTEGER(IntKi), PARAMETER :: B6ADOF13Wvs = 6364
+ INTEGER(IntKi), PARAMETER :: B6ADOF14Wvs = 6365
+ INTEGER(IntKi), PARAMETER :: B6ADOF15Wvs = 6366
+ INTEGER(IntKi), PARAMETER :: B6ADOF16Wvs = 6367
+ INTEGER(IntKi), PARAMETER :: B6ADOF17Wvs = 6368
+ INTEGER(IntKi), PARAMETER :: B6ADOF18Wvs = 6369
+ INTEGER(IntKi), PARAMETER :: B6ADOF19Wvs = 6370
+ INTEGER(IntKi), PARAMETER :: B6ADOF20Wvs = 6371
+ INTEGER(IntKi), PARAMETER :: B6ADOF21Wvs = 6372
+ INTEGER(IntKi), PARAMETER :: B6ADOF22Wvs = 6373
+ INTEGER(IntKi), PARAMETER :: B6ADOF23Wvs = 6374
+ INTEGER(IntKi), PARAMETER :: B6ADOF24Wvs = 6375
+ INTEGER(IntKi), PARAMETER :: B6ADOF25Wvs = 6376
+ INTEGER(IntKi), PARAMETER :: B6ADOF26Wvs = 6377
+ INTEGER(IntKi), PARAMETER :: B6ADOF27Wvs = 6378
+ INTEGER(IntKi), PARAMETER :: B6ADOF28Wvs = 6379
+ INTEGER(IntKi), PARAMETER :: B6ADOF29Wvs = 6380
+ INTEGER(IntKi), PARAMETER :: B6ADOF30Wvs = 6381
+ INTEGER(IntKi), PARAMETER :: B6ADOF31Wvs = 6382
+ INTEGER(IntKi), PARAMETER :: B6ADOF32Wvs = 6383
+ INTEGER(IntKi), PARAMETER :: B6ADOF33Wvs = 6384
+ INTEGER(IntKi), PARAMETER :: B6ADOF34Wvs = 6385
+ INTEGER(IntKi), PARAMETER :: B6ADOF35Wvs = 6386
+ INTEGER(IntKi), PARAMETER :: B6ADOF36Wvs = 6387
+ INTEGER(IntKi), PARAMETER :: B6ADOF37Wvs = 6388
+ INTEGER(IntKi), PARAMETER :: B6ADOF38Wvs = 6389
+ INTEGER(IntKi), PARAMETER :: B6ADOF39Wvs = 6390
+ INTEGER(IntKi), PARAMETER :: B6ADOF40Wvs = 6391
+ INTEGER(IntKi), PARAMETER :: B6ADOF41Wvs = 6392
+ INTEGER(IntKi), PARAMETER :: B6ADOF42Wvs = 6393
+ INTEGER(IntKi), PARAMETER :: B6ADOF43Wvs = 6394
+ INTEGER(IntKi), PARAMETER :: B6ADOF44Wvs = 6395
+ INTEGER(IntKi), PARAMETER :: B6ADOF45Wvs = 6396
+ INTEGER(IntKi), PARAMETER :: B6ADOF46Wvs = 6397
+ INTEGER(IntKi), PARAMETER :: B6ADOF47Wvs = 6398
+ INTEGER(IntKi), PARAMETER :: B6ADOF48Wvs = 6399
+ INTEGER(IntKi), PARAMETER :: B6ADOF49Wvs = 6400
+ INTEGER(IntKi), PARAMETER :: B6ADOF50Wvs = 6401
+ INTEGER(IntKi), PARAMETER :: B6ADOF51Wvs = 6402
+ INTEGER(IntKi), PARAMETER :: B6ADOF52Wvs = 6403
+ INTEGER(IntKi), PARAMETER :: B6ADOF53Wvs = 6404
+ INTEGER(IntKi), PARAMETER :: B6ADOF54Wvs = 6405
+ INTEGER(IntKi), PARAMETER :: B6ADOF55Wvs = 6406
+ INTEGER(IntKi), PARAMETER :: B6ADOF56Wvs = 6407
+ INTEGER(IntKi), PARAMETER :: B6ADOF57Wvs = 6408
+ INTEGER(IntKi), PARAMETER :: B6ADOF58Wvs = 6409
+ INTEGER(IntKi), PARAMETER :: B6ADOF59Wvs = 6410
+ INTEGER(IntKi), PARAMETER :: B6ADOF60Wvs = 6411
+ INTEGER(IntKi), PARAMETER :: B6ADOF61Wvs = 6412
+ INTEGER(IntKi), PARAMETER :: B6ADOF62Wvs = 6413
+ INTEGER(IntKi), PARAMETER :: B6ADOF63Wvs = 6414
+ INTEGER(IntKi), PARAMETER :: B6ADOF64Wvs = 6415
+ INTEGER(IntKi), PARAMETER :: B6ADOF65Wvs = 6416
+ INTEGER(IntKi), PARAMETER :: B6ADOF66Wvs = 6417
+ INTEGER(IntKi), PARAMETER :: B6ADOF67Wvs = 6418
+ INTEGER(IntKi), PARAMETER :: B6ADOF68Wvs = 6419
+ INTEGER(IntKi), PARAMETER :: B6ADOF69Wvs = 6420
+ INTEGER(IntKi), PARAMETER :: B6ADOF70Wvs = 6421
+ INTEGER(IntKi), PARAMETER :: B6ADOF71Wvs = 6422
+ INTEGER(IntKi), PARAMETER :: B6ADOF72Wvs = 6423
+ INTEGER(IntKi), PARAMETER :: B6ADOF73Wvs = 6424
+ INTEGER(IntKi), PARAMETER :: B6ADOF74Wvs = 6425
+ INTEGER(IntKi), PARAMETER :: B6ADOF75Wvs = 6426
+ INTEGER(IntKi), PARAMETER :: B6ADOF76Wvs = 6427
+ INTEGER(IntKi), PARAMETER :: B6ADOF77Wvs = 6428
+ INTEGER(IntKi), PARAMETER :: B6ADOF78Wvs = 6429
+ INTEGER(IntKi), PARAMETER :: B6ADOF79Wvs = 6430
+ INTEGER(IntKi), PARAMETER :: B6ADOF80Wvs = 6431
+ INTEGER(IntKi), PARAMETER :: B6ADOF81Wvs = 6432
+ INTEGER(IntKi), PARAMETER :: B6ADOF82Wvs = 6433
+ INTEGER(IntKi), PARAMETER :: B6ADOF83Wvs = 6434
+ INTEGER(IntKi), PARAMETER :: B6ADOF84Wvs = 6435
+ INTEGER(IntKi), PARAMETER :: B6ADOF85Wvs = 6436
+ INTEGER(IntKi), PARAMETER :: B6ADOF86Wvs = 6437
+ INTEGER(IntKi), PARAMETER :: B6ADOF87Wvs = 6438
+ INTEGER(IntKi), PARAMETER :: B6ADOF88Wvs = 6439
+ INTEGER(IntKi), PARAMETER :: B6ADOF89Wvs = 6440
+ INTEGER(IntKi), PARAMETER :: B6ADOF90Wvs = 6441
+ INTEGER(IntKi), PARAMETER :: B6ADOF91Wvs = 6442
+ INTEGER(IntKi), PARAMETER :: B6ADOF92Wvs = 6443
+ INTEGER(IntKi), PARAMETER :: B6ADOF93Wvs = 6444
+ INTEGER(IntKi), PARAMETER :: B6ADOF94Wvs = 6445
+ INTEGER(IntKi), PARAMETER :: B6ADOF95Wvs = 6446
+ INTEGER(IntKi), PARAMETER :: B6ADOF96Wvs = 6447
+ INTEGER(IntKi), PARAMETER :: B6ADOF97Wvs = 6448
+ INTEGER(IntKi), PARAMETER :: B6ADOF98Wvs = 6449
+ INTEGER(IntKi), PARAMETER :: B6ADOF99Wvs = 6450
+ INTEGER(IntKi), PARAMETER :: B7ADOF1Wvs = 6451
+ INTEGER(IntKi), PARAMETER :: B7ADOF2Wvs = 6452
+ INTEGER(IntKi), PARAMETER :: B7ADOF3Wvs = 6453
+ INTEGER(IntKi), PARAMETER :: B7ADOF4Wvs = 6454
+ INTEGER(IntKi), PARAMETER :: B7ADOF5Wvs = 6455
+ INTEGER(IntKi), PARAMETER :: B7ADOF6Wvs = 6456
+ INTEGER(IntKi), PARAMETER :: B7ADOF7Wvs = 6457
+ INTEGER(IntKi), PARAMETER :: B7ADOF8Wvs = 6458
+ INTEGER(IntKi), PARAMETER :: B7ADOF9Wvs = 6459
+ INTEGER(IntKi), PARAMETER :: B7ADOF10Wvs = 6460
+ INTEGER(IntKi), PARAMETER :: B7ADOF11Wvs = 6461
+ INTEGER(IntKi), PARAMETER :: B7ADOF12Wvs = 6462
+ INTEGER(IntKi), PARAMETER :: B7ADOF13Wvs = 6463
+ INTEGER(IntKi), PARAMETER :: B7ADOF14Wvs = 6464
+ INTEGER(IntKi), PARAMETER :: B7ADOF15Wvs = 6465
+ INTEGER(IntKi), PARAMETER :: B7ADOF16Wvs = 6466
+ INTEGER(IntKi), PARAMETER :: B7ADOF17Wvs = 6467
+ INTEGER(IntKi), PARAMETER :: B7ADOF18Wvs = 6468
+ INTEGER(IntKi), PARAMETER :: B7ADOF19Wvs = 6469
+ INTEGER(IntKi), PARAMETER :: B7ADOF20Wvs = 6470
+ INTEGER(IntKi), PARAMETER :: B7ADOF21Wvs = 6471
+ INTEGER(IntKi), PARAMETER :: B7ADOF22Wvs = 6472
+ INTEGER(IntKi), PARAMETER :: B7ADOF23Wvs = 6473
+ INTEGER(IntKi), PARAMETER :: B7ADOF24Wvs = 6474
+ INTEGER(IntKi), PARAMETER :: B7ADOF25Wvs = 6475
+ INTEGER(IntKi), PARAMETER :: B7ADOF26Wvs = 6476
+ INTEGER(IntKi), PARAMETER :: B7ADOF27Wvs = 6477
+ INTEGER(IntKi), PARAMETER :: B7ADOF28Wvs = 6478
+ INTEGER(IntKi), PARAMETER :: B7ADOF29Wvs = 6479
+ INTEGER(IntKi), PARAMETER :: B7ADOF30Wvs = 6480
+ INTEGER(IntKi), PARAMETER :: B7ADOF31Wvs = 6481
+ INTEGER(IntKi), PARAMETER :: B7ADOF32Wvs = 6482
+ INTEGER(IntKi), PARAMETER :: B7ADOF33Wvs = 6483
+ INTEGER(IntKi), PARAMETER :: B7ADOF34Wvs = 6484
+ INTEGER(IntKi), PARAMETER :: B7ADOF35Wvs = 6485
+ INTEGER(IntKi), PARAMETER :: B7ADOF36Wvs = 6486
+ INTEGER(IntKi), PARAMETER :: B7ADOF37Wvs = 6487
+ INTEGER(IntKi), PARAMETER :: B7ADOF38Wvs = 6488
+ INTEGER(IntKi), PARAMETER :: B7ADOF39Wvs = 6489
+ INTEGER(IntKi), PARAMETER :: B7ADOF40Wvs = 6490
+ INTEGER(IntKi), PARAMETER :: B7ADOF41Wvs = 6491
+ INTEGER(IntKi), PARAMETER :: B7ADOF42Wvs = 6492
+ INTEGER(IntKi), PARAMETER :: B7ADOF43Wvs = 6493
+ INTEGER(IntKi), PARAMETER :: B7ADOF44Wvs = 6494
+ INTEGER(IntKi), PARAMETER :: B7ADOF45Wvs = 6495
+ INTEGER(IntKi), PARAMETER :: B7ADOF46Wvs = 6496
+ INTEGER(IntKi), PARAMETER :: B7ADOF47Wvs = 6497
+ INTEGER(IntKi), PARAMETER :: B7ADOF48Wvs = 6498
+ INTEGER(IntKi), PARAMETER :: B7ADOF49Wvs = 6499
+ INTEGER(IntKi), PARAMETER :: B7ADOF50Wvs = 6500
+ INTEGER(IntKi), PARAMETER :: B7ADOF51Wvs = 6501
+ INTEGER(IntKi), PARAMETER :: B7ADOF52Wvs = 6502
+ INTEGER(IntKi), PARAMETER :: B7ADOF53Wvs = 6503
+ INTEGER(IntKi), PARAMETER :: B7ADOF54Wvs = 6504
+ INTEGER(IntKi), PARAMETER :: B7ADOF55Wvs = 6505
+ INTEGER(IntKi), PARAMETER :: B7ADOF56Wvs = 6506
+ INTEGER(IntKi), PARAMETER :: B7ADOF57Wvs = 6507
+ INTEGER(IntKi), PARAMETER :: B7ADOF58Wvs = 6508
+ INTEGER(IntKi), PARAMETER :: B7ADOF59Wvs = 6509
+ INTEGER(IntKi), PARAMETER :: B7ADOF60Wvs = 6510
+ INTEGER(IntKi), PARAMETER :: B7ADOF61Wvs = 6511
+ INTEGER(IntKi), PARAMETER :: B7ADOF62Wvs = 6512
+ INTEGER(IntKi), PARAMETER :: B7ADOF63Wvs = 6513
+ INTEGER(IntKi), PARAMETER :: B7ADOF64Wvs = 6514
+ INTEGER(IntKi), PARAMETER :: B7ADOF65Wvs = 6515
+ INTEGER(IntKi), PARAMETER :: B7ADOF66Wvs = 6516
+ INTEGER(IntKi), PARAMETER :: B7ADOF67Wvs = 6517
+ INTEGER(IntKi), PARAMETER :: B7ADOF68Wvs = 6518
+ INTEGER(IntKi), PARAMETER :: B7ADOF69Wvs = 6519
+ INTEGER(IntKi), PARAMETER :: B7ADOF70Wvs = 6520
+ INTEGER(IntKi), PARAMETER :: B7ADOF71Wvs = 6521
+ INTEGER(IntKi), PARAMETER :: B7ADOF72Wvs = 6522
+ INTEGER(IntKi), PARAMETER :: B7ADOF73Wvs = 6523
+ INTEGER(IntKi), PARAMETER :: B7ADOF74Wvs = 6524
+ INTEGER(IntKi), PARAMETER :: B7ADOF75Wvs = 6525
+ INTEGER(IntKi), PARAMETER :: B7ADOF76Wvs = 6526
+ INTEGER(IntKi), PARAMETER :: B7ADOF77Wvs = 6527
+ INTEGER(IntKi), PARAMETER :: B7ADOF78Wvs = 6528
+ INTEGER(IntKi), PARAMETER :: B7ADOF79Wvs = 6529
+ INTEGER(IntKi), PARAMETER :: B7ADOF80Wvs = 6530
+ INTEGER(IntKi), PARAMETER :: B7ADOF81Wvs = 6531
+ INTEGER(IntKi), PARAMETER :: B7ADOF82Wvs = 6532
+ INTEGER(IntKi), PARAMETER :: B7ADOF83Wvs = 6533
+ INTEGER(IntKi), PARAMETER :: B7ADOF84Wvs = 6534
+ INTEGER(IntKi), PARAMETER :: B7ADOF85Wvs = 6535
+ INTEGER(IntKi), PARAMETER :: B7ADOF86Wvs = 6536
+ INTEGER(IntKi), PARAMETER :: B7ADOF87Wvs = 6537
+ INTEGER(IntKi), PARAMETER :: B7ADOF88Wvs = 6538
+ INTEGER(IntKi), PARAMETER :: B7ADOF89Wvs = 6539
+ INTEGER(IntKi), PARAMETER :: B7ADOF90Wvs = 6540
+ INTEGER(IntKi), PARAMETER :: B7ADOF91Wvs = 6541
+ INTEGER(IntKi), PARAMETER :: B7ADOF92Wvs = 6542
+ INTEGER(IntKi), PARAMETER :: B7ADOF93Wvs = 6543
+ INTEGER(IntKi), PARAMETER :: B7ADOF94Wvs = 6544
+ INTEGER(IntKi), PARAMETER :: B7ADOF95Wvs = 6545
+ INTEGER(IntKi), PARAMETER :: B7ADOF96Wvs = 6546
+ INTEGER(IntKi), PARAMETER :: B7ADOF97Wvs = 6547
+ INTEGER(IntKi), PARAMETER :: B7ADOF98Wvs = 6548
+ INTEGER(IntKi), PARAMETER :: B7ADOF99Wvs = 6549
+ INTEGER(IntKi), PARAMETER :: B8ADOF1Wvs = 6550
+ INTEGER(IntKi), PARAMETER :: B8ADOF2Wvs = 6551
+ INTEGER(IntKi), PARAMETER :: B8ADOF3Wvs = 6552
+ INTEGER(IntKi), PARAMETER :: B8ADOF4Wvs = 6553
+ INTEGER(IntKi), PARAMETER :: B8ADOF5Wvs = 6554
+ INTEGER(IntKi), PARAMETER :: B8ADOF6Wvs = 6555
+ INTEGER(IntKi), PARAMETER :: B8ADOF7Wvs = 6556
+ INTEGER(IntKi), PARAMETER :: B8ADOF8Wvs = 6557
+ INTEGER(IntKi), PARAMETER :: B8ADOF9Wvs = 6558
+ INTEGER(IntKi), PARAMETER :: B8ADOF10Wvs = 6559
+ INTEGER(IntKi), PARAMETER :: B8ADOF11Wvs = 6560
+ INTEGER(IntKi), PARAMETER :: B8ADOF12Wvs = 6561
+ INTEGER(IntKi), PARAMETER :: B8ADOF13Wvs = 6562
+ INTEGER(IntKi), PARAMETER :: B8ADOF14Wvs = 6563
+ INTEGER(IntKi), PARAMETER :: B8ADOF15Wvs = 6564
+ INTEGER(IntKi), PARAMETER :: B8ADOF16Wvs = 6565
+ INTEGER(IntKi), PARAMETER :: B8ADOF17Wvs = 6566
+ INTEGER(IntKi), PARAMETER :: B8ADOF18Wvs = 6567
+ INTEGER(IntKi), PARAMETER :: B8ADOF19Wvs = 6568
+ INTEGER(IntKi), PARAMETER :: B8ADOF20Wvs = 6569
+ INTEGER(IntKi), PARAMETER :: B8ADOF21Wvs = 6570
+ INTEGER(IntKi), PARAMETER :: B8ADOF22Wvs = 6571
+ INTEGER(IntKi), PARAMETER :: B8ADOF23Wvs = 6572
+ INTEGER(IntKi), PARAMETER :: B8ADOF24Wvs = 6573
+ INTEGER(IntKi), PARAMETER :: B8ADOF25Wvs = 6574
+ INTEGER(IntKi), PARAMETER :: B8ADOF26Wvs = 6575
+ INTEGER(IntKi), PARAMETER :: B8ADOF27Wvs = 6576
+ INTEGER(IntKi), PARAMETER :: B8ADOF28Wvs = 6577
+ INTEGER(IntKi), PARAMETER :: B8ADOF29Wvs = 6578
+ INTEGER(IntKi), PARAMETER :: B8ADOF30Wvs = 6579
+ INTEGER(IntKi), PARAMETER :: B8ADOF31Wvs = 6580
+ INTEGER(IntKi), PARAMETER :: B8ADOF32Wvs = 6581
+ INTEGER(IntKi), PARAMETER :: B8ADOF33Wvs = 6582
+ INTEGER(IntKi), PARAMETER :: B8ADOF34Wvs = 6583
+ INTEGER(IntKi), PARAMETER :: B8ADOF35Wvs = 6584
+ INTEGER(IntKi), PARAMETER :: B8ADOF36Wvs = 6585
+ INTEGER(IntKi), PARAMETER :: B8ADOF37Wvs = 6586
+ INTEGER(IntKi), PARAMETER :: B8ADOF38Wvs = 6587
+ INTEGER(IntKi), PARAMETER :: B8ADOF39Wvs = 6588
+ INTEGER(IntKi), PARAMETER :: B8ADOF40Wvs = 6589
+ INTEGER(IntKi), PARAMETER :: B8ADOF41Wvs = 6590
+ INTEGER(IntKi), PARAMETER :: B8ADOF42Wvs = 6591
+ INTEGER(IntKi), PARAMETER :: B8ADOF43Wvs = 6592
+ INTEGER(IntKi), PARAMETER :: B8ADOF44Wvs = 6593
+ INTEGER(IntKi), PARAMETER :: B8ADOF45Wvs = 6594
+ INTEGER(IntKi), PARAMETER :: B8ADOF46Wvs = 6595
+ INTEGER(IntKi), PARAMETER :: B8ADOF47Wvs = 6596
+ INTEGER(IntKi), PARAMETER :: B8ADOF48Wvs = 6597
+ INTEGER(IntKi), PARAMETER :: B8ADOF49Wvs = 6598
+ INTEGER(IntKi), PARAMETER :: B8ADOF50Wvs = 6599
+ INTEGER(IntKi), PARAMETER :: B8ADOF51Wvs = 6600
+ INTEGER(IntKi), PARAMETER :: B8ADOF52Wvs = 6601
+ INTEGER(IntKi), PARAMETER :: B8ADOF53Wvs = 6602
+ INTEGER(IntKi), PARAMETER :: B8ADOF54Wvs = 6603
+ INTEGER(IntKi), PARAMETER :: B8ADOF55Wvs = 6604
+ INTEGER(IntKi), PARAMETER :: B8ADOF56Wvs = 6605
+ INTEGER(IntKi), PARAMETER :: B8ADOF57Wvs = 6606
+ INTEGER(IntKi), PARAMETER :: B8ADOF58Wvs = 6607
+ INTEGER(IntKi), PARAMETER :: B8ADOF59Wvs = 6608
+ INTEGER(IntKi), PARAMETER :: B8ADOF60Wvs = 6609
+ INTEGER(IntKi), PARAMETER :: B8ADOF61Wvs = 6610
+ INTEGER(IntKi), PARAMETER :: B8ADOF62Wvs = 6611
+ INTEGER(IntKi), PARAMETER :: B8ADOF63Wvs = 6612
+ INTEGER(IntKi), PARAMETER :: B8ADOF64Wvs = 6613
+ INTEGER(IntKi), PARAMETER :: B8ADOF65Wvs = 6614
+ INTEGER(IntKi), PARAMETER :: B8ADOF66Wvs = 6615
+ INTEGER(IntKi), PARAMETER :: B8ADOF67Wvs = 6616
+ INTEGER(IntKi), PARAMETER :: B8ADOF68Wvs = 6617
+ INTEGER(IntKi), PARAMETER :: B8ADOF69Wvs = 6618
+ INTEGER(IntKi), PARAMETER :: B8ADOF70Wvs = 6619
+ INTEGER(IntKi), PARAMETER :: B8ADOF71Wvs = 6620
+ INTEGER(IntKi), PARAMETER :: B8ADOF72Wvs = 6621
+ INTEGER(IntKi), PARAMETER :: B8ADOF73Wvs = 6622
+ INTEGER(IntKi), PARAMETER :: B8ADOF74Wvs = 6623
+ INTEGER(IntKi), PARAMETER :: B8ADOF75Wvs = 6624
+ INTEGER(IntKi), PARAMETER :: B8ADOF76Wvs = 6625
+ INTEGER(IntKi), PARAMETER :: B8ADOF77Wvs = 6626
+ INTEGER(IntKi), PARAMETER :: B8ADOF78Wvs = 6627
+ INTEGER(IntKi), PARAMETER :: B8ADOF79Wvs = 6628
+ INTEGER(IntKi), PARAMETER :: B8ADOF80Wvs = 6629
+ INTEGER(IntKi), PARAMETER :: B8ADOF81Wvs = 6630
+ INTEGER(IntKi), PARAMETER :: B8ADOF82Wvs = 6631
+ INTEGER(IntKi), PARAMETER :: B8ADOF83Wvs = 6632
+ INTEGER(IntKi), PARAMETER :: B8ADOF84Wvs = 6633
+ INTEGER(IntKi), PARAMETER :: B8ADOF85Wvs = 6634
+ INTEGER(IntKi), PARAMETER :: B8ADOF86Wvs = 6635
+ INTEGER(IntKi), PARAMETER :: B8ADOF87Wvs = 6636
+ INTEGER(IntKi), PARAMETER :: B8ADOF88Wvs = 6637
+ INTEGER(IntKi), PARAMETER :: B8ADOF89Wvs = 6638
+ INTEGER(IntKi), PARAMETER :: B8ADOF90Wvs = 6639
+ INTEGER(IntKi), PARAMETER :: B8ADOF91Wvs = 6640
+ INTEGER(IntKi), PARAMETER :: B8ADOF92Wvs = 6641
+ INTEGER(IntKi), PARAMETER :: B8ADOF93Wvs = 6642
+ INTEGER(IntKi), PARAMETER :: B8ADOF94Wvs = 6643
+ INTEGER(IntKi), PARAMETER :: B8ADOF95Wvs = 6644
+ INTEGER(IntKi), PARAMETER :: B8ADOF96Wvs = 6645
+ INTEGER(IntKi), PARAMETER :: B8ADOF97Wvs = 6646
+ INTEGER(IntKi), PARAMETER :: B8ADOF98Wvs = 6647
+ INTEGER(IntKi), PARAMETER :: B8ADOF99Wvs = 6648
+ INTEGER(IntKi), PARAMETER :: B9ADOF1Wvs = 6649
+ INTEGER(IntKi), PARAMETER :: B9ADOF2Wvs = 6650
+ INTEGER(IntKi), PARAMETER :: B9ADOF3Wvs = 6651
+ INTEGER(IntKi), PARAMETER :: B9ADOF4Wvs = 6652
+ INTEGER(IntKi), PARAMETER :: B9ADOF5Wvs = 6653
+ INTEGER(IntKi), PARAMETER :: B9ADOF6Wvs = 6654
+ INTEGER(IntKi), PARAMETER :: B9ADOF7Wvs = 6655
+ INTEGER(IntKi), PARAMETER :: B9ADOF8Wvs = 6656
+ INTEGER(IntKi), PARAMETER :: B9ADOF9Wvs = 6657
+ INTEGER(IntKi), PARAMETER :: B9ADOF10Wvs = 6658
+ INTEGER(IntKi), PARAMETER :: B9ADOF11Wvs = 6659
+ INTEGER(IntKi), PARAMETER :: B9ADOF12Wvs = 6660
+ INTEGER(IntKi), PARAMETER :: B9ADOF13Wvs = 6661
+ INTEGER(IntKi), PARAMETER :: B9ADOF14Wvs = 6662
+ INTEGER(IntKi), PARAMETER :: B9ADOF15Wvs = 6663
+ INTEGER(IntKi), PARAMETER :: B9ADOF16Wvs = 6664
+ INTEGER(IntKi), PARAMETER :: B9ADOF17Wvs = 6665
+ INTEGER(IntKi), PARAMETER :: B9ADOF18Wvs = 6666
+ INTEGER(IntKi), PARAMETER :: B9ADOF19Wvs = 6667
+ INTEGER(IntKi), PARAMETER :: B9ADOF20Wvs = 6668
+ INTEGER(IntKi), PARAMETER :: B9ADOF21Wvs = 6669
+ INTEGER(IntKi), PARAMETER :: B9ADOF22Wvs = 6670
+ INTEGER(IntKi), PARAMETER :: B9ADOF23Wvs = 6671
+ INTEGER(IntKi), PARAMETER :: B9ADOF24Wvs = 6672
+ INTEGER(IntKi), PARAMETER :: B9ADOF25Wvs = 6673
+ INTEGER(IntKi), PARAMETER :: B9ADOF26Wvs = 6674
+ INTEGER(IntKi), PARAMETER :: B9ADOF27Wvs = 6675
+ INTEGER(IntKi), PARAMETER :: B9ADOF28Wvs = 6676
+ INTEGER(IntKi), PARAMETER :: B9ADOF29Wvs = 6677
+ INTEGER(IntKi), PARAMETER :: B9ADOF30Wvs = 6678
+ INTEGER(IntKi), PARAMETER :: B9ADOF31Wvs = 6679
+ INTEGER(IntKi), PARAMETER :: B9ADOF32Wvs = 6680
+ INTEGER(IntKi), PARAMETER :: B9ADOF33Wvs = 6681
+ INTEGER(IntKi), PARAMETER :: B9ADOF34Wvs = 6682
+ INTEGER(IntKi), PARAMETER :: B9ADOF35Wvs = 6683
+ INTEGER(IntKi), PARAMETER :: B9ADOF36Wvs = 6684
+ INTEGER(IntKi), PARAMETER :: B9ADOF37Wvs = 6685
+ INTEGER(IntKi), PARAMETER :: B9ADOF38Wvs = 6686
+ INTEGER(IntKi), PARAMETER :: B9ADOF39Wvs = 6687
+ INTEGER(IntKi), PARAMETER :: B9ADOF40Wvs = 6688
+ INTEGER(IntKi), PARAMETER :: B9ADOF41Wvs = 6689
+ INTEGER(IntKi), PARAMETER :: B9ADOF42Wvs = 6690
+ INTEGER(IntKi), PARAMETER :: B9ADOF43Wvs = 6691
+ INTEGER(IntKi), PARAMETER :: B9ADOF44Wvs = 6692
+ INTEGER(IntKi), PARAMETER :: B9ADOF45Wvs = 6693
+ INTEGER(IntKi), PARAMETER :: B9ADOF46Wvs = 6694
+ INTEGER(IntKi), PARAMETER :: B9ADOF47Wvs = 6695
+ INTEGER(IntKi), PARAMETER :: B9ADOF48Wvs = 6696
+ INTEGER(IntKi), PARAMETER :: B9ADOF49Wvs = 6697
+ INTEGER(IntKi), PARAMETER :: B9ADOF50Wvs = 6698
+ INTEGER(IntKi), PARAMETER :: B9ADOF51Wvs = 6699
+ INTEGER(IntKi), PARAMETER :: B9ADOF52Wvs = 6700
+ INTEGER(IntKi), PARAMETER :: B9ADOF53Wvs = 6701
+ INTEGER(IntKi), PARAMETER :: B9ADOF54Wvs = 6702
+ INTEGER(IntKi), PARAMETER :: B9ADOF55Wvs = 6703
+ INTEGER(IntKi), PARAMETER :: B9ADOF56Wvs = 6704
+ INTEGER(IntKi), PARAMETER :: B9ADOF57Wvs = 6705
+ INTEGER(IntKi), PARAMETER :: B9ADOF58Wvs = 6706
+ INTEGER(IntKi), PARAMETER :: B9ADOF59Wvs = 6707
+ INTEGER(IntKi), PARAMETER :: B9ADOF60Wvs = 6708
+ INTEGER(IntKi), PARAMETER :: B9ADOF61Wvs = 6709
+ INTEGER(IntKi), PARAMETER :: B9ADOF62Wvs = 6710
+ INTEGER(IntKi), PARAMETER :: B9ADOF63Wvs = 6711
+ INTEGER(IntKi), PARAMETER :: B9ADOF64Wvs = 6712
+ INTEGER(IntKi), PARAMETER :: B9ADOF65Wvs = 6713
+ INTEGER(IntKi), PARAMETER :: B9ADOF66Wvs = 6714
+ INTEGER(IntKi), PARAMETER :: B9ADOF67Wvs = 6715
+ INTEGER(IntKi), PARAMETER :: B9ADOF68Wvs = 6716
+ INTEGER(IntKi), PARAMETER :: B9ADOF69Wvs = 6717
+ INTEGER(IntKi), PARAMETER :: B9ADOF70Wvs = 6718
+ INTEGER(IntKi), PARAMETER :: B9ADOF71Wvs = 6719
+ INTEGER(IntKi), PARAMETER :: B9ADOF72Wvs = 6720
+ INTEGER(IntKi), PARAMETER :: B9ADOF73Wvs = 6721
+ INTEGER(IntKi), PARAMETER :: B9ADOF74Wvs = 6722
+ INTEGER(IntKi), PARAMETER :: B9ADOF75Wvs = 6723
+ INTEGER(IntKi), PARAMETER :: B9ADOF76Wvs = 6724
+ INTEGER(IntKi), PARAMETER :: B9ADOF77Wvs = 6725
+ INTEGER(IntKi), PARAMETER :: B9ADOF78Wvs = 6726
+ INTEGER(IntKi), PARAMETER :: B9ADOF79Wvs = 6727
+ INTEGER(IntKi), PARAMETER :: B9ADOF80Wvs = 6728
+ INTEGER(IntKi), PARAMETER :: B9ADOF81Wvs = 6729
+ INTEGER(IntKi), PARAMETER :: B9ADOF82Wvs = 6730
+ INTEGER(IntKi), PARAMETER :: B9ADOF83Wvs = 6731
+ INTEGER(IntKi), PARAMETER :: B9ADOF84Wvs = 6732
+ INTEGER(IntKi), PARAMETER :: B9ADOF85Wvs = 6733
+ INTEGER(IntKi), PARAMETER :: B9ADOF86Wvs = 6734
+ INTEGER(IntKi), PARAMETER :: B9ADOF87Wvs = 6735
+ INTEGER(IntKi), PARAMETER :: B9ADOF88Wvs = 6736
+ INTEGER(IntKi), PARAMETER :: B9ADOF89Wvs = 6737
+ INTEGER(IntKi), PARAMETER :: B9ADOF90Wvs = 6738
+ INTEGER(IntKi), PARAMETER :: B9ADOF91Wvs = 6739
+ INTEGER(IntKi), PARAMETER :: B9ADOF92Wvs = 6740
+ INTEGER(IntKi), PARAMETER :: B9ADOF93Wvs = 6741
+ INTEGER(IntKi), PARAMETER :: B9ADOF94Wvs = 6742
+ INTEGER(IntKi), PARAMETER :: B9ADOF95Wvs = 6743
+ INTEGER(IntKi), PARAMETER :: B9ADOF96Wvs = 6744
+ INTEGER(IntKi), PARAMETER :: B9ADOF97Wvs = 6745
+ INTEGER(IntKi), PARAMETER :: B9ADOF98Wvs = 6746
+ INTEGER(IntKi), PARAMETER :: B9ADOF99Wvs = 6747
! The maximum number of output channels which can be output by the code.
- INTEGER(IntKi), PARAMETER, PUBLIC :: MaxOutPts = 510
+ INTEGER(IntKi), PARAMETER, PUBLIC :: MaxOutPts = 6747
!End of code generated by Matlab script Write_ChckOutLst
! ===================================================================================================
@@ -624,7 +6861,407 @@ MODULE HydroDyn_Output
B1RdtMyi,B2RdtMyi,B3RdtMyi,B4RdtMyi,B5RdtMyi,B6RdtMyi,B7RdtMyi,B8RdtMyi,B9RdtMyi, &
B1RdtMzi,B2RdtMzi,B3RdtMzi,B4RdtMzi,B5RdtMzi,B6RdtMzi,B7RdtMzi,B8RdtMzi,B9RdtMzi/), &
(/9,6/)))
-
+ INTEGER, PARAMETER :: FADOFAdd(99,9) = transpose(reshape((/B1ADOF1Add,B1ADOF1Add,B1ADOF1Add,B1ADOF1Add,B1ADOF1Add,B1ADOF1Add,B1ADOF1Add,B1ADOF1Add,B1ADOF1Add, &
+ B1ADOF2Add,B1ADOF2Add,B1ADOF2Add,B1ADOF2Add,B1ADOF2Add,B1ADOF2Add,B1ADOF2Add,B1ADOF2Add,B1ADOF2Add, &
+ B1ADOF3Add,B1ADOF3Add,B1ADOF3Add,B1ADOF3Add,B1ADOF3Add,B1ADOF3Add,B1ADOF3Add,B1ADOF3Add,B1ADOF3Add, &
+ B1ADOF4Add,B1ADOF4Add,B1ADOF4Add,B1ADOF4Add,B1ADOF4Add,B1ADOF4Add,B1ADOF4Add,B1ADOF4Add,B1ADOF4Add, &
+ B1ADOF5Add,B1ADOF5Add,B1ADOF5Add,B1ADOF5Add,B1ADOF5Add,B1ADOF5Add,B1ADOF5Add,B1ADOF5Add,B1ADOF5Add, &
+ B1ADOF6Add,B1ADOF6Add,B1ADOF6Add,B1ADOF6Add,B1ADOF6Add,B1ADOF6Add,B1ADOF6Add,B1ADOF6Add,B1ADOF6Add, &
+ B1ADOF7Add,B1ADOF7Add,B1ADOF7Add,B1ADOF7Add,B1ADOF7Add,B1ADOF7Add,B1ADOF7Add,B1ADOF7Add,B1ADOF7Add, &
+ B1ADOF8Add,B1ADOF8Add,B1ADOF8Add,B1ADOF8Add,B1ADOF8Add,B1ADOF8Add,B1ADOF8Add,B1ADOF8Add,B1ADOF8Add, &
+ B1ADOF9Add,B1ADOF9Add,B1ADOF9Add,B1ADOF9Add,B1ADOF9Add,B1ADOF9Add,B1ADOF9Add,B1ADOF9Add,B1ADOF9Add, &
+ B1ADOF10Add,B1ADOF10Add,B1ADOF10Add,B1ADOF10Add,B1ADOF10Add,B1ADOF10Add,B1ADOF10Add,B1ADOF10Add,B1ADOF10Add, &
+ B1ADOF11Add,B1ADOF11Add,B1ADOF11Add,B1ADOF11Add,B1ADOF11Add,B1ADOF11Add,B1ADOF11Add,B1ADOF11Add,B1ADOF11Add, &
+ B1ADOF12Add,B1ADOF12Add,B1ADOF12Add,B1ADOF12Add,B1ADOF12Add,B1ADOF12Add,B1ADOF12Add,B1ADOF12Add,B1ADOF12Add, &
+ B1ADOF13Add,B1ADOF13Add,B1ADOF13Add,B1ADOF13Add,B1ADOF13Add,B1ADOF13Add,B1ADOF13Add,B1ADOF13Add,B1ADOF13Add, &
+ B1ADOF14Add,B1ADOF14Add,B1ADOF14Add,B1ADOF14Add,B1ADOF14Add,B1ADOF14Add,B1ADOF14Add,B1ADOF14Add,B1ADOF14Add, &
+ B1ADOF15Add,B1ADOF15Add,B1ADOF15Add,B1ADOF15Add,B1ADOF15Add,B1ADOF15Add,B1ADOF15Add,B1ADOF15Add,B1ADOF15Add, &
+ B1ADOF16Add,B1ADOF16Add,B1ADOF16Add,B1ADOF16Add,B1ADOF16Add,B1ADOF16Add,B1ADOF16Add,B1ADOF16Add,B1ADOF16Add, &
+ B1ADOF17Add,B1ADOF17Add,B1ADOF17Add,B1ADOF17Add,B1ADOF17Add,B1ADOF17Add,B1ADOF17Add,B1ADOF17Add,B1ADOF17Add, &
+ B1ADOF18Add,B1ADOF18Add,B1ADOF18Add,B1ADOF18Add,B1ADOF18Add,B1ADOF18Add,B1ADOF18Add,B1ADOF18Add,B1ADOF18Add, &
+ B1ADOF19Add,B1ADOF19Add,B1ADOF19Add,B1ADOF19Add,B1ADOF19Add,B1ADOF19Add,B1ADOF19Add,B1ADOF19Add,B1ADOF19Add, &
+ B1ADOF20Add,B1ADOF20Add,B1ADOF20Add,B1ADOF20Add,B1ADOF20Add,B1ADOF20Add,B1ADOF20Add,B1ADOF20Add,B1ADOF20Add, &
+ B1ADOF21Add,B1ADOF21Add,B1ADOF21Add,B1ADOF21Add,B1ADOF21Add,B1ADOF21Add,B1ADOF21Add,B1ADOF21Add,B1ADOF21Add, &
+ B1ADOF22Add,B1ADOF22Add,B1ADOF22Add,B1ADOF22Add,B1ADOF22Add,B1ADOF22Add,B1ADOF22Add,B1ADOF22Add,B1ADOF22Add, &
+ B1ADOF23Add,B1ADOF23Add,B1ADOF23Add,B1ADOF23Add,B1ADOF23Add,B1ADOF23Add,B1ADOF23Add,B1ADOF23Add,B1ADOF23Add, &
+ B1ADOF24Add,B1ADOF24Add,B1ADOF24Add,B1ADOF24Add,B1ADOF24Add,B1ADOF24Add,B1ADOF24Add,B1ADOF24Add,B1ADOF24Add, &
+ B1ADOF25Add,B1ADOF25Add,B1ADOF25Add,B1ADOF25Add,B1ADOF25Add,B1ADOF25Add,B1ADOF25Add,B1ADOF25Add,B1ADOF25Add, &
+ B1ADOF26Add,B1ADOF26Add,B1ADOF26Add,B1ADOF26Add,B1ADOF26Add,B1ADOF26Add,B1ADOF26Add,B1ADOF26Add,B1ADOF26Add, &
+ B1ADOF27Add,B1ADOF27Add,B1ADOF27Add,B1ADOF27Add,B1ADOF27Add,B1ADOF27Add,B1ADOF27Add,B1ADOF27Add,B1ADOF27Add, &
+ B1ADOF28Add,B1ADOF28Add,B1ADOF28Add,B1ADOF28Add,B1ADOF28Add,B1ADOF28Add,B1ADOF28Add,B1ADOF28Add,B1ADOF28Add, &
+ B1ADOF29Add,B1ADOF29Add,B1ADOF29Add,B1ADOF29Add,B1ADOF29Add,B1ADOF29Add,B1ADOF29Add,B1ADOF29Add,B1ADOF29Add, &
+ B1ADOF30Add,B1ADOF30Add,B1ADOF30Add,B1ADOF30Add,B1ADOF30Add,B1ADOF30Add,B1ADOF30Add,B1ADOF30Add,B1ADOF30Add, &
+ B1ADOF31Add,B1ADOF31Add,B1ADOF31Add,B1ADOF31Add,B1ADOF31Add,B1ADOF31Add,B1ADOF31Add,B1ADOF31Add,B1ADOF31Add, &
+ B1ADOF32Add,B1ADOF32Add,B1ADOF32Add,B1ADOF32Add,B1ADOF32Add,B1ADOF32Add,B1ADOF32Add,B1ADOF32Add,B1ADOF32Add, &
+ B1ADOF33Add,B1ADOF33Add,B1ADOF33Add,B1ADOF33Add,B1ADOF33Add,B1ADOF33Add,B1ADOF33Add,B1ADOF33Add,B1ADOF33Add, &
+ B1ADOF34Add,B1ADOF34Add,B1ADOF34Add,B1ADOF34Add,B1ADOF34Add,B1ADOF34Add,B1ADOF34Add,B1ADOF34Add,B1ADOF34Add, &
+ B1ADOF35Add,B1ADOF35Add,B1ADOF35Add,B1ADOF35Add,B1ADOF35Add,B1ADOF35Add,B1ADOF35Add,B1ADOF35Add,B1ADOF35Add, &
+ B1ADOF36Add,B1ADOF36Add,B1ADOF36Add,B1ADOF36Add,B1ADOF36Add,B1ADOF36Add,B1ADOF36Add,B1ADOF36Add,B1ADOF36Add, &
+ B1ADOF37Add,B1ADOF37Add,B1ADOF37Add,B1ADOF37Add,B1ADOF37Add,B1ADOF37Add,B1ADOF37Add,B1ADOF37Add,B1ADOF37Add, &
+ B1ADOF38Add,B1ADOF38Add,B1ADOF38Add,B1ADOF38Add,B1ADOF38Add,B1ADOF38Add,B1ADOF38Add,B1ADOF38Add,B1ADOF38Add, &
+ B1ADOF39Add,B1ADOF39Add,B1ADOF39Add,B1ADOF39Add,B1ADOF39Add,B1ADOF39Add,B1ADOF39Add,B1ADOF39Add,B1ADOF39Add, &
+ B1ADOF40Add,B1ADOF40Add,B1ADOF40Add,B1ADOF40Add,B1ADOF40Add,B1ADOF40Add,B1ADOF40Add,B1ADOF40Add,B1ADOF40Add, &
+ B1ADOF41Add,B1ADOF41Add,B1ADOF41Add,B1ADOF41Add,B1ADOF41Add,B1ADOF41Add,B1ADOF41Add,B1ADOF41Add,B1ADOF41Add, &
+ B1ADOF42Add,B1ADOF42Add,B1ADOF42Add,B1ADOF42Add,B1ADOF42Add,B1ADOF42Add,B1ADOF42Add,B1ADOF42Add,B1ADOF42Add, &
+ B1ADOF43Add,B1ADOF43Add,B1ADOF43Add,B1ADOF43Add,B1ADOF43Add,B1ADOF43Add,B1ADOF43Add,B1ADOF43Add,B1ADOF43Add, &
+ B1ADOF44Add,B1ADOF44Add,B1ADOF44Add,B1ADOF44Add,B1ADOF44Add,B1ADOF44Add,B1ADOF44Add,B1ADOF44Add,B1ADOF44Add, &
+ B1ADOF45Add,B1ADOF45Add,B1ADOF45Add,B1ADOF45Add,B1ADOF45Add,B1ADOF45Add,B1ADOF45Add,B1ADOF45Add,B1ADOF45Add, &
+ B1ADOF46Add,B1ADOF46Add,B1ADOF46Add,B1ADOF46Add,B1ADOF46Add,B1ADOF46Add,B1ADOF46Add,B1ADOF46Add,B1ADOF46Add, &
+ B1ADOF47Add,B1ADOF47Add,B1ADOF47Add,B1ADOF47Add,B1ADOF47Add,B1ADOF47Add,B1ADOF47Add,B1ADOF47Add,B1ADOF47Add, &
+ B1ADOF48Add,B1ADOF48Add,B1ADOF48Add,B1ADOF48Add,B1ADOF48Add,B1ADOF48Add,B1ADOF48Add,B1ADOF48Add,B1ADOF48Add, &
+ B1ADOF49Add,B1ADOF49Add,B1ADOF49Add,B1ADOF49Add,B1ADOF49Add,B1ADOF49Add,B1ADOF49Add,B1ADOF49Add,B1ADOF49Add, &
+ B1ADOF50Add,B1ADOF50Add,B1ADOF50Add,B1ADOF50Add,B1ADOF50Add,B1ADOF50Add,B1ADOF50Add,B1ADOF50Add,B1ADOF50Add, &
+ B1ADOF51Add,B1ADOF51Add,B1ADOF51Add,B1ADOF51Add,B1ADOF51Add,B1ADOF51Add,B1ADOF51Add,B1ADOF51Add,B1ADOF51Add, &
+ B1ADOF52Add,B1ADOF52Add,B1ADOF52Add,B1ADOF52Add,B1ADOF52Add,B1ADOF52Add,B1ADOF52Add,B1ADOF52Add,B1ADOF52Add, &
+ B1ADOF53Add,B1ADOF53Add,B1ADOF53Add,B1ADOF53Add,B1ADOF53Add,B1ADOF53Add,B1ADOF53Add,B1ADOF53Add,B1ADOF53Add, &
+ B1ADOF54Add,B1ADOF54Add,B1ADOF54Add,B1ADOF54Add,B1ADOF54Add,B1ADOF54Add,B1ADOF54Add,B1ADOF54Add,B1ADOF54Add, &
+ B1ADOF55Add,B1ADOF55Add,B1ADOF55Add,B1ADOF55Add,B1ADOF55Add,B1ADOF55Add,B1ADOF55Add,B1ADOF55Add,B1ADOF55Add, &
+ B1ADOF56Add,B1ADOF56Add,B1ADOF56Add,B1ADOF56Add,B1ADOF56Add,B1ADOF56Add,B1ADOF56Add,B1ADOF56Add,B1ADOF56Add, &
+ B1ADOF57Add,B1ADOF57Add,B1ADOF57Add,B1ADOF57Add,B1ADOF57Add,B1ADOF57Add,B1ADOF57Add,B1ADOF57Add,B1ADOF57Add, &
+ B1ADOF58Add,B1ADOF58Add,B1ADOF58Add,B1ADOF58Add,B1ADOF58Add,B1ADOF58Add,B1ADOF58Add,B1ADOF58Add,B1ADOF58Add, &
+ B1ADOF59Add,B1ADOF59Add,B1ADOF59Add,B1ADOF59Add,B1ADOF59Add,B1ADOF59Add,B1ADOF59Add,B1ADOF59Add,B1ADOF59Add, &
+ B1ADOF60Add,B1ADOF60Add,B1ADOF60Add,B1ADOF60Add,B1ADOF60Add,B1ADOF60Add,B1ADOF60Add,B1ADOF60Add,B1ADOF60Add, &
+ B1ADOF61Add,B1ADOF61Add,B1ADOF61Add,B1ADOF61Add,B1ADOF61Add,B1ADOF61Add,B1ADOF61Add,B1ADOF61Add,B1ADOF61Add, &
+ B1ADOF62Add,B1ADOF62Add,B1ADOF62Add,B1ADOF62Add,B1ADOF62Add,B1ADOF62Add,B1ADOF62Add,B1ADOF62Add,B1ADOF62Add, &
+ B1ADOF63Add,B1ADOF63Add,B1ADOF63Add,B1ADOF63Add,B1ADOF63Add,B1ADOF63Add,B1ADOF63Add,B1ADOF63Add,B1ADOF63Add, &
+ B1ADOF64Add,B1ADOF64Add,B1ADOF64Add,B1ADOF64Add,B1ADOF64Add,B1ADOF64Add,B1ADOF64Add,B1ADOF64Add,B1ADOF64Add, &
+ B1ADOF65Add,B1ADOF65Add,B1ADOF65Add,B1ADOF65Add,B1ADOF65Add,B1ADOF65Add,B1ADOF65Add,B1ADOF65Add,B1ADOF65Add, &
+ B1ADOF66Add,B1ADOF66Add,B1ADOF66Add,B1ADOF66Add,B1ADOF66Add,B1ADOF66Add,B1ADOF66Add,B1ADOF66Add,B1ADOF66Add, &
+ B1ADOF67Add,B1ADOF67Add,B1ADOF67Add,B1ADOF67Add,B1ADOF67Add,B1ADOF67Add,B1ADOF67Add,B1ADOF67Add,B1ADOF67Add, &
+ B1ADOF68Add,B1ADOF68Add,B1ADOF68Add,B1ADOF68Add,B1ADOF68Add,B1ADOF68Add,B1ADOF68Add,B1ADOF68Add,B1ADOF68Add, &
+ B1ADOF69Add,B1ADOF69Add,B1ADOF69Add,B1ADOF69Add,B1ADOF69Add,B1ADOF69Add,B1ADOF69Add,B1ADOF69Add,B1ADOF69Add, &
+ B1ADOF70Add,B1ADOF70Add,B1ADOF70Add,B1ADOF70Add,B1ADOF70Add,B1ADOF70Add,B1ADOF70Add,B1ADOF70Add,B1ADOF70Add, &
+ B1ADOF71Add,B1ADOF71Add,B1ADOF71Add,B1ADOF71Add,B1ADOF71Add,B1ADOF71Add,B1ADOF71Add,B1ADOF71Add,B1ADOF71Add, &
+ B1ADOF72Add,B1ADOF72Add,B1ADOF72Add,B1ADOF72Add,B1ADOF72Add,B1ADOF72Add,B1ADOF72Add,B1ADOF72Add,B1ADOF72Add, &
+ B1ADOF73Add,B1ADOF73Add,B1ADOF73Add,B1ADOF73Add,B1ADOF73Add,B1ADOF73Add,B1ADOF73Add,B1ADOF73Add,B1ADOF73Add, &
+ B1ADOF74Add,B1ADOF74Add,B1ADOF74Add,B1ADOF74Add,B1ADOF74Add,B1ADOF74Add,B1ADOF74Add,B1ADOF74Add,B1ADOF74Add, &
+ B1ADOF75Add,B1ADOF75Add,B1ADOF75Add,B1ADOF75Add,B1ADOF75Add,B1ADOF75Add,B1ADOF75Add,B1ADOF75Add,B1ADOF75Add, &
+ B1ADOF76Add,B1ADOF76Add,B1ADOF76Add,B1ADOF76Add,B1ADOF76Add,B1ADOF76Add,B1ADOF76Add,B1ADOF76Add,B1ADOF76Add, &
+ B1ADOF77Add,B1ADOF77Add,B1ADOF77Add,B1ADOF77Add,B1ADOF77Add,B1ADOF77Add,B1ADOF77Add,B1ADOF77Add,B1ADOF77Add, &
+ B1ADOF78Add,B1ADOF78Add,B1ADOF78Add,B1ADOF78Add,B1ADOF78Add,B1ADOF78Add,B1ADOF78Add,B1ADOF78Add,B1ADOF78Add, &
+ B1ADOF79Add,B1ADOF79Add,B1ADOF79Add,B1ADOF79Add,B1ADOF79Add,B1ADOF79Add,B1ADOF79Add,B1ADOF79Add,B1ADOF79Add, &
+ B1ADOF80Add,B1ADOF80Add,B1ADOF80Add,B1ADOF80Add,B1ADOF80Add,B1ADOF80Add,B1ADOF80Add,B1ADOF80Add,B1ADOF80Add, &
+ B1ADOF81Add,B1ADOF81Add,B1ADOF81Add,B1ADOF81Add,B1ADOF81Add,B1ADOF81Add,B1ADOF81Add,B1ADOF81Add,B1ADOF81Add, &
+ B1ADOF82Add,B1ADOF82Add,B1ADOF82Add,B1ADOF82Add,B1ADOF82Add,B1ADOF82Add,B1ADOF82Add,B1ADOF82Add,B1ADOF82Add, &
+ B1ADOF83Add,B1ADOF83Add,B1ADOF83Add,B1ADOF83Add,B1ADOF83Add,B1ADOF83Add,B1ADOF83Add,B1ADOF83Add,B1ADOF83Add, &
+ B1ADOF84Add,B1ADOF84Add,B1ADOF84Add,B1ADOF84Add,B1ADOF84Add,B1ADOF84Add,B1ADOF84Add,B1ADOF84Add,B1ADOF84Add, &
+ B1ADOF85Add,B1ADOF85Add,B1ADOF85Add,B1ADOF85Add,B1ADOF85Add,B1ADOF85Add,B1ADOF85Add,B1ADOF85Add,B1ADOF85Add, &
+ B1ADOF86Add,B1ADOF86Add,B1ADOF86Add,B1ADOF86Add,B1ADOF86Add,B1ADOF86Add,B1ADOF86Add,B1ADOF86Add,B1ADOF86Add, &
+ B1ADOF87Add,B1ADOF87Add,B1ADOF87Add,B1ADOF87Add,B1ADOF87Add,B1ADOF87Add,B1ADOF87Add,B1ADOF87Add,B1ADOF87Add, &
+ B1ADOF88Add,B1ADOF88Add,B1ADOF88Add,B1ADOF88Add,B1ADOF88Add,B1ADOF88Add,B1ADOF88Add,B1ADOF88Add,B1ADOF88Add, &
+ B1ADOF89Add,B1ADOF89Add,B1ADOF89Add,B1ADOF89Add,B1ADOF89Add,B1ADOF89Add,B1ADOF89Add,B1ADOF89Add,B1ADOF89Add, &
+ B1ADOF90Add,B1ADOF90Add,B1ADOF90Add,B1ADOF90Add,B1ADOF90Add,B1ADOF90Add,B1ADOF90Add,B1ADOF90Add,B1ADOF90Add, &
+ B1ADOF91Add,B1ADOF91Add,B1ADOF91Add,B1ADOF91Add,B1ADOF91Add,B1ADOF91Add,B1ADOF91Add,B1ADOF91Add,B1ADOF91Add, &
+ B1ADOF92Add,B1ADOF92Add,B1ADOF92Add,B1ADOF92Add,B1ADOF92Add,B1ADOF92Add,B1ADOF92Add,B1ADOF92Add,B1ADOF92Add, &
+ B1ADOF93Add,B1ADOF93Add,B1ADOF93Add,B1ADOF93Add,B1ADOF93Add,B1ADOF93Add,B1ADOF93Add,B1ADOF93Add,B1ADOF93Add, &
+ B1ADOF94Add,B1ADOF94Add,B1ADOF94Add,B1ADOF94Add,B1ADOF94Add,B1ADOF94Add,B1ADOF94Add,B1ADOF94Add,B1ADOF94Add, &
+ B1ADOF95Add,B1ADOF95Add,B1ADOF95Add,B1ADOF95Add,B1ADOF95Add,B1ADOF95Add,B1ADOF95Add,B1ADOF95Add,B1ADOF95Add, &
+ B1ADOF96Add,B1ADOF96Add,B1ADOF96Add,B1ADOF96Add,B1ADOF96Add,B1ADOF96Add,B1ADOF96Add,B1ADOF96Add,B1ADOF96Add, &
+ B1ADOF97Add,B1ADOF97Add,B1ADOF97Add,B1ADOF97Add,B1ADOF97Add,B1ADOF97Add,B1ADOF97Add,B1ADOF97Add,B1ADOF97Add, &
+ B1ADOF98Add,B1ADOF98Add,B1ADOF98Add,B1ADOF98Add,B1ADOF98Add,B1ADOF98Add,B1ADOF98Add,B1ADOF98Add,B1ADOF98Add, &
+ B1ADOF99Add,B1ADOF99Add,B1ADOF99Add,B1ADOF99Add,B1ADOF99Add,B1ADOF99Add,B1ADOF99Add,B1ADOF99Add,B1ADOF99Add/), &
+ (/9,99/)))
+ INTEGER, PARAMETER :: FADOFRdt(99,9) = transpose(reshape((/B1ADOF1Rdt,B1ADOF1Rdt,B1ADOF1Rdt,B1ADOF1Rdt,B1ADOF1Rdt,B1ADOF1Rdt,B1ADOF1Rdt,B1ADOF1Rdt,B1ADOF1Rdt, &
+ B1ADOF2Rdt,B1ADOF2Rdt,B1ADOF2Rdt,B1ADOF2Rdt,B1ADOF2Rdt,B1ADOF2Rdt,B1ADOF2Rdt,B1ADOF2Rdt,B1ADOF2Rdt, &
+ B1ADOF3Rdt,B1ADOF3Rdt,B1ADOF3Rdt,B1ADOF3Rdt,B1ADOF3Rdt,B1ADOF3Rdt,B1ADOF3Rdt,B1ADOF3Rdt,B1ADOF3Rdt, &
+ B1ADOF4Rdt,B1ADOF4Rdt,B1ADOF4Rdt,B1ADOF4Rdt,B1ADOF4Rdt,B1ADOF4Rdt,B1ADOF4Rdt,B1ADOF4Rdt,B1ADOF4Rdt, &
+ B1ADOF5Rdt,B1ADOF5Rdt,B1ADOF5Rdt,B1ADOF5Rdt,B1ADOF5Rdt,B1ADOF5Rdt,B1ADOF5Rdt,B1ADOF5Rdt,B1ADOF5Rdt, &
+ B1ADOF6Rdt,B1ADOF6Rdt,B1ADOF6Rdt,B1ADOF6Rdt,B1ADOF6Rdt,B1ADOF6Rdt,B1ADOF6Rdt,B1ADOF6Rdt,B1ADOF6Rdt, &
+ B1ADOF7Rdt,B1ADOF7Rdt,B1ADOF7Rdt,B1ADOF7Rdt,B1ADOF7Rdt,B1ADOF7Rdt,B1ADOF7Rdt,B1ADOF7Rdt,B1ADOF7Rdt, &
+ B1ADOF8Rdt,B1ADOF8Rdt,B1ADOF8Rdt,B1ADOF8Rdt,B1ADOF8Rdt,B1ADOF8Rdt,B1ADOF8Rdt,B1ADOF8Rdt,B1ADOF8Rdt, &
+ B1ADOF9Rdt,B1ADOF9Rdt,B1ADOF9Rdt,B1ADOF9Rdt,B1ADOF9Rdt,B1ADOF9Rdt,B1ADOF9Rdt,B1ADOF9Rdt,B1ADOF9Rdt, &
+ B1ADOF10Rdt,B1ADOF10Rdt,B1ADOF10Rdt,B1ADOF10Rdt,B1ADOF10Rdt,B1ADOF10Rdt,B1ADOF10Rdt,B1ADOF10Rdt,B1ADOF10Rdt, &
+ B1ADOF11Rdt,B1ADOF11Rdt,B1ADOF11Rdt,B1ADOF11Rdt,B1ADOF11Rdt,B1ADOF11Rdt,B1ADOF11Rdt,B1ADOF11Rdt,B1ADOF11Rdt, &
+ B1ADOF12Rdt,B1ADOF12Rdt,B1ADOF12Rdt,B1ADOF12Rdt,B1ADOF12Rdt,B1ADOF12Rdt,B1ADOF12Rdt,B1ADOF12Rdt,B1ADOF12Rdt, &
+ B1ADOF13Rdt,B1ADOF13Rdt,B1ADOF13Rdt,B1ADOF13Rdt,B1ADOF13Rdt,B1ADOF13Rdt,B1ADOF13Rdt,B1ADOF13Rdt,B1ADOF13Rdt, &
+ B1ADOF14Rdt,B1ADOF14Rdt,B1ADOF14Rdt,B1ADOF14Rdt,B1ADOF14Rdt,B1ADOF14Rdt,B1ADOF14Rdt,B1ADOF14Rdt,B1ADOF14Rdt, &
+ B1ADOF15Rdt,B1ADOF15Rdt,B1ADOF15Rdt,B1ADOF15Rdt,B1ADOF15Rdt,B1ADOF15Rdt,B1ADOF15Rdt,B1ADOF15Rdt,B1ADOF15Rdt, &
+ B1ADOF16Rdt,B1ADOF16Rdt,B1ADOF16Rdt,B1ADOF16Rdt,B1ADOF16Rdt,B1ADOF16Rdt,B1ADOF16Rdt,B1ADOF16Rdt,B1ADOF16Rdt, &
+ B1ADOF17Rdt,B1ADOF17Rdt,B1ADOF17Rdt,B1ADOF17Rdt,B1ADOF17Rdt,B1ADOF17Rdt,B1ADOF17Rdt,B1ADOF17Rdt,B1ADOF17Rdt, &
+ B1ADOF18Rdt,B1ADOF18Rdt,B1ADOF18Rdt,B1ADOF18Rdt,B1ADOF18Rdt,B1ADOF18Rdt,B1ADOF18Rdt,B1ADOF18Rdt,B1ADOF18Rdt, &
+ B1ADOF19Rdt,B1ADOF19Rdt,B1ADOF19Rdt,B1ADOF19Rdt,B1ADOF19Rdt,B1ADOF19Rdt,B1ADOF19Rdt,B1ADOF19Rdt,B1ADOF19Rdt, &
+ B1ADOF20Rdt,B1ADOF20Rdt,B1ADOF20Rdt,B1ADOF20Rdt,B1ADOF20Rdt,B1ADOF20Rdt,B1ADOF20Rdt,B1ADOF20Rdt,B1ADOF20Rdt, &
+ B1ADOF21Rdt,B1ADOF21Rdt,B1ADOF21Rdt,B1ADOF21Rdt,B1ADOF21Rdt,B1ADOF21Rdt,B1ADOF21Rdt,B1ADOF21Rdt,B1ADOF21Rdt, &
+ B1ADOF22Rdt,B1ADOF22Rdt,B1ADOF22Rdt,B1ADOF22Rdt,B1ADOF22Rdt,B1ADOF22Rdt,B1ADOF22Rdt,B1ADOF22Rdt,B1ADOF22Rdt, &
+ B1ADOF23Rdt,B1ADOF23Rdt,B1ADOF23Rdt,B1ADOF23Rdt,B1ADOF23Rdt,B1ADOF23Rdt,B1ADOF23Rdt,B1ADOF23Rdt,B1ADOF23Rdt, &
+ B1ADOF24Rdt,B1ADOF24Rdt,B1ADOF24Rdt,B1ADOF24Rdt,B1ADOF24Rdt,B1ADOF24Rdt,B1ADOF24Rdt,B1ADOF24Rdt,B1ADOF24Rdt, &
+ B1ADOF25Rdt,B1ADOF25Rdt,B1ADOF25Rdt,B1ADOF25Rdt,B1ADOF25Rdt,B1ADOF25Rdt,B1ADOF25Rdt,B1ADOF25Rdt,B1ADOF25Rdt, &
+ B1ADOF26Rdt,B1ADOF26Rdt,B1ADOF26Rdt,B1ADOF26Rdt,B1ADOF26Rdt,B1ADOF26Rdt,B1ADOF26Rdt,B1ADOF26Rdt,B1ADOF26Rdt, &
+ B1ADOF27Rdt,B1ADOF27Rdt,B1ADOF27Rdt,B1ADOF27Rdt,B1ADOF27Rdt,B1ADOF27Rdt,B1ADOF27Rdt,B1ADOF27Rdt,B1ADOF27Rdt, &
+ B1ADOF28Rdt,B1ADOF28Rdt,B1ADOF28Rdt,B1ADOF28Rdt,B1ADOF28Rdt,B1ADOF28Rdt,B1ADOF28Rdt,B1ADOF28Rdt,B1ADOF28Rdt, &
+ B1ADOF29Rdt,B1ADOF29Rdt,B1ADOF29Rdt,B1ADOF29Rdt,B1ADOF29Rdt,B1ADOF29Rdt,B1ADOF29Rdt,B1ADOF29Rdt,B1ADOF29Rdt, &
+ B1ADOF30Rdt,B1ADOF30Rdt,B1ADOF30Rdt,B1ADOF30Rdt,B1ADOF30Rdt,B1ADOF30Rdt,B1ADOF30Rdt,B1ADOF30Rdt,B1ADOF30Rdt, &
+ B1ADOF31Rdt,B1ADOF31Rdt,B1ADOF31Rdt,B1ADOF31Rdt,B1ADOF31Rdt,B1ADOF31Rdt,B1ADOF31Rdt,B1ADOF31Rdt,B1ADOF31Rdt, &
+ B1ADOF32Rdt,B1ADOF32Rdt,B1ADOF32Rdt,B1ADOF32Rdt,B1ADOF32Rdt,B1ADOF32Rdt,B1ADOF32Rdt,B1ADOF32Rdt,B1ADOF32Rdt, &
+ B1ADOF33Rdt,B1ADOF33Rdt,B1ADOF33Rdt,B1ADOF33Rdt,B1ADOF33Rdt,B1ADOF33Rdt,B1ADOF33Rdt,B1ADOF33Rdt,B1ADOF33Rdt, &
+ B1ADOF34Rdt,B1ADOF34Rdt,B1ADOF34Rdt,B1ADOF34Rdt,B1ADOF34Rdt,B1ADOF34Rdt,B1ADOF34Rdt,B1ADOF34Rdt,B1ADOF34Rdt, &
+ B1ADOF35Rdt,B1ADOF35Rdt,B1ADOF35Rdt,B1ADOF35Rdt,B1ADOF35Rdt,B1ADOF35Rdt,B1ADOF35Rdt,B1ADOF35Rdt,B1ADOF35Rdt, &
+ B1ADOF36Rdt,B1ADOF36Rdt,B1ADOF36Rdt,B1ADOF36Rdt,B1ADOF36Rdt,B1ADOF36Rdt,B1ADOF36Rdt,B1ADOF36Rdt,B1ADOF36Rdt, &
+ B1ADOF37Rdt,B1ADOF37Rdt,B1ADOF37Rdt,B1ADOF37Rdt,B1ADOF37Rdt,B1ADOF37Rdt,B1ADOF37Rdt,B1ADOF37Rdt,B1ADOF37Rdt, &
+ B1ADOF38Rdt,B1ADOF38Rdt,B1ADOF38Rdt,B1ADOF38Rdt,B1ADOF38Rdt,B1ADOF38Rdt,B1ADOF38Rdt,B1ADOF38Rdt,B1ADOF38Rdt, &
+ B1ADOF39Rdt,B1ADOF39Rdt,B1ADOF39Rdt,B1ADOF39Rdt,B1ADOF39Rdt,B1ADOF39Rdt,B1ADOF39Rdt,B1ADOF39Rdt,B1ADOF39Rdt, &
+ B1ADOF40Rdt,B1ADOF40Rdt,B1ADOF40Rdt,B1ADOF40Rdt,B1ADOF40Rdt,B1ADOF40Rdt,B1ADOF40Rdt,B1ADOF40Rdt,B1ADOF40Rdt, &
+ B1ADOF41Rdt,B1ADOF41Rdt,B1ADOF41Rdt,B1ADOF41Rdt,B1ADOF41Rdt,B1ADOF41Rdt,B1ADOF41Rdt,B1ADOF41Rdt,B1ADOF41Rdt, &
+ B1ADOF42Rdt,B1ADOF42Rdt,B1ADOF42Rdt,B1ADOF42Rdt,B1ADOF42Rdt,B1ADOF42Rdt,B1ADOF42Rdt,B1ADOF42Rdt,B1ADOF42Rdt, &
+ B1ADOF43Rdt,B1ADOF43Rdt,B1ADOF43Rdt,B1ADOF43Rdt,B1ADOF43Rdt,B1ADOF43Rdt,B1ADOF43Rdt,B1ADOF43Rdt,B1ADOF43Rdt, &
+ B1ADOF44Rdt,B1ADOF44Rdt,B1ADOF44Rdt,B1ADOF44Rdt,B1ADOF44Rdt,B1ADOF44Rdt,B1ADOF44Rdt,B1ADOF44Rdt,B1ADOF44Rdt, &
+ B1ADOF45Rdt,B1ADOF45Rdt,B1ADOF45Rdt,B1ADOF45Rdt,B1ADOF45Rdt,B1ADOF45Rdt,B1ADOF45Rdt,B1ADOF45Rdt,B1ADOF45Rdt, &
+ B1ADOF46Rdt,B1ADOF46Rdt,B1ADOF46Rdt,B1ADOF46Rdt,B1ADOF46Rdt,B1ADOF46Rdt,B1ADOF46Rdt,B1ADOF46Rdt,B1ADOF46Rdt, &
+ B1ADOF47Rdt,B1ADOF47Rdt,B1ADOF47Rdt,B1ADOF47Rdt,B1ADOF47Rdt,B1ADOF47Rdt,B1ADOF47Rdt,B1ADOF47Rdt,B1ADOF47Rdt, &
+ B1ADOF48Rdt,B1ADOF48Rdt,B1ADOF48Rdt,B1ADOF48Rdt,B1ADOF48Rdt,B1ADOF48Rdt,B1ADOF48Rdt,B1ADOF48Rdt,B1ADOF48Rdt, &
+ B1ADOF49Rdt,B1ADOF49Rdt,B1ADOF49Rdt,B1ADOF49Rdt,B1ADOF49Rdt,B1ADOF49Rdt,B1ADOF49Rdt,B1ADOF49Rdt,B1ADOF49Rdt, &
+ B1ADOF50Rdt,B1ADOF50Rdt,B1ADOF50Rdt,B1ADOF50Rdt,B1ADOF50Rdt,B1ADOF50Rdt,B1ADOF50Rdt,B1ADOF50Rdt,B1ADOF50Rdt, &
+ B1ADOF51Rdt,B1ADOF51Rdt,B1ADOF51Rdt,B1ADOF51Rdt,B1ADOF51Rdt,B1ADOF51Rdt,B1ADOF51Rdt,B1ADOF51Rdt,B1ADOF51Rdt, &
+ B1ADOF52Rdt,B1ADOF52Rdt,B1ADOF52Rdt,B1ADOF52Rdt,B1ADOF52Rdt,B1ADOF52Rdt,B1ADOF52Rdt,B1ADOF52Rdt,B1ADOF52Rdt, &
+ B1ADOF53Rdt,B1ADOF53Rdt,B1ADOF53Rdt,B1ADOF53Rdt,B1ADOF53Rdt,B1ADOF53Rdt,B1ADOF53Rdt,B1ADOF53Rdt,B1ADOF53Rdt, &
+ B1ADOF54Rdt,B1ADOF54Rdt,B1ADOF54Rdt,B1ADOF54Rdt,B1ADOF54Rdt,B1ADOF54Rdt,B1ADOF54Rdt,B1ADOF54Rdt,B1ADOF54Rdt, &
+ B1ADOF55Rdt,B1ADOF55Rdt,B1ADOF55Rdt,B1ADOF55Rdt,B1ADOF55Rdt,B1ADOF55Rdt,B1ADOF55Rdt,B1ADOF55Rdt,B1ADOF55Rdt, &
+ B1ADOF56Rdt,B1ADOF56Rdt,B1ADOF56Rdt,B1ADOF56Rdt,B1ADOF56Rdt,B1ADOF56Rdt,B1ADOF56Rdt,B1ADOF56Rdt,B1ADOF56Rdt, &
+ B1ADOF57Rdt,B1ADOF57Rdt,B1ADOF57Rdt,B1ADOF57Rdt,B1ADOF57Rdt,B1ADOF57Rdt,B1ADOF57Rdt,B1ADOF57Rdt,B1ADOF57Rdt, &
+ B1ADOF58Rdt,B1ADOF58Rdt,B1ADOF58Rdt,B1ADOF58Rdt,B1ADOF58Rdt,B1ADOF58Rdt,B1ADOF58Rdt,B1ADOF58Rdt,B1ADOF58Rdt, &
+ B1ADOF59Rdt,B1ADOF59Rdt,B1ADOF59Rdt,B1ADOF59Rdt,B1ADOF59Rdt,B1ADOF59Rdt,B1ADOF59Rdt,B1ADOF59Rdt,B1ADOF59Rdt, &
+ B1ADOF60Rdt,B1ADOF60Rdt,B1ADOF60Rdt,B1ADOF60Rdt,B1ADOF60Rdt,B1ADOF60Rdt,B1ADOF60Rdt,B1ADOF60Rdt,B1ADOF60Rdt, &
+ B1ADOF61Rdt,B1ADOF61Rdt,B1ADOF61Rdt,B1ADOF61Rdt,B1ADOF61Rdt,B1ADOF61Rdt,B1ADOF61Rdt,B1ADOF61Rdt,B1ADOF61Rdt, &
+ B1ADOF62Rdt,B1ADOF62Rdt,B1ADOF62Rdt,B1ADOF62Rdt,B1ADOF62Rdt,B1ADOF62Rdt,B1ADOF62Rdt,B1ADOF62Rdt,B1ADOF62Rdt, &
+ B1ADOF63Rdt,B1ADOF63Rdt,B1ADOF63Rdt,B1ADOF63Rdt,B1ADOF63Rdt,B1ADOF63Rdt,B1ADOF63Rdt,B1ADOF63Rdt,B1ADOF63Rdt, &
+ B1ADOF64Rdt,B1ADOF64Rdt,B1ADOF64Rdt,B1ADOF64Rdt,B1ADOF64Rdt,B1ADOF64Rdt,B1ADOF64Rdt,B1ADOF64Rdt,B1ADOF64Rdt, &
+ B1ADOF65Rdt,B1ADOF65Rdt,B1ADOF65Rdt,B1ADOF65Rdt,B1ADOF65Rdt,B1ADOF65Rdt,B1ADOF65Rdt,B1ADOF65Rdt,B1ADOF65Rdt, &
+ B1ADOF66Rdt,B1ADOF66Rdt,B1ADOF66Rdt,B1ADOF66Rdt,B1ADOF66Rdt,B1ADOF66Rdt,B1ADOF66Rdt,B1ADOF66Rdt,B1ADOF66Rdt, &
+ B1ADOF67Rdt,B1ADOF67Rdt,B1ADOF67Rdt,B1ADOF67Rdt,B1ADOF67Rdt,B1ADOF67Rdt,B1ADOF67Rdt,B1ADOF67Rdt,B1ADOF67Rdt, &
+ B1ADOF68Rdt,B1ADOF68Rdt,B1ADOF68Rdt,B1ADOF68Rdt,B1ADOF68Rdt,B1ADOF68Rdt,B1ADOF68Rdt,B1ADOF68Rdt,B1ADOF68Rdt, &
+ B1ADOF69Rdt,B1ADOF69Rdt,B1ADOF69Rdt,B1ADOF69Rdt,B1ADOF69Rdt,B1ADOF69Rdt,B1ADOF69Rdt,B1ADOF69Rdt,B1ADOF69Rdt, &
+ B1ADOF70Rdt,B1ADOF70Rdt,B1ADOF70Rdt,B1ADOF70Rdt,B1ADOF70Rdt,B1ADOF70Rdt,B1ADOF70Rdt,B1ADOF70Rdt,B1ADOF70Rdt, &
+ B1ADOF71Rdt,B1ADOF71Rdt,B1ADOF71Rdt,B1ADOF71Rdt,B1ADOF71Rdt,B1ADOF71Rdt,B1ADOF71Rdt,B1ADOF71Rdt,B1ADOF71Rdt, &
+ B1ADOF72Rdt,B1ADOF72Rdt,B1ADOF72Rdt,B1ADOF72Rdt,B1ADOF72Rdt,B1ADOF72Rdt,B1ADOF72Rdt,B1ADOF72Rdt,B1ADOF72Rdt, &
+ B1ADOF73Rdt,B1ADOF73Rdt,B1ADOF73Rdt,B1ADOF73Rdt,B1ADOF73Rdt,B1ADOF73Rdt,B1ADOF73Rdt,B1ADOF73Rdt,B1ADOF73Rdt, &
+ B1ADOF74Rdt,B1ADOF74Rdt,B1ADOF74Rdt,B1ADOF74Rdt,B1ADOF74Rdt,B1ADOF74Rdt,B1ADOF74Rdt,B1ADOF74Rdt,B1ADOF74Rdt, &
+ B1ADOF75Rdt,B1ADOF75Rdt,B1ADOF75Rdt,B1ADOF75Rdt,B1ADOF75Rdt,B1ADOF75Rdt,B1ADOF75Rdt,B1ADOF75Rdt,B1ADOF75Rdt, &
+ B1ADOF76Rdt,B1ADOF76Rdt,B1ADOF76Rdt,B1ADOF76Rdt,B1ADOF76Rdt,B1ADOF76Rdt,B1ADOF76Rdt,B1ADOF76Rdt,B1ADOF76Rdt, &
+ B1ADOF77Rdt,B1ADOF77Rdt,B1ADOF77Rdt,B1ADOF77Rdt,B1ADOF77Rdt,B1ADOF77Rdt,B1ADOF77Rdt,B1ADOF77Rdt,B1ADOF77Rdt, &
+ B1ADOF78Rdt,B1ADOF78Rdt,B1ADOF78Rdt,B1ADOF78Rdt,B1ADOF78Rdt,B1ADOF78Rdt,B1ADOF78Rdt,B1ADOF78Rdt,B1ADOF78Rdt, &
+ B1ADOF79Rdt,B1ADOF79Rdt,B1ADOF79Rdt,B1ADOF79Rdt,B1ADOF79Rdt,B1ADOF79Rdt,B1ADOF79Rdt,B1ADOF79Rdt,B1ADOF79Rdt, &
+ B1ADOF80Rdt,B1ADOF80Rdt,B1ADOF80Rdt,B1ADOF80Rdt,B1ADOF80Rdt,B1ADOF80Rdt,B1ADOF80Rdt,B1ADOF80Rdt,B1ADOF80Rdt, &
+ B1ADOF81Rdt,B1ADOF81Rdt,B1ADOF81Rdt,B1ADOF81Rdt,B1ADOF81Rdt,B1ADOF81Rdt,B1ADOF81Rdt,B1ADOF81Rdt,B1ADOF81Rdt, &
+ B1ADOF82Rdt,B1ADOF82Rdt,B1ADOF82Rdt,B1ADOF82Rdt,B1ADOF82Rdt,B1ADOF82Rdt,B1ADOF82Rdt,B1ADOF82Rdt,B1ADOF82Rdt, &
+ B1ADOF83Rdt,B1ADOF83Rdt,B1ADOF83Rdt,B1ADOF83Rdt,B1ADOF83Rdt,B1ADOF83Rdt,B1ADOF83Rdt,B1ADOF83Rdt,B1ADOF83Rdt, &
+ B1ADOF84Rdt,B1ADOF84Rdt,B1ADOF84Rdt,B1ADOF84Rdt,B1ADOF84Rdt,B1ADOF84Rdt,B1ADOF84Rdt,B1ADOF84Rdt,B1ADOF84Rdt, &
+ B1ADOF85Rdt,B1ADOF85Rdt,B1ADOF85Rdt,B1ADOF85Rdt,B1ADOF85Rdt,B1ADOF85Rdt,B1ADOF85Rdt,B1ADOF85Rdt,B1ADOF85Rdt, &
+ B1ADOF86Rdt,B1ADOF86Rdt,B1ADOF86Rdt,B1ADOF86Rdt,B1ADOF86Rdt,B1ADOF86Rdt,B1ADOF86Rdt,B1ADOF86Rdt,B1ADOF86Rdt, &
+ B1ADOF87Rdt,B1ADOF87Rdt,B1ADOF87Rdt,B1ADOF87Rdt,B1ADOF87Rdt,B1ADOF87Rdt,B1ADOF87Rdt,B1ADOF87Rdt,B1ADOF87Rdt, &
+ B1ADOF88Rdt,B1ADOF88Rdt,B1ADOF88Rdt,B1ADOF88Rdt,B1ADOF88Rdt,B1ADOF88Rdt,B1ADOF88Rdt,B1ADOF88Rdt,B1ADOF88Rdt, &
+ B1ADOF89Rdt,B1ADOF89Rdt,B1ADOF89Rdt,B1ADOF89Rdt,B1ADOF89Rdt,B1ADOF89Rdt,B1ADOF89Rdt,B1ADOF89Rdt,B1ADOF89Rdt, &
+ B1ADOF90Rdt,B1ADOF90Rdt,B1ADOF90Rdt,B1ADOF90Rdt,B1ADOF90Rdt,B1ADOF90Rdt,B1ADOF90Rdt,B1ADOF90Rdt,B1ADOF90Rdt, &
+ B1ADOF91Rdt,B1ADOF91Rdt,B1ADOF91Rdt,B1ADOF91Rdt,B1ADOF91Rdt,B1ADOF91Rdt,B1ADOF91Rdt,B1ADOF91Rdt,B1ADOF91Rdt, &
+ B1ADOF92Rdt,B1ADOF92Rdt,B1ADOF92Rdt,B1ADOF92Rdt,B1ADOF92Rdt,B1ADOF92Rdt,B1ADOF92Rdt,B1ADOF92Rdt,B1ADOF92Rdt, &
+ B1ADOF93Rdt,B1ADOF93Rdt,B1ADOF93Rdt,B1ADOF93Rdt,B1ADOF93Rdt,B1ADOF93Rdt,B1ADOF93Rdt,B1ADOF93Rdt,B1ADOF93Rdt, &
+ B1ADOF94Rdt,B1ADOF94Rdt,B1ADOF94Rdt,B1ADOF94Rdt,B1ADOF94Rdt,B1ADOF94Rdt,B1ADOF94Rdt,B1ADOF94Rdt,B1ADOF94Rdt, &
+ B1ADOF95Rdt,B1ADOF95Rdt,B1ADOF95Rdt,B1ADOF95Rdt,B1ADOF95Rdt,B1ADOF95Rdt,B1ADOF95Rdt,B1ADOF95Rdt,B1ADOF95Rdt, &
+ B1ADOF96Rdt,B1ADOF96Rdt,B1ADOF96Rdt,B1ADOF96Rdt,B1ADOF96Rdt,B1ADOF96Rdt,B1ADOF96Rdt,B1ADOF96Rdt,B1ADOF96Rdt, &
+ B1ADOF97Rdt,B1ADOF97Rdt,B1ADOF97Rdt,B1ADOF97Rdt,B1ADOF97Rdt,B1ADOF97Rdt,B1ADOF97Rdt,B1ADOF97Rdt,B1ADOF97Rdt, &
+ B1ADOF98Rdt,B1ADOF98Rdt,B1ADOF98Rdt,B1ADOF98Rdt,B1ADOF98Rdt,B1ADOF98Rdt,B1ADOF98Rdt,B1ADOF98Rdt,B1ADOF98Rdt, &
+ B1ADOF99Rdt,B1ADOF99Rdt,B1ADOF99Rdt,B1ADOF99Rdt,B1ADOF99Rdt,B1ADOF99Rdt,B1ADOF99Rdt,B1ADOF99Rdt,B1ADOF99Rdt/), &
+ (/9,99/)))
+ INTEGER, PARAMETER :: FADOFHds(99,9) = transpose(reshape((/B1ADOF1Hds,B1ADOF1Hds,B1ADOF1Hds,B1ADOF1Hds,B1ADOF1Hds,B1ADOF1Hds,B1ADOF1Hds,B1ADOF1Hds,B1ADOF1Hds, &
+ B1ADOF2Hds,B1ADOF2Hds,B1ADOF2Hds,B1ADOF2Hds,B1ADOF2Hds,B1ADOF2Hds,B1ADOF2Hds,B1ADOF2Hds,B1ADOF2Hds, &
+ B1ADOF3Hds,B1ADOF3Hds,B1ADOF3Hds,B1ADOF3Hds,B1ADOF3Hds,B1ADOF3Hds,B1ADOF3Hds,B1ADOF3Hds,B1ADOF3Hds, &
+ B1ADOF4Hds,B1ADOF4Hds,B1ADOF4Hds,B1ADOF4Hds,B1ADOF4Hds,B1ADOF4Hds,B1ADOF4Hds,B1ADOF4Hds,B1ADOF4Hds, &
+ B1ADOF5Hds,B1ADOF5Hds,B1ADOF5Hds,B1ADOF5Hds,B1ADOF5Hds,B1ADOF5Hds,B1ADOF5Hds,B1ADOF5Hds,B1ADOF5Hds, &
+ B1ADOF6Hds,B1ADOF6Hds,B1ADOF6Hds,B1ADOF6Hds,B1ADOF6Hds,B1ADOF6Hds,B1ADOF6Hds,B1ADOF6Hds,B1ADOF6Hds, &
+ B1ADOF7Hds,B1ADOF7Hds,B1ADOF7Hds,B1ADOF7Hds,B1ADOF7Hds,B1ADOF7Hds,B1ADOF7Hds,B1ADOF7Hds,B1ADOF7Hds, &
+ B1ADOF8Hds,B1ADOF8Hds,B1ADOF8Hds,B1ADOF8Hds,B1ADOF8Hds,B1ADOF8Hds,B1ADOF8Hds,B1ADOF8Hds,B1ADOF8Hds, &
+ B1ADOF9Hds,B1ADOF9Hds,B1ADOF9Hds,B1ADOF9Hds,B1ADOF9Hds,B1ADOF9Hds,B1ADOF9Hds,B1ADOF9Hds,B1ADOF9Hds, &
+ B1ADOF10Hds,B1ADOF10Hds,B1ADOF10Hds,B1ADOF10Hds,B1ADOF10Hds,B1ADOF10Hds,B1ADOF10Hds,B1ADOF10Hds,B1ADOF10Hds, &
+ B1ADOF11Hds,B1ADOF11Hds,B1ADOF11Hds,B1ADOF11Hds,B1ADOF11Hds,B1ADOF11Hds,B1ADOF11Hds,B1ADOF11Hds,B1ADOF11Hds, &
+ B1ADOF12Hds,B1ADOF12Hds,B1ADOF12Hds,B1ADOF12Hds,B1ADOF12Hds,B1ADOF12Hds,B1ADOF12Hds,B1ADOF12Hds,B1ADOF12Hds, &
+ B1ADOF13Hds,B1ADOF13Hds,B1ADOF13Hds,B1ADOF13Hds,B1ADOF13Hds,B1ADOF13Hds,B1ADOF13Hds,B1ADOF13Hds,B1ADOF13Hds, &
+ B1ADOF14Hds,B1ADOF14Hds,B1ADOF14Hds,B1ADOF14Hds,B1ADOF14Hds,B1ADOF14Hds,B1ADOF14Hds,B1ADOF14Hds,B1ADOF14Hds, &
+ B1ADOF15Hds,B1ADOF15Hds,B1ADOF15Hds,B1ADOF15Hds,B1ADOF15Hds,B1ADOF15Hds,B1ADOF15Hds,B1ADOF15Hds,B1ADOF15Hds, &
+ B1ADOF16Hds,B1ADOF16Hds,B1ADOF16Hds,B1ADOF16Hds,B1ADOF16Hds,B1ADOF16Hds,B1ADOF16Hds,B1ADOF16Hds,B1ADOF16Hds, &
+ B1ADOF17Hds,B1ADOF17Hds,B1ADOF17Hds,B1ADOF17Hds,B1ADOF17Hds,B1ADOF17Hds,B1ADOF17Hds,B1ADOF17Hds,B1ADOF17Hds, &
+ B1ADOF18Hds,B1ADOF18Hds,B1ADOF18Hds,B1ADOF18Hds,B1ADOF18Hds,B1ADOF18Hds,B1ADOF18Hds,B1ADOF18Hds,B1ADOF18Hds, &
+ B1ADOF19Hds,B1ADOF19Hds,B1ADOF19Hds,B1ADOF19Hds,B1ADOF19Hds,B1ADOF19Hds,B1ADOF19Hds,B1ADOF19Hds,B1ADOF19Hds, &
+ B1ADOF20Hds,B1ADOF20Hds,B1ADOF20Hds,B1ADOF20Hds,B1ADOF20Hds,B1ADOF20Hds,B1ADOF20Hds,B1ADOF20Hds,B1ADOF20Hds, &
+ B1ADOF21Hds,B1ADOF21Hds,B1ADOF21Hds,B1ADOF21Hds,B1ADOF21Hds,B1ADOF21Hds,B1ADOF21Hds,B1ADOF21Hds,B1ADOF21Hds, &
+ B1ADOF22Hds,B1ADOF22Hds,B1ADOF22Hds,B1ADOF22Hds,B1ADOF22Hds,B1ADOF22Hds,B1ADOF22Hds,B1ADOF22Hds,B1ADOF22Hds, &
+ B1ADOF23Hds,B1ADOF23Hds,B1ADOF23Hds,B1ADOF23Hds,B1ADOF23Hds,B1ADOF23Hds,B1ADOF23Hds,B1ADOF23Hds,B1ADOF23Hds, &
+ B1ADOF24Hds,B1ADOF24Hds,B1ADOF24Hds,B1ADOF24Hds,B1ADOF24Hds,B1ADOF24Hds,B1ADOF24Hds,B1ADOF24Hds,B1ADOF24Hds, &
+ B1ADOF25Hds,B1ADOF25Hds,B1ADOF25Hds,B1ADOF25Hds,B1ADOF25Hds,B1ADOF25Hds,B1ADOF25Hds,B1ADOF25Hds,B1ADOF25Hds, &
+ B1ADOF26Hds,B1ADOF26Hds,B1ADOF26Hds,B1ADOF26Hds,B1ADOF26Hds,B1ADOF26Hds,B1ADOF26Hds,B1ADOF26Hds,B1ADOF26Hds, &
+ B1ADOF27Hds,B1ADOF27Hds,B1ADOF27Hds,B1ADOF27Hds,B1ADOF27Hds,B1ADOF27Hds,B1ADOF27Hds,B1ADOF27Hds,B1ADOF27Hds, &
+ B1ADOF28Hds,B1ADOF28Hds,B1ADOF28Hds,B1ADOF28Hds,B1ADOF28Hds,B1ADOF28Hds,B1ADOF28Hds,B1ADOF28Hds,B1ADOF28Hds, &
+ B1ADOF29Hds,B1ADOF29Hds,B1ADOF29Hds,B1ADOF29Hds,B1ADOF29Hds,B1ADOF29Hds,B1ADOF29Hds,B1ADOF29Hds,B1ADOF29Hds, &
+ B1ADOF30Hds,B1ADOF30Hds,B1ADOF30Hds,B1ADOF30Hds,B1ADOF30Hds,B1ADOF30Hds,B1ADOF30Hds,B1ADOF30Hds,B1ADOF30Hds, &
+ B1ADOF31Hds,B1ADOF31Hds,B1ADOF31Hds,B1ADOF31Hds,B1ADOF31Hds,B1ADOF31Hds,B1ADOF31Hds,B1ADOF31Hds,B1ADOF31Hds, &
+ B1ADOF32Hds,B1ADOF32Hds,B1ADOF32Hds,B1ADOF32Hds,B1ADOF32Hds,B1ADOF32Hds,B1ADOF32Hds,B1ADOF32Hds,B1ADOF32Hds, &
+ B1ADOF33Hds,B1ADOF33Hds,B1ADOF33Hds,B1ADOF33Hds,B1ADOF33Hds,B1ADOF33Hds,B1ADOF33Hds,B1ADOF33Hds,B1ADOF33Hds, &
+ B1ADOF34Hds,B1ADOF34Hds,B1ADOF34Hds,B1ADOF34Hds,B1ADOF34Hds,B1ADOF34Hds,B1ADOF34Hds,B1ADOF34Hds,B1ADOF34Hds, &
+ B1ADOF35Hds,B1ADOF35Hds,B1ADOF35Hds,B1ADOF35Hds,B1ADOF35Hds,B1ADOF35Hds,B1ADOF35Hds,B1ADOF35Hds,B1ADOF35Hds, &
+ B1ADOF36Hds,B1ADOF36Hds,B1ADOF36Hds,B1ADOF36Hds,B1ADOF36Hds,B1ADOF36Hds,B1ADOF36Hds,B1ADOF36Hds,B1ADOF36Hds, &
+ B1ADOF37Hds,B1ADOF37Hds,B1ADOF37Hds,B1ADOF37Hds,B1ADOF37Hds,B1ADOF37Hds,B1ADOF37Hds,B1ADOF37Hds,B1ADOF37Hds, &
+ B1ADOF38Hds,B1ADOF38Hds,B1ADOF38Hds,B1ADOF38Hds,B1ADOF38Hds,B1ADOF38Hds,B1ADOF38Hds,B1ADOF38Hds,B1ADOF38Hds, &
+ B1ADOF39Hds,B1ADOF39Hds,B1ADOF39Hds,B1ADOF39Hds,B1ADOF39Hds,B1ADOF39Hds,B1ADOF39Hds,B1ADOF39Hds,B1ADOF39Hds, &
+ B1ADOF40Hds,B1ADOF40Hds,B1ADOF40Hds,B1ADOF40Hds,B1ADOF40Hds,B1ADOF40Hds,B1ADOF40Hds,B1ADOF40Hds,B1ADOF40Hds, &
+ B1ADOF41Hds,B1ADOF41Hds,B1ADOF41Hds,B1ADOF41Hds,B1ADOF41Hds,B1ADOF41Hds,B1ADOF41Hds,B1ADOF41Hds,B1ADOF41Hds, &
+ B1ADOF42Hds,B1ADOF42Hds,B1ADOF42Hds,B1ADOF42Hds,B1ADOF42Hds,B1ADOF42Hds,B1ADOF42Hds,B1ADOF42Hds,B1ADOF42Hds, &
+ B1ADOF43Hds,B1ADOF43Hds,B1ADOF43Hds,B1ADOF43Hds,B1ADOF43Hds,B1ADOF43Hds,B1ADOF43Hds,B1ADOF43Hds,B1ADOF43Hds, &
+ B1ADOF44Hds,B1ADOF44Hds,B1ADOF44Hds,B1ADOF44Hds,B1ADOF44Hds,B1ADOF44Hds,B1ADOF44Hds,B1ADOF44Hds,B1ADOF44Hds, &
+ B1ADOF45Hds,B1ADOF45Hds,B1ADOF45Hds,B1ADOF45Hds,B1ADOF45Hds,B1ADOF45Hds,B1ADOF45Hds,B1ADOF45Hds,B1ADOF45Hds, &
+ B1ADOF46Hds,B1ADOF46Hds,B1ADOF46Hds,B1ADOF46Hds,B1ADOF46Hds,B1ADOF46Hds,B1ADOF46Hds,B1ADOF46Hds,B1ADOF46Hds, &
+ B1ADOF47Hds,B1ADOF47Hds,B1ADOF47Hds,B1ADOF47Hds,B1ADOF47Hds,B1ADOF47Hds,B1ADOF47Hds,B1ADOF47Hds,B1ADOF47Hds, &
+ B1ADOF48Hds,B1ADOF48Hds,B1ADOF48Hds,B1ADOF48Hds,B1ADOF48Hds,B1ADOF48Hds,B1ADOF48Hds,B1ADOF48Hds,B1ADOF48Hds, &
+ B1ADOF49Hds,B1ADOF49Hds,B1ADOF49Hds,B1ADOF49Hds,B1ADOF49Hds,B1ADOF49Hds,B1ADOF49Hds,B1ADOF49Hds,B1ADOF49Hds, &
+ B1ADOF50Hds,B1ADOF50Hds,B1ADOF50Hds,B1ADOF50Hds,B1ADOF50Hds,B1ADOF50Hds,B1ADOF50Hds,B1ADOF50Hds,B1ADOF50Hds, &
+ B1ADOF51Hds,B1ADOF51Hds,B1ADOF51Hds,B1ADOF51Hds,B1ADOF51Hds,B1ADOF51Hds,B1ADOF51Hds,B1ADOF51Hds,B1ADOF51Hds, &
+ B1ADOF52Hds,B1ADOF52Hds,B1ADOF52Hds,B1ADOF52Hds,B1ADOF52Hds,B1ADOF52Hds,B1ADOF52Hds,B1ADOF52Hds,B1ADOF52Hds, &
+ B1ADOF53Hds,B1ADOF53Hds,B1ADOF53Hds,B1ADOF53Hds,B1ADOF53Hds,B1ADOF53Hds,B1ADOF53Hds,B1ADOF53Hds,B1ADOF53Hds, &
+ B1ADOF54Hds,B1ADOF54Hds,B1ADOF54Hds,B1ADOF54Hds,B1ADOF54Hds,B1ADOF54Hds,B1ADOF54Hds,B1ADOF54Hds,B1ADOF54Hds, &
+ B1ADOF55Hds,B1ADOF55Hds,B1ADOF55Hds,B1ADOF55Hds,B1ADOF55Hds,B1ADOF55Hds,B1ADOF55Hds,B1ADOF55Hds,B1ADOF55Hds, &
+ B1ADOF56Hds,B1ADOF56Hds,B1ADOF56Hds,B1ADOF56Hds,B1ADOF56Hds,B1ADOF56Hds,B1ADOF56Hds,B1ADOF56Hds,B1ADOF56Hds, &
+ B1ADOF57Hds,B1ADOF57Hds,B1ADOF57Hds,B1ADOF57Hds,B1ADOF57Hds,B1ADOF57Hds,B1ADOF57Hds,B1ADOF57Hds,B1ADOF57Hds, &
+ B1ADOF58Hds,B1ADOF58Hds,B1ADOF58Hds,B1ADOF58Hds,B1ADOF58Hds,B1ADOF58Hds,B1ADOF58Hds,B1ADOF58Hds,B1ADOF58Hds, &
+ B1ADOF59Hds,B1ADOF59Hds,B1ADOF59Hds,B1ADOF59Hds,B1ADOF59Hds,B1ADOF59Hds,B1ADOF59Hds,B1ADOF59Hds,B1ADOF59Hds, &
+ B1ADOF60Hds,B1ADOF60Hds,B1ADOF60Hds,B1ADOF60Hds,B1ADOF60Hds,B1ADOF60Hds,B1ADOF60Hds,B1ADOF60Hds,B1ADOF60Hds, &
+ B1ADOF61Hds,B1ADOF61Hds,B1ADOF61Hds,B1ADOF61Hds,B1ADOF61Hds,B1ADOF61Hds,B1ADOF61Hds,B1ADOF61Hds,B1ADOF61Hds, &
+ B1ADOF62Hds,B1ADOF62Hds,B1ADOF62Hds,B1ADOF62Hds,B1ADOF62Hds,B1ADOF62Hds,B1ADOF62Hds,B1ADOF62Hds,B1ADOF62Hds, &
+ B1ADOF63Hds,B1ADOF63Hds,B1ADOF63Hds,B1ADOF63Hds,B1ADOF63Hds,B1ADOF63Hds,B1ADOF63Hds,B1ADOF63Hds,B1ADOF63Hds, &
+ B1ADOF64Hds,B1ADOF64Hds,B1ADOF64Hds,B1ADOF64Hds,B1ADOF64Hds,B1ADOF64Hds,B1ADOF64Hds,B1ADOF64Hds,B1ADOF64Hds, &
+ B1ADOF65Hds,B1ADOF65Hds,B1ADOF65Hds,B1ADOF65Hds,B1ADOF65Hds,B1ADOF65Hds,B1ADOF65Hds,B1ADOF65Hds,B1ADOF65Hds, &
+ B1ADOF66Hds,B1ADOF66Hds,B1ADOF66Hds,B1ADOF66Hds,B1ADOF66Hds,B1ADOF66Hds,B1ADOF66Hds,B1ADOF66Hds,B1ADOF66Hds, &
+ B1ADOF67Hds,B1ADOF67Hds,B1ADOF67Hds,B1ADOF67Hds,B1ADOF67Hds,B1ADOF67Hds,B1ADOF67Hds,B1ADOF67Hds,B1ADOF67Hds, &
+ B1ADOF68Hds,B1ADOF68Hds,B1ADOF68Hds,B1ADOF68Hds,B1ADOF68Hds,B1ADOF68Hds,B1ADOF68Hds,B1ADOF68Hds,B1ADOF68Hds, &
+ B1ADOF69Hds,B1ADOF69Hds,B1ADOF69Hds,B1ADOF69Hds,B1ADOF69Hds,B1ADOF69Hds,B1ADOF69Hds,B1ADOF69Hds,B1ADOF69Hds, &
+ B1ADOF70Hds,B1ADOF70Hds,B1ADOF70Hds,B1ADOF70Hds,B1ADOF70Hds,B1ADOF70Hds,B1ADOF70Hds,B1ADOF70Hds,B1ADOF70Hds, &
+ B1ADOF71Hds,B1ADOF71Hds,B1ADOF71Hds,B1ADOF71Hds,B1ADOF71Hds,B1ADOF71Hds,B1ADOF71Hds,B1ADOF71Hds,B1ADOF71Hds, &
+ B1ADOF72Hds,B1ADOF72Hds,B1ADOF72Hds,B1ADOF72Hds,B1ADOF72Hds,B1ADOF72Hds,B1ADOF72Hds,B1ADOF72Hds,B1ADOF72Hds, &
+ B1ADOF73Hds,B1ADOF73Hds,B1ADOF73Hds,B1ADOF73Hds,B1ADOF73Hds,B1ADOF73Hds,B1ADOF73Hds,B1ADOF73Hds,B1ADOF73Hds, &
+ B1ADOF74Hds,B1ADOF74Hds,B1ADOF74Hds,B1ADOF74Hds,B1ADOF74Hds,B1ADOF74Hds,B1ADOF74Hds,B1ADOF74Hds,B1ADOF74Hds, &
+ B1ADOF75Hds,B1ADOF75Hds,B1ADOF75Hds,B1ADOF75Hds,B1ADOF75Hds,B1ADOF75Hds,B1ADOF75Hds,B1ADOF75Hds,B1ADOF75Hds, &
+ B1ADOF76Hds,B1ADOF76Hds,B1ADOF76Hds,B1ADOF76Hds,B1ADOF76Hds,B1ADOF76Hds,B1ADOF76Hds,B1ADOF76Hds,B1ADOF76Hds, &
+ B1ADOF77Hds,B1ADOF77Hds,B1ADOF77Hds,B1ADOF77Hds,B1ADOF77Hds,B1ADOF77Hds,B1ADOF77Hds,B1ADOF77Hds,B1ADOF77Hds, &
+ B1ADOF78Hds,B1ADOF78Hds,B1ADOF78Hds,B1ADOF78Hds,B1ADOF78Hds,B1ADOF78Hds,B1ADOF78Hds,B1ADOF78Hds,B1ADOF78Hds, &
+ B1ADOF79Hds,B1ADOF79Hds,B1ADOF79Hds,B1ADOF79Hds,B1ADOF79Hds,B1ADOF79Hds,B1ADOF79Hds,B1ADOF79Hds,B1ADOF79Hds, &
+ B1ADOF80Hds,B1ADOF80Hds,B1ADOF80Hds,B1ADOF80Hds,B1ADOF80Hds,B1ADOF80Hds,B1ADOF80Hds,B1ADOF80Hds,B1ADOF80Hds, &
+ B1ADOF81Hds,B1ADOF81Hds,B1ADOF81Hds,B1ADOF81Hds,B1ADOF81Hds,B1ADOF81Hds,B1ADOF81Hds,B1ADOF81Hds,B1ADOF81Hds, &
+ B1ADOF82Hds,B1ADOF82Hds,B1ADOF82Hds,B1ADOF82Hds,B1ADOF82Hds,B1ADOF82Hds,B1ADOF82Hds,B1ADOF82Hds,B1ADOF82Hds, &
+ B1ADOF83Hds,B1ADOF83Hds,B1ADOF83Hds,B1ADOF83Hds,B1ADOF83Hds,B1ADOF83Hds,B1ADOF83Hds,B1ADOF83Hds,B1ADOF83Hds, &
+ B1ADOF84Hds,B1ADOF84Hds,B1ADOF84Hds,B1ADOF84Hds,B1ADOF84Hds,B1ADOF84Hds,B1ADOF84Hds,B1ADOF84Hds,B1ADOF84Hds, &
+ B1ADOF85Hds,B1ADOF85Hds,B1ADOF85Hds,B1ADOF85Hds,B1ADOF85Hds,B1ADOF85Hds,B1ADOF85Hds,B1ADOF85Hds,B1ADOF85Hds, &
+ B1ADOF86Hds,B1ADOF86Hds,B1ADOF86Hds,B1ADOF86Hds,B1ADOF86Hds,B1ADOF86Hds,B1ADOF86Hds,B1ADOF86Hds,B1ADOF86Hds, &
+ B1ADOF87Hds,B1ADOF87Hds,B1ADOF87Hds,B1ADOF87Hds,B1ADOF87Hds,B1ADOF87Hds,B1ADOF87Hds,B1ADOF87Hds,B1ADOF87Hds, &
+ B1ADOF88Hds,B1ADOF88Hds,B1ADOF88Hds,B1ADOF88Hds,B1ADOF88Hds,B1ADOF88Hds,B1ADOF88Hds,B1ADOF88Hds,B1ADOF88Hds, &
+ B1ADOF89Hds,B1ADOF89Hds,B1ADOF89Hds,B1ADOF89Hds,B1ADOF89Hds,B1ADOF89Hds,B1ADOF89Hds,B1ADOF89Hds,B1ADOF89Hds, &
+ B1ADOF90Hds,B1ADOF90Hds,B1ADOF90Hds,B1ADOF90Hds,B1ADOF90Hds,B1ADOF90Hds,B1ADOF90Hds,B1ADOF90Hds,B1ADOF90Hds, &
+ B1ADOF91Hds,B1ADOF91Hds,B1ADOF91Hds,B1ADOF91Hds,B1ADOF91Hds,B1ADOF91Hds,B1ADOF91Hds,B1ADOF91Hds,B1ADOF91Hds, &
+ B1ADOF92Hds,B1ADOF92Hds,B1ADOF92Hds,B1ADOF92Hds,B1ADOF92Hds,B1ADOF92Hds,B1ADOF92Hds,B1ADOF92Hds,B1ADOF92Hds, &
+ B1ADOF93Hds,B1ADOF93Hds,B1ADOF93Hds,B1ADOF93Hds,B1ADOF93Hds,B1ADOF93Hds,B1ADOF93Hds,B1ADOF93Hds,B1ADOF93Hds, &
+ B1ADOF94Hds,B1ADOF94Hds,B1ADOF94Hds,B1ADOF94Hds,B1ADOF94Hds,B1ADOF94Hds,B1ADOF94Hds,B1ADOF94Hds,B1ADOF94Hds, &
+ B1ADOF95Hds,B1ADOF95Hds,B1ADOF95Hds,B1ADOF95Hds,B1ADOF95Hds,B1ADOF95Hds,B1ADOF95Hds,B1ADOF95Hds,B1ADOF95Hds, &
+ B1ADOF96Hds,B1ADOF96Hds,B1ADOF96Hds,B1ADOF96Hds,B1ADOF96Hds,B1ADOF96Hds,B1ADOF96Hds,B1ADOF96Hds,B1ADOF96Hds, &
+ B1ADOF97Hds,B1ADOF97Hds,B1ADOF97Hds,B1ADOF97Hds,B1ADOF97Hds,B1ADOF97Hds,B1ADOF97Hds,B1ADOF97Hds,B1ADOF97Hds, &
+ B1ADOF98Hds,B1ADOF98Hds,B1ADOF98Hds,B1ADOF98Hds,B1ADOF98Hds,B1ADOF98Hds,B1ADOF98Hds,B1ADOF98Hds,B1ADOF98Hds, &
+ B1ADOF99Hds,B1ADOF99Hds,B1ADOF99Hds,B1ADOF99Hds,B1ADOF99Hds,B1ADOF99Hds,B1ADOF99Hds,B1ADOF99Hds,B1ADOF99Hds/), &
+ (/9,99/)))
+ INTEGER, PARAMETER :: FADOFWvs(99,9) = transpose(reshape((/B1ADOF1Wvs,B1ADOF1Wvs,B1ADOF1Wvs,B1ADOF1Wvs,B1ADOF1Wvs,B1ADOF1Wvs,B1ADOF1Wvs,B1ADOF1Wvs,B1ADOF1Wvs, &
+ B1ADOF2Wvs,B1ADOF2Wvs,B1ADOF2Wvs,B1ADOF2Wvs,B1ADOF2Wvs,B1ADOF2Wvs,B1ADOF2Wvs,B1ADOF2Wvs,B1ADOF2Wvs, &
+ B1ADOF3Wvs,B1ADOF3Wvs,B1ADOF3Wvs,B1ADOF3Wvs,B1ADOF3Wvs,B1ADOF3Wvs,B1ADOF3Wvs,B1ADOF3Wvs,B1ADOF3Wvs, &
+ B1ADOF4Wvs,B1ADOF4Wvs,B1ADOF4Wvs,B1ADOF4Wvs,B1ADOF4Wvs,B1ADOF4Wvs,B1ADOF4Wvs,B1ADOF4Wvs,B1ADOF4Wvs, &
+ B1ADOF5Wvs,B1ADOF5Wvs,B1ADOF5Wvs,B1ADOF5Wvs,B1ADOF5Wvs,B1ADOF5Wvs,B1ADOF5Wvs,B1ADOF5Wvs,B1ADOF5Wvs, &
+ B1ADOF6Wvs,B1ADOF6Wvs,B1ADOF6Wvs,B1ADOF6Wvs,B1ADOF6Wvs,B1ADOF6Wvs,B1ADOF6Wvs,B1ADOF6Wvs,B1ADOF6Wvs, &
+ B1ADOF7Wvs,B1ADOF7Wvs,B1ADOF7Wvs,B1ADOF7Wvs,B1ADOF7Wvs,B1ADOF7Wvs,B1ADOF7Wvs,B1ADOF7Wvs,B1ADOF7Wvs, &
+ B1ADOF8Wvs,B1ADOF8Wvs,B1ADOF8Wvs,B1ADOF8Wvs,B1ADOF8Wvs,B1ADOF8Wvs,B1ADOF8Wvs,B1ADOF8Wvs,B1ADOF8Wvs, &
+ B1ADOF9Wvs,B1ADOF9Wvs,B1ADOF9Wvs,B1ADOF9Wvs,B1ADOF9Wvs,B1ADOF9Wvs,B1ADOF9Wvs,B1ADOF9Wvs,B1ADOF9Wvs, &
+ B1ADOF10Wvs,B1ADOF10Wvs,B1ADOF10Wvs,B1ADOF10Wvs,B1ADOF10Wvs,B1ADOF10Wvs,B1ADOF10Wvs,B1ADOF10Wvs,B1ADOF10Wvs, &
+ B1ADOF11Wvs,B1ADOF11Wvs,B1ADOF11Wvs,B1ADOF11Wvs,B1ADOF11Wvs,B1ADOF11Wvs,B1ADOF11Wvs,B1ADOF11Wvs,B1ADOF11Wvs, &
+ B1ADOF12Wvs,B1ADOF12Wvs,B1ADOF12Wvs,B1ADOF12Wvs,B1ADOF12Wvs,B1ADOF12Wvs,B1ADOF12Wvs,B1ADOF12Wvs,B1ADOF12Wvs, &
+ B1ADOF13Wvs,B1ADOF13Wvs,B1ADOF13Wvs,B1ADOF13Wvs,B1ADOF13Wvs,B1ADOF13Wvs,B1ADOF13Wvs,B1ADOF13Wvs,B1ADOF13Wvs, &
+ B1ADOF14Wvs,B1ADOF14Wvs,B1ADOF14Wvs,B1ADOF14Wvs,B1ADOF14Wvs,B1ADOF14Wvs,B1ADOF14Wvs,B1ADOF14Wvs,B1ADOF14Wvs, &
+ B1ADOF15Wvs,B1ADOF15Wvs,B1ADOF15Wvs,B1ADOF15Wvs,B1ADOF15Wvs,B1ADOF15Wvs,B1ADOF15Wvs,B1ADOF15Wvs,B1ADOF15Wvs, &
+ B1ADOF16Wvs,B1ADOF16Wvs,B1ADOF16Wvs,B1ADOF16Wvs,B1ADOF16Wvs,B1ADOF16Wvs,B1ADOF16Wvs,B1ADOF16Wvs,B1ADOF16Wvs, &
+ B1ADOF17Wvs,B1ADOF17Wvs,B1ADOF17Wvs,B1ADOF17Wvs,B1ADOF17Wvs,B1ADOF17Wvs,B1ADOF17Wvs,B1ADOF17Wvs,B1ADOF17Wvs, &
+ B1ADOF18Wvs,B1ADOF18Wvs,B1ADOF18Wvs,B1ADOF18Wvs,B1ADOF18Wvs,B1ADOF18Wvs,B1ADOF18Wvs,B1ADOF18Wvs,B1ADOF18Wvs, &
+ B1ADOF19Wvs,B1ADOF19Wvs,B1ADOF19Wvs,B1ADOF19Wvs,B1ADOF19Wvs,B1ADOF19Wvs,B1ADOF19Wvs,B1ADOF19Wvs,B1ADOF19Wvs, &
+ B1ADOF20Wvs,B1ADOF20Wvs,B1ADOF20Wvs,B1ADOF20Wvs,B1ADOF20Wvs,B1ADOF20Wvs,B1ADOF20Wvs,B1ADOF20Wvs,B1ADOF20Wvs, &
+ B1ADOF21Wvs,B1ADOF21Wvs,B1ADOF21Wvs,B1ADOF21Wvs,B1ADOF21Wvs,B1ADOF21Wvs,B1ADOF21Wvs,B1ADOF21Wvs,B1ADOF21Wvs, &
+ B1ADOF22Wvs,B1ADOF22Wvs,B1ADOF22Wvs,B1ADOF22Wvs,B1ADOF22Wvs,B1ADOF22Wvs,B1ADOF22Wvs,B1ADOF22Wvs,B1ADOF22Wvs, &
+ B1ADOF23Wvs,B1ADOF23Wvs,B1ADOF23Wvs,B1ADOF23Wvs,B1ADOF23Wvs,B1ADOF23Wvs,B1ADOF23Wvs,B1ADOF23Wvs,B1ADOF23Wvs, &
+ B1ADOF24Wvs,B1ADOF24Wvs,B1ADOF24Wvs,B1ADOF24Wvs,B1ADOF24Wvs,B1ADOF24Wvs,B1ADOF24Wvs,B1ADOF24Wvs,B1ADOF24Wvs, &
+ B1ADOF25Wvs,B1ADOF25Wvs,B1ADOF25Wvs,B1ADOF25Wvs,B1ADOF25Wvs,B1ADOF25Wvs,B1ADOF25Wvs,B1ADOF25Wvs,B1ADOF25Wvs, &
+ B1ADOF26Wvs,B1ADOF26Wvs,B1ADOF26Wvs,B1ADOF26Wvs,B1ADOF26Wvs,B1ADOF26Wvs,B1ADOF26Wvs,B1ADOF26Wvs,B1ADOF26Wvs, &
+ B1ADOF27Wvs,B1ADOF27Wvs,B1ADOF27Wvs,B1ADOF27Wvs,B1ADOF27Wvs,B1ADOF27Wvs,B1ADOF27Wvs,B1ADOF27Wvs,B1ADOF27Wvs, &
+ B1ADOF28Wvs,B1ADOF28Wvs,B1ADOF28Wvs,B1ADOF28Wvs,B1ADOF28Wvs,B1ADOF28Wvs,B1ADOF28Wvs,B1ADOF28Wvs,B1ADOF28Wvs, &
+ B1ADOF29Wvs,B1ADOF29Wvs,B1ADOF29Wvs,B1ADOF29Wvs,B1ADOF29Wvs,B1ADOF29Wvs,B1ADOF29Wvs,B1ADOF29Wvs,B1ADOF29Wvs, &
+ B1ADOF30Wvs,B1ADOF30Wvs,B1ADOF30Wvs,B1ADOF30Wvs,B1ADOF30Wvs,B1ADOF30Wvs,B1ADOF30Wvs,B1ADOF30Wvs,B1ADOF30Wvs, &
+ B1ADOF31Wvs,B1ADOF31Wvs,B1ADOF31Wvs,B1ADOF31Wvs,B1ADOF31Wvs,B1ADOF31Wvs,B1ADOF31Wvs,B1ADOF31Wvs,B1ADOF31Wvs, &
+ B1ADOF32Wvs,B1ADOF32Wvs,B1ADOF32Wvs,B1ADOF32Wvs,B1ADOF32Wvs,B1ADOF32Wvs,B1ADOF32Wvs,B1ADOF32Wvs,B1ADOF32Wvs, &
+ B1ADOF33Wvs,B1ADOF33Wvs,B1ADOF33Wvs,B1ADOF33Wvs,B1ADOF33Wvs,B1ADOF33Wvs,B1ADOF33Wvs,B1ADOF33Wvs,B1ADOF33Wvs, &
+ B1ADOF34Wvs,B1ADOF34Wvs,B1ADOF34Wvs,B1ADOF34Wvs,B1ADOF34Wvs,B1ADOF34Wvs,B1ADOF34Wvs,B1ADOF34Wvs,B1ADOF34Wvs, &
+ B1ADOF35Wvs,B1ADOF35Wvs,B1ADOF35Wvs,B1ADOF35Wvs,B1ADOF35Wvs,B1ADOF35Wvs,B1ADOF35Wvs,B1ADOF35Wvs,B1ADOF35Wvs, &
+ B1ADOF36Wvs,B1ADOF36Wvs,B1ADOF36Wvs,B1ADOF36Wvs,B1ADOF36Wvs,B1ADOF36Wvs,B1ADOF36Wvs,B1ADOF36Wvs,B1ADOF36Wvs, &
+ B1ADOF37Wvs,B1ADOF37Wvs,B1ADOF37Wvs,B1ADOF37Wvs,B1ADOF37Wvs,B1ADOF37Wvs,B1ADOF37Wvs,B1ADOF37Wvs,B1ADOF37Wvs, &
+ B1ADOF38Wvs,B1ADOF38Wvs,B1ADOF38Wvs,B1ADOF38Wvs,B1ADOF38Wvs,B1ADOF38Wvs,B1ADOF38Wvs,B1ADOF38Wvs,B1ADOF38Wvs, &
+ B1ADOF39Wvs,B1ADOF39Wvs,B1ADOF39Wvs,B1ADOF39Wvs,B1ADOF39Wvs,B1ADOF39Wvs,B1ADOF39Wvs,B1ADOF39Wvs,B1ADOF39Wvs, &
+ B1ADOF40Wvs,B1ADOF40Wvs,B1ADOF40Wvs,B1ADOF40Wvs,B1ADOF40Wvs,B1ADOF40Wvs,B1ADOF40Wvs,B1ADOF40Wvs,B1ADOF40Wvs, &
+ B1ADOF41Wvs,B1ADOF41Wvs,B1ADOF41Wvs,B1ADOF41Wvs,B1ADOF41Wvs,B1ADOF41Wvs,B1ADOF41Wvs,B1ADOF41Wvs,B1ADOF41Wvs, &
+ B1ADOF42Wvs,B1ADOF42Wvs,B1ADOF42Wvs,B1ADOF42Wvs,B1ADOF42Wvs,B1ADOF42Wvs,B1ADOF42Wvs,B1ADOF42Wvs,B1ADOF42Wvs, &
+ B1ADOF43Wvs,B1ADOF43Wvs,B1ADOF43Wvs,B1ADOF43Wvs,B1ADOF43Wvs,B1ADOF43Wvs,B1ADOF43Wvs,B1ADOF43Wvs,B1ADOF43Wvs, &
+ B1ADOF44Wvs,B1ADOF44Wvs,B1ADOF44Wvs,B1ADOF44Wvs,B1ADOF44Wvs,B1ADOF44Wvs,B1ADOF44Wvs,B1ADOF44Wvs,B1ADOF44Wvs, &
+ B1ADOF45Wvs,B1ADOF45Wvs,B1ADOF45Wvs,B1ADOF45Wvs,B1ADOF45Wvs,B1ADOF45Wvs,B1ADOF45Wvs,B1ADOF45Wvs,B1ADOF45Wvs, &
+ B1ADOF46Wvs,B1ADOF46Wvs,B1ADOF46Wvs,B1ADOF46Wvs,B1ADOF46Wvs,B1ADOF46Wvs,B1ADOF46Wvs,B1ADOF46Wvs,B1ADOF46Wvs, &
+ B1ADOF47Wvs,B1ADOF47Wvs,B1ADOF47Wvs,B1ADOF47Wvs,B1ADOF47Wvs,B1ADOF47Wvs,B1ADOF47Wvs,B1ADOF47Wvs,B1ADOF47Wvs, &
+ B1ADOF48Wvs,B1ADOF48Wvs,B1ADOF48Wvs,B1ADOF48Wvs,B1ADOF48Wvs,B1ADOF48Wvs,B1ADOF48Wvs,B1ADOF48Wvs,B1ADOF48Wvs, &
+ B1ADOF49Wvs,B1ADOF49Wvs,B1ADOF49Wvs,B1ADOF49Wvs,B1ADOF49Wvs,B1ADOF49Wvs,B1ADOF49Wvs,B1ADOF49Wvs,B1ADOF49Wvs, &
+ B1ADOF50Wvs,B1ADOF50Wvs,B1ADOF50Wvs,B1ADOF50Wvs,B1ADOF50Wvs,B1ADOF50Wvs,B1ADOF50Wvs,B1ADOF50Wvs,B1ADOF50Wvs, &
+ B1ADOF51Wvs,B1ADOF51Wvs,B1ADOF51Wvs,B1ADOF51Wvs,B1ADOF51Wvs,B1ADOF51Wvs,B1ADOF51Wvs,B1ADOF51Wvs,B1ADOF51Wvs, &
+ B1ADOF52Wvs,B1ADOF52Wvs,B1ADOF52Wvs,B1ADOF52Wvs,B1ADOF52Wvs,B1ADOF52Wvs,B1ADOF52Wvs,B1ADOF52Wvs,B1ADOF52Wvs, &
+ B1ADOF53Wvs,B1ADOF53Wvs,B1ADOF53Wvs,B1ADOF53Wvs,B1ADOF53Wvs,B1ADOF53Wvs,B1ADOF53Wvs,B1ADOF53Wvs,B1ADOF53Wvs, &
+ B1ADOF54Wvs,B1ADOF54Wvs,B1ADOF54Wvs,B1ADOF54Wvs,B1ADOF54Wvs,B1ADOF54Wvs,B1ADOF54Wvs,B1ADOF54Wvs,B1ADOF54Wvs, &
+ B1ADOF55Wvs,B1ADOF55Wvs,B1ADOF55Wvs,B1ADOF55Wvs,B1ADOF55Wvs,B1ADOF55Wvs,B1ADOF55Wvs,B1ADOF55Wvs,B1ADOF55Wvs, &
+ B1ADOF56Wvs,B1ADOF56Wvs,B1ADOF56Wvs,B1ADOF56Wvs,B1ADOF56Wvs,B1ADOF56Wvs,B1ADOF56Wvs,B1ADOF56Wvs,B1ADOF56Wvs, &
+ B1ADOF57Wvs,B1ADOF57Wvs,B1ADOF57Wvs,B1ADOF57Wvs,B1ADOF57Wvs,B1ADOF57Wvs,B1ADOF57Wvs,B1ADOF57Wvs,B1ADOF57Wvs, &
+ B1ADOF58Wvs,B1ADOF58Wvs,B1ADOF58Wvs,B1ADOF58Wvs,B1ADOF58Wvs,B1ADOF58Wvs,B1ADOF58Wvs,B1ADOF58Wvs,B1ADOF58Wvs, &
+ B1ADOF59Wvs,B1ADOF59Wvs,B1ADOF59Wvs,B1ADOF59Wvs,B1ADOF59Wvs,B1ADOF59Wvs,B1ADOF59Wvs,B1ADOF59Wvs,B1ADOF59Wvs, &
+ B1ADOF60Wvs,B1ADOF60Wvs,B1ADOF60Wvs,B1ADOF60Wvs,B1ADOF60Wvs,B1ADOF60Wvs,B1ADOF60Wvs,B1ADOF60Wvs,B1ADOF60Wvs, &
+ B1ADOF61Wvs,B1ADOF61Wvs,B1ADOF61Wvs,B1ADOF61Wvs,B1ADOF61Wvs,B1ADOF61Wvs,B1ADOF61Wvs,B1ADOF61Wvs,B1ADOF61Wvs, &
+ B1ADOF62Wvs,B1ADOF62Wvs,B1ADOF62Wvs,B1ADOF62Wvs,B1ADOF62Wvs,B1ADOF62Wvs,B1ADOF62Wvs,B1ADOF62Wvs,B1ADOF62Wvs, &
+ B1ADOF63Wvs,B1ADOF63Wvs,B1ADOF63Wvs,B1ADOF63Wvs,B1ADOF63Wvs,B1ADOF63Wvs,B1ADOF63Wvs,B1ADOF63Wvs,B1ADOF63Wvs, &
+ B1ADOF64Wvs,B1ADOF64Wvs,B1ADOF64Wvs,B1ADOF64Wvs,B1ADOF64Wvs,B1ADOF64Wvs,B1ADOF64Wvs,B1ADOF64Wvs,B1ADOF64Wvs, &
+ B1ADOF65Wvs,B1ADOF65Wvs,B1ADOF65Wvs,B1ADOF65Wvs,B1ADOF65Wvs,B1ADOF65Wvs,B1ADOF65Wvs,B1ADOF65Wvs,B1ADOF65Wvs, &
+ B1ADOF66Wvs,B1ADOF66Wvs,B1ADOF66Wvs,B1ADOF66Wvs,B1ADOF66Wvs,B1ADOF66Wvs,B1ADOF66Wvs,B1ADOF66Wvs,B1ADOF66Wvs, &
+ B1ADOF67Wvs,B1ADOF67Wvs,B1ADOF67Wvs,B1ADOF67Wvs,B1ADOF67Wvs,B1ADOF67Wvs,B1ADOF67Wvs,B1ADOF67Wvs,B1ADOF67Wvs, &
+ B1ADOF68Wvs,B1ADOF68Wvs,B1ADOF68Wvs,B1ADOF68Wvs,B1ADOF68Wvs,B1ADOF68Wvs,B1ADOF68Wvs,B1ADOF68Wvs,B1ADOF68Wvs, &
+ B1ADOF69Wvs,B1ADOF69Wvs,B1ADOF69Wvs,B1ADOF69Wvs,B1ADOF69Wvs,B1ADOF69Wvs,B1ADOF69Wvs,B1ADOF69Wvs,B1ADOF69Wvs, &
+ B1ADOF70Wvs,B1ADOF70Wvs,B1ADOF70Wvs,B1ADOF70Wvs,B1ADOF70Wvs,B1ADOF70Wvs,B1ADOF70Wvs,B1ADOF70Wvs,B1ADOF70Wvs, &
+ B1ADOF71Wvs,B1ADOF71Wvs,B1ADOF71Wvs,B1ADOF71Wvs,B1ADOF71Wvs,B1ADOF71Wvs,B1ADOF71Wvs,B1ADOF71Wvs,B1ADOF71Wvs, &
+ B1ADOF72Wvs,B1ADOF72Wvs,B1ADOF72Wvs,B1ADOF72Wvs,B1ADOF72Wvs,B1ADOF72Wvs,B1ADOF72Wvs,B1ADOF72Wvs,B1ADOF72Wvs, &
+ B1ADOF73Wvs,B1ADOF73Wvs,B1ADOF73Wvs,B1ADOF73Wvs,B1ADOF73Wvs,B1ADOF73Wvs,B1ADOF73Wvs,B1ADOF73Wvs,B1ADOF73Wvs, &
+ B1ADOF74Wvs,B1ADOF74Wvs,B1ADOF74Wvs,B1ADOF74Wvs,B1ADOF74Wvs,B1ADOF74Wvs,B1ADOF74Wvs,B1ADOF74Wvs,B1ADOF74Wvs, &
+ B1ADOF75Wvs,B1ADOF75Wvs,B1ADOF75Wvs,B1ADOF75Wvs,B1ADOF75Wvs,B1ADOF75Wvs,B1ADOF75Wvs,B1ADOF75Wvs,B1ADOF75Wvs, &
+ B1ADOF76Wvs,B1ADOF76Wvs,B1ADOF76Wvs,B1ADOF76Wvs,B1ADOF76Wvs,B1ADOF76Wvs,B1ADOF76Wvs,B1ADOF76Wvs,B1ADOF76Wvs, &
+ B1ADOF77Wvs,B1ADOF77Wvs,B1ADOF77Wvs,B1ADOF77Wvs,B1ADOF77Wvs,B1ADOF77Wvs,B1ADOF77Wvs,B1ADOF77Wvs,B1ADOF77Wvs, &
+ B1ADOF78Wvs,B1ADOF78Wvs,B1ADOF78Wvs,B1ADOF78Wvs,B1ADOF78Wvs,B1ADOF78Wvs,B1ADOF78Wvs,B1ADOF78Wvs,B1ADOF78Wvs, &
+ B1ADOF79Wvs,B1ADOF79Wvs,B1ADOF79Wvs,B1ADOF79Wvs,B1ADOF79Wvs,B1ADOF79Wvs,B1ADOF79Wvs,B1ADOF79Wvs,B1ADOF79Wvs, &
+ B1ADOF80Wvs,B1ADOF80Wvs,B1ADOF80Wvs,B1ADOF80Wvs,B1ADOF80Wvs,B1ADOF80Wvs,B1ADOF80Wvs,B1ADOF80Wvs,B1ADOF80Wvs, &
+ B1ADOF81Wvs,B1ADOF81Wvs,B1ADOF81Wvs,B1ADOF81Wvs,B1ADOF81Wvs,B1ADOF81Wvs,B1ADOF81Wvs,B1ADOF81Wvs,B1ADOF81Wvs, &
+ B1ADOF82Wvs,B1ADOF82Wvs,B1ADOF82Wvs,B1ADOF82Wvs,B1ADOF82Wvs,B1ADOF82Wvs,B1ADOF82Wvs,B1ADOF82Wvs,B1ADOF82Wvs, &
+ B1ADOF83Wvs,B1ADOF83Wvs,B1ADOF83Wvs,B1ADOF83Wvs,B1ADOF83Wvs,B1ADOF83Wvs,B1ADOF83Wvs,B1ADOF83Wvs,B1ADOF83Wvs, &
+ B1ADOF84Wvs,B1ADOF84Wvs,B1ADOF84Wvs,B1ADOF84Wvs,B1ADOF84Wvs,B1ADOF84Wvs,B1ADOF84Wvs,B1ADOF84Wvs,B1ADOF84Wvs, &
+ B1ADOF85Wvs,B1ADOF85Wvs,B1ADOF85Wvs,B1ADOF85Wvs,B1ADOF85Wvs,B1ADOF85Wvs,B1ADOF85Wvs,B1ADOF85Wvs,B1ADOF85Wvs, &
+ B1ADOF86Wvs,B1ADOF86Wvs,B1ADOF86Wvs,B1ADOF86Wvs,B1ADOF86Wvs,B1ADOF86Wvs,B1ADOF86Wvs,B1ADOF86Wvs,B1ADOF86Wvs, &
+ B1ADOF87Wvs,B1ADOF87Wvs,B1ADOF87Wvs,B1ADOF87Wvs,B1ADOF87Wvs,B1ADOF87Wvs,B1ADOF87Wvs,B1ADOF87Wvs,B1ADOF87Wvs, &
+ B1ADOF88Wvs,B1ADOF88Wvs,B1ADOF88Wvs,B1ADOF88Wvs,B1ADOF88Wvs,B1ADOF88Wvs,B1ADOF88Wvs,B1ADOF88Wvs,B1ADOF88Wvs, &
+ B1ADOF89Wvs,B1ADOF89Wvs,B1ADOF89Wvs,B1ADOF89Wvs,B1ADOF89Wvs,B1ADOF89Wvs,B1ADOF89Wvs,B1ADOF89Wvs,B1ADOF89Wvs, &
+ B1ADOF90Wvs,B1ADOF90Wvs,B1ADOF90Wvs,B1ADOF90Wvs,B1ADOF90Wvs,B1ADOF90Wvs,B1ADOF90Wvs,B1ADOF90Wvs,B1ADOF90Wvs, &
+ B1ADOF91Wvs,B1ADOF91Wvs,B1ADOF91Wvs,B1ADOF91Wvs,B1ADOF91Wvs,B1ADOF91Wvs,B1ADOF91Wvs,B1ADOF91Wvs,B1ADOF91Wvs, &
+ B1ADOF92Wvs,B1ADOF92Wvs,B1ADOF92Wvs,B1ADOF92Wvs,B1ADOF92Wvs,B1ADOF92Wvs,B1ADOF92Wvs,B1ADOF92Wvs,B1ADOF92Wvs, &
+ B1ADOF93Wvs,B1ADOF93Wvs,B1ADOF93Wvs,B1ADOF93Wvs,B1ADOF93Wvs,B1ADOF93Wvs,B1ADOF93Wvs,B1ADOF93Wvs,B1ADOF93Wvs, &
+ B1ADOF94Wvs,B1ADOF94Wvs,B1ADOF94Wvs,B1ADOF94Wvs,B1ADOF94Wvs,B1ADOF94Wvs,B1ADOF94Wvs,B1ADOF94Wvs,B1ADOF94Wvs, &
+ B1ADOF95Wvs,B1ADOF95Wvs,B1ADOF95Wvs,B1ADOF95Wvs,B1ADOF95Wvs,B1ADOF95Wvs,B1ADOF95Wvs,B1ADOF95Wvs,B1ADOF95Wvs, &
+ B1ADOF96Wvs,B1ADOF96Wvs,B1ADOF96Wvs,B1ADOF96Wvs,B1ADOF96Wvs,B1ADOF96Wvs,B1ADOF96Wvs,B1ADOF96Wvs,B1ADOF96Wvs, &
+ B1ADOF97Wvs,B1ADOF97Wvs,B1ADOF97Wvs,B1ADOF97Wvs,B1ADOF97Wvs,B1ADOF97Wvs,B1ADOF97Wvs,B1ADOF97Wvs,B1ADOF97Wvs, &
+ B1ADOF98Wvs,B1ADOF98Wvs,B1ADOF98Wvs,B1ADOF98Wvs,B1ADOF98Wvs,B1ADOF98Wvs,B1ADOF98Wvs,B1ADOF98Wvs,B1ADOF98Wvs, &
+ B1ADOF99Wvs,B1ADOF99Wvs,B1ADOF99Wvs,B1ADOF99Wvs,B1ADOF99Wvs,B1ADOF99Wvs,B1ADOF99Wvs,B1ADOF99Wvs,B1ADOF99Wvs/), &
+ (/9,99/)))
+
INTEGER, PARAMETER :: WBMotions(6,9) = transpose(reshape((/B1Surge,B2Surge,B3Surge,B4Surge,B5Surge,B6Surge,B7Surge,B8Surge,B9Surge, &
B1Sway ,B2Sway ,B3Sway ,B4Sway ,B5Sway ,B6Sway ,B7Sway ,B8Sway ,B9Sway , &
B1Heave,B2Heave,B3Heave,B4Heave,B5Heave,B6Heave,B7Heave,B8Heave,B9Heave, &
@@ -652,74 +7289,1280 @@ MODULE HydroDyn_Output
INTEGER, PARAMETER :: PRPMotions(6) = (/PRPSurge,PRPSway,PRPHeave,PRPRoll,PRPPitch,PRPYaw/)
INTEGER, PARAMETER :: PRPVel(6) = (/PRPTVxi, PRPTVyi,PRPTVzi, PRPRVxi,PRPRVyi, PRPRVzi/)
INTEGER, PARAMETER :: PRPAcc(6) = (/PRPTAxi, PRPTAyi,PRPTAzi, PRPRAxi,PRPRAyi, PRPRAzi/)
-
-
- CHARACTER(OutStrLenM1), PARAMETER :: ValidParamAry(510) = (/ & ! This lists the names of the allowed parameters, which must be sorted alphabetically
- "B1ADDFXI ","B1ADDFYI ","B1ADDFZI ","B1ADDMXI ","B1ADDMYI ","B1ADDMZI ","B1HDSFXI ","B1HDSFYI ", &
- "B1HDSFZI ","B1HDSMXI ","B1HDSMYI ","B1HDSMZI ","B1HEAVE ","B1PITCH ","B1RAXI ","B1RAYI ", &
- "B1RAZI ","B1RDTFXI ","B1RDTFYI ","B1RDTFZI ","B1RDTMXI ","B1RDTMYI ","B1RDTMZI ","B1ROLL ", &
- "B1RVXI ","B1RVYI ","B1RVZI ","B1SURGE ","B1SWAY ","B1TAXI ","B1TAYI ","B1TAZI ", &
- "B1TVXI ","B1TVYI ","B1TVZI ","B1WVSF1XI","B1WVSF1YI","B1WVSF1ZI","B1WVSF2XI","B1WVSF2YI", &
- "B1WVSF2ZI","B1WVSFXI ","B1WVSFYI ","B1WVSFZI ","B1WVSM1XI","B1WVSM1YI","B1WVSM1ZI","B1WVSM2XI", &
- "B1WVSM2YI","B1WVSM2ZI","B1WVSMXI ","B1WVSMYI ","B1WVSMZI ","B1YAW ","B2ADDFXI ","B2ADDFYI ", &
- "B2ADDFZI ","B2ADDMXI ","B2ADDMYI ","B2ADDMZI ","B2HDSFXI ","B2HDSFYI ","B2HDSFZI ","B2HDSMXI ", &
- "B2HDSMYI ","B2HDSMZI ","B2HEAVE ","B2PITCH ","B2RAXI ","B2RAYI ","B2RAZI ","B2RDTFXI ", &
- "B2RDTFYI ","B2RDTFZI ","B2RDTMXI ","B2RDTMYI ","B2RDTMZI ","B2ROLL ","B2RVXI ","B2RVYI ", &
- "B2RVZI ","B2SURGE ","B2SWAY ","B2TAXI ","B2TAYI ","B2TAZI ","B2TVXI ","B2TVYI ", &
- "B2TVZI ","B2WVSF1XI","B2WVSF1YI","B2WVSF1ZI","B2WVSF2XI","B2WVSF2YI","B2WVSF2ZI","B2WVSFXI ", &
- "B2WVSFYI ","B2WVSFZI ","B2WVSM1XI","B2WVSM1YI","B2WVSM1ZI","B2WVSM2XI","B2WVSM2YI","B2WVSM2ZI", &
- "B2WVSMXI ","B2WVSMYI ","B2WVSMZI ","B2YAW ","B3ADDFXI ","B3ADDFYI ","B3ADDFZI ","B3ADDMXI ", &
- "B3ADDMYI ","B3ADDMZI ","B3HDSFXI ","B3HDSFYI ","B3HDSFZI ","B3HDSMXI ","B3HDSMYI ","B3HDSMZI ", &
- "B3HEAVE ","B3PITCH ","B3RAXI ","B3RAYI ","B3RAZI ","B3RDTFXI ","B3RDTFYI ","B3RDTFZI ", &
- "B3RDTMXI ","B3RDTMYI ","B3RDTMZI ","B3ROLL ","B3RVXI ","B3RVYI ","B3RVZI ","B3SURGE ", &
- "B3SWAY ","B3TAXI ","B3TAYI ","B3TAZI ","B3TVXI ","B3TVYI ","B3TVZI ","B3WVSF1XI", &
- "B3WVSF1YI","B3WVSF1ZI","B3WVSF2XI","B3WVSF2YI","B3WVSF2ZI","B3WVSFXI ","B3WVSFYI ","B3WVSFZI ", &
- "B3WVSM1XI","B3WVSM1YI","B3WVSM1ZI","B3WVSM2XI","B3WVSM2YI","B3WVSM2ZI","B3WVSMXI ","B3WVSMYI ", &
- "B3WVSMZI ","B3YAW ","B4ADDFXI ","B4ADDFYI ","B4ADDFZI ","B4ADDMXI ","B4ADDMYI ","B4ADDMZI ", &
- "B4HDSFXI ","B4HDSFYI ","B4HDSFZI ","B4HDSMXI ","B4HDSMYI ","B4HDSMZI ","B4HEAVE ","B4PITCH ", &
- "B4RAXI ","B4RAYI ","B4RAZI ","B4RDTFXI ","B4RDTFYI ","B4RDTFZI ","B4RDTMXI ","B4RDTMYI ", &
- "B4RDTMZI ","B4ROLL ","B4RVXI ","B4RVYI ","B4RVZI ","B4SURGE ","B4SWAY ","B4TAXI ", &
- "B4TAYI ","B4TAZI ","B4TVXI ","B4TVYI ","B4TVZI ","B4WVSF1XI","B4WVSF1YI","B4WVSF1ZI", &
- "B4WVSF2XI","B4WVSF2YI","B4WVSF2ZI","B4WVSFXI ","B4WVSFYI ","B4WVSFZI ","B4WVSM1XI","B4WVSM1YI", &
- "B4WVSM1ZI","B4WVSM2XI","B4WVSM2YI","B4WVSM2ZI","B4WVSMXI ","B4WVSMYI ","B4WVSMZI ","B4YAW ", &
- "B5ADDFXI ","B5ADDFYI ","B5ADDFZI ","B5ADDMXI ","B5ADDMYI ","B5ADDMZI ","B5HDSFXI ","B5HDSFYI ", &
- "B5HDSFZI ","B5HDSMXI ","B5HDSMYI ","B5HDSMZI ","B5HEAVE ","B5PITCH ","B5RAXI ","B5RAYI ", &
- "B5RAZI ","B5RDTFXI ","B5RDTFYI ","B5RDTFZI ","B5RDTMXI ","B5RDTMYI ","B5RDTMZI ","B5ROLL ", &
- "B5RVXI ","B5RVYI ","B5RVZI ","B5SURGE ","B5SWAY ","B5TAXI ","B5TAYI ","B5TAZI ", &
- "B5TVXI ","B5TVYI ","B5TVZI ","B5WVSF1XI","B5WVSF1YI","B5WVSF1ZI","B5WVSF2XI","B5WVSF2YI", &
- "B5WVSF2ZI","B5WVSFXI ","B5WVSFYI ","B5WVSFZI ","B5WVSM1XI","B5WVSM1YI","B5WVSM1ZI","B5WVSM2XI", &
- "B5WVSM2YI","B5WVSM2ZI","B5WVSMXI ","B5WVSMYI ","B5WVSMZI ","B5YAW ","B6ADDFXI ","B6ADDFYI ", &
- "B6ADDFZI ","B6ADDMXI ","B6ADDMYI ","B6ADDMZI ","B6HDSFXI ","B6HDSFYI ","B6HDSFZI ","B6HDSMXI ", &
- "B6HDSMYI ","B6HDSMZI ","B6HEAVE ","B6PITCH ","B6RAXI ","B6RAYI ","B6RAZI ","B6RDTFXI ", &
- "B6RDTFYI ","B6RDTFZI ","B6RDTMXI ","B6RDTMYI ","B6RDTMZI ","B6ROLL ","B6RVXI ","B6RVYI ", &
- "B6RVZI ","B6SURGE ","B6SWAY ","B6TAXI ","B6TAYI ","B6TAZI ","B6TVXI ","B6TVYI ", &
- "B6TVZI ","B6WVSF1XI","B6WVSF1YI","B6WVSF1ZI","B6WVSF2XI","B6WVSF2YI","B6WVSF2ZI","B6WVSFXI ", &
- "B6WVSFYI ","B6WVSFZI ","B6WVSM1XI","B6WVSM1YI","B6WVSM1ZI","B6WVSM2XI","B6WVSM2YI","B6WVSM2ZI", &
- "B6WVSMXI ","B6WVSMYI ","B6WVSMZI ","B6YAW ","B7ADDFXI ","B7ADDFYI ","B7ADDFZI ","B7ADDMXI ", &
- "B7ADDMYI ","B7ADDMZI ","B7HDSFXI ","B7HDSFYI ","B7HDSFZI ","B7HDSMXI ","B7HDSMYI ","B7HDSMZI ", &
- "B7HEAVE ","B7PITCH ","B7RAXI ","B7RAYI ","B7RAZI ","B7RDTFXI ","B7RDTFYI ","B7RDTFZI ", &
- "B7RDTMXI ","B7RDTMYI ","B7RDTMZI ","B7ROLL ","B7RVXI ","B7RVYI ","B7RVZI ","B7SURGE ", &
- "B7SWAY ","B7TAXI ","B7TAYI ","B7TAZI ","B7TVXI ","B7TVYI ","B7TVZI ","B7WVSF1XI", &
- "B7WVSF1YI","B7WVSF1ZI","B7WVSF2XI","B7WVSF2YI","B7WVSF2ZI","B7WVSFXI ","B7WVSFYI ","B7WVSFZI ", &
- "B7WVSM1XI","B7WVSM1YI","B7WVSM1ZI","B7WVSM2XI","B7WVSM2YI","B7WVSM2ZI","B7WVSMXI ","B7WVSMYI ", &
- "B7WVSMZI ","B7YAW ","B8ADDFXI ","B8ADDFYI ","B8ADDFZI ","B8ADDMXI ","B8ADDMYI ","B8ADDMZI ", &
- "B8HDSFXI ","B8HDSFYI ","B8HDSFZI ","B8HDSMXI ","B8HDSMYI ","B8HDSMZI ","B8HEAVE ","B8PITCH ", &
- "B8RAXI ","B8RAYI ","B8RAZI ","B8RDTFXI ","B8RDTFYI ","B8RDTFZI ","B8RDTMXI ","B8RDTMYI ", &
- "B8RDTMZI ","B8ROLL ","B8RVXI ","B8RVYI ","B8RVZI ","B8SURGE ","B8SWAY ","B8TAXI ", &
- "B8TAYI ","B8TAZI ","B8TVXI ","B8TVYI ","B8TVZI ","B8WVSF1XI","B8WVSF1YI","B8WVSF1ZI", &
- "B8WVSF2XI","B8WVSF2YI","B8WVSF2ZI","B8WVSFXI ","B8WVSFYI ","B8WVSFZI ","B8WVSM1XI","B8WVSM1YI", &
- "B8WVSM1ZI","B8WVSM2XI","B8WVSM2YI","B8WVSM2ZI","B8WVSMXI ","B8WVSMYI ","B8WVSMZI ","B8YAW ", &
- "B9ADDFXI ","B9ADDFYI ","B9ADDFZI ","B9ADDMXI ","B9ADDMYI ","B9ADDMZI ","B9HDSFXI ","B9HDSFYI ", &
- "B9HDSFZI ","B9HDSMXI ","B9HDSMYI ","B9HDSMZI ","B9HEAVE ","B9PITCH ","B9RAXI ","B9RAYI ", &
- "B9RAZI ","B9RDTFXI ","B9RDTFYI ","B9RDTFZI ","B9RDTMXI ","B9RDTMYI ","B9RDTMZI ","B9ROLL ", &
- "B9RVXI ","B9RVYI ","B9RVZI ","B9SURGE ","B9SWAY ","B9TAXI ","B9TAYI ","B9TAZI ", &
- "B9TVXI ","B9TVYI ","B9TVZI ","B9WVSF1XI","B9WVSF1YI","B9WVSF1ZI","B9WVSF2XI","B9WVSF2YI", &
- "B9WVSF2ZI","B9WVSFXI ","B9WVSFYI ","B9WVSFZI ","B9WVSM1XI","B9WVSM1YI","B9WVSM1ZI","B9WVSM2XI", &
- "B9WVSM2YI","B9WVSM2ZI","B9WVSMXI ","B9WVSMYI ","B9WVSMZI ","B9YAW ","HYDROFXI ","HYDROFYI ", &
- "HYDROFZI ","HYDROMXI ","HYDROMYI ","HYDROMZI ","PRPHEAVE ","PRPPITCH ","PRPRAXI ","PRPRAYI ", &
- "PRPRAZI ","PRPROLL ","PRPRVXI ","PRPRVYI ","PRPRVZI ","PRPSURGE ","PRPSWAY ","PRPTAXI ", &
- "PRPTAYI ","PRPTAZI ","PRPTVXI ","PRPTVYI ","PRPTVZI ","PRPYAW "/)
+ INTEGER, PARAMETER :: ADOFDsp(99,9) = transpose(reshape((/B1ADOF1D,B1ADOF1D,B1ADOF1D,B1ADOF1D,B1ADOF1D,B1ADOF1D,B1ADOF1D,B1ADOF1D,B1ADOF1D, &
+ B1ADOF2D,B1ADOF2D,B1ADOF2D,B1ADOF2D,B1ADOF2D,B1ADOF2D,B1ADOF2D,B1ADOF2D,B1ADOF2D, &
+ B1ADOF3D,B1ADOF3D,B1ADOF3D,B1ADOF3D,B1ADOF3D,B1ADOF3D,B1ADOF3D,B1ADOF3D,B1ADOF3D, &
+ B1ADOF4D,B1ADOF4D,B1ADOF4D,B1ADOF4D,B1ADOF4D,B1ADOF4D,B1ADOF4D,B1ADOF4D,B1ADOF4D, &
+ B1ADOF5D,B1ADOF5D,B1ADOF5D,B1ADOF5D,B1ADOF5D,B1ADOF5D,B1ADOF5D,B1ADOF5D,B1ADOF5D, &
+ B1ADOF6D,B1ADOF6D,B1ADOF6D,B1ADOF6D,B1ADOF6D,B1ADOF6D,B1ADOF6D,B1ADOF6D,B1ADOF6D, &
+ B1ADOF7D,B1ADOF7D,B1ADOF7D,B1ADOF7D,B1ADOF7D,B1ADOF7D,B1ADOF7D,B1ADOF7D,B1ADOF7D, &
+ B1ADOF8D,B1ADOF8D,B1ADOF8D,B1ADOF8D,B1ADOF8D,B1ADOF8D,B1ADOF8D,B1ADOF8D,B1ADOF8D, &
+ B1ADOF9D,B1ADOF9D,B1ADOF9D,B1ADOF9D,B1ADOF9D,B1ADOF9D,B1ADOF9D,B1ADOF9D,B1ADOF9D, &
+ B1ADOF10D,B1ADOF10D,B1ADOF10D,B1ADOF10D,B1ADOF10D,B1ADOF10D,B1ADOF10D,B1ADOF10D,B1ADOF10D, &
+ B1ADOF11D,B1ADOF11D,B1ADOF11D,B1ADOF11D,B1ADOF11D,B1ADOF11D,B1ADOF11D,B1ADOF11D,B1ADOF11D, &
+ B1ADOF12D,B1ADOF12D,B1ADOF12D,B1ADOF12D,B1ADOF12D,B1ADOF12D,B1ADOF12D,B1ADOF12D,B1ADOF12D, &
+ B1ADOF13D,B1ADOF13D,B1ADOF13D,B1ADOF13D,B1ADOF13D,B1ADOF13D,B1ADOF13D,B1ADOF13D,B1ADOF13D, &
+ B1ADOF14D,B1ADOF14D,B1ADOF14D,B1ADOF14D,B1ADOF14D,B1ADOF14D,B1ADOF14D,B1ADOF14D,B1ADOF14D, &
+ B1ADOF15D,B1ADOF15D,B1ADOF15D,B1ADOF15D,B1ADOF15D,B1ADOF15D,B1ADOF15D,B1ADOF15D,B1ADOF15D, &
+ B1ADOF16D,B1ADOF16D,B1ADOF16D,B1ADOF16D,B1ADOF16D,B1ADOF16D,B1ADOF16D,B1ADOF16D,B1ADOF16D, &
+ B1ADOF17D,B1ADOF17D,B1ADOF17D,B1ADOF17D,B1ADOF17D,B1ADOF17D,B1ADOF17D,B1ADOF17D,B1ADOF17D, &
+ B1ADOF18D,B1ADOF18D,B1ADOF18D,B1ADOF18D,B1ADOF18D,B1ADOF18D,B1ADOF18D,B1ADOF18D,B1ADOF18D, &
+ B1ADOF19D,B1ADOF19D,B1ADOF19D,B1ADOF19D,B1ADOF19D,B1ADOF19D,B1ADOF19D,B1ADOF19D,B1ADOF19D, &
+ B1ADOF20D,B1ADOF20D,B1ADOF20D,B1ADOF20D,B1ADOF20D,B1ADOF20D,B1ADOF20D,B1ADOF20D,B1ADOF20D, &
+ B1ADOF21D,B1ADOF21D,B1ADOF21D,B1ADOF21D,B1ADOF21D,B1ADOF21D,B1ADOF21D,B1ADOF21D,B1ADOF21D, &
+ B1ADOF22D,B1ADOF22D,B1ADOF22D,B1ADOF22D,B1ADOF22D,B1ADOF22D,B1ADOF22D,B1ADOF22D,B1ADOF22D, &
+ B1ADOF23D,B1ADOF23D,B1ADOF23D,B1ADOF23D,B1ADOF23D,B1ADOF23D,B1ADOF23D,B1ADOF23D,B1ADOF23D, &
+ B1ADOF24D,B1ADOF24D,B1ADOF24D,B1ADOF24D,B1ADOF24D,B1ADOF24D,B1ADOF24D,B1ADOF24D,B1ADOF24D, &
+ B1ADOF25D,B1ADOF25D,B1ADOF25D,B1ADOF25D,B1ADOF25D,B1ADOF25D,B1ADOF25D,B1ADOF25D,B1ADOF25D, &
+ B1ADOF26D,B1ADOF26D,B1ADOF26D,B1ADOF26D,B1ADOF26D,B1ADOF26D,B1ADOF26D,B1ADOF26D,B1ADOF26D, &
+ B1ADOF27D,B1ADOF27D,B1ADOF27D,B1ADOF27D,B1ADOF27D,B1ADOF27D,B1ADOF27D,B1ADOF27D,B1ADOF27D, &
+ B1ADOF28D,B1ADOF28D,B1ADOF28D,B1ADOF28D,B1ADOF28D,B1ADOF28D,B1ADOF28D,B1ADOF28D,B1ADOF28D, &
+ B1ADOF29D,B1ADOF29D,B1ADOF29D,B1ADOF29D,B1ADOF29D,B1ADOF29D,B1ADOF29D,B1ADOF29D,B1ADOF29D, &
+ B1ADOF30D,B1ADOF30D,B1ADOF30D,B1ADOF30D,B1ADOF30D,B1ADOF30D,B1ADOF30D,B1ADOF30D,B1ADOF30D, &
+ B1ADOF31D,B1ADOF31D,B1ADOF31D,B1ADOF31D,B1ADOF31D,B1ADOF31D,B1ADOF31D,B1ADOF31D,B1ADOF31D, &
+ B1ADOF32D,B1ADOF32D,B1ADOF32D,B1ADOF32D,B1ADOF32D,B1ADOF32D,B1ADOF32D,B1ADOF32D,B1ADOF32D, &
+ B1ADOF33D,B1ADOF33D,B1ADOF33D,B1ADOF33D,B1ADOF33D,B1ADOF33D,B1ADOF33D,B1ADOF33D,B1ADOF33D, &
+ B1ADOF34D,B1ADOF34D,B1ADOF34D,B1ADOF34D,B1ADOF34D,B1ADOF34D,B1ADOF34D,B1ADOF34D,B1ADOF34D, &
+ B1ADOF35D,B1ADOF35D,B1ADOF35D,B1ADOF35D,B1ADOF35D,B1ADOF35D,B1ADOF35D,B1ADOF35D,B1ADOF35D, &
+ B1ADOF36D,B1ADOF36D,B1ADOF36D,B1ADOF36D,B1ADOF36D,B1ADOF36D,B1ADOF36D,B1ADOF36D,B1ADOF36D, &
+ B1ADOF37D,B1ADOF37D,B1ADOF37D,B1ADOF37D,B1ADOF37D,B1ADOF37D,B1ADOF37D,B1ADOF37D,B1ADOF37D, &
+ B1ADOF38D,B1ADOF38D,B1ADOF38D,B1ADOF38D,B1ADOF38D,B1ADOF38D,B1ADOF38D,B1ADOF38D,B1ADOF38D, &
+ B1ADOF39D,B1ADOF39D,B1ADOF39D,B1ADOF39D,B1ADOF39D,B1ADOF39D,B1ADOF39D,B1ADOF39D,B1ADOF39D, &
+ B1ADOF40D,B1ADOF40D,B1ADOF40D,B1ADOF40D,B1ADOF40D,B1ADOF40D,B1ADOF40D,B1ADOF40D,B1ADOF40D, &
+ B1ADOF41D,B1ADOF41D,B1ADOF41D,B1ADOF41D,B1ADOF41D,B1ADOF41D,B1ADOF41D,B1ADOF41D,B1ADOF41D, &
+ B1ADOF42D,B1ADOF42D,B1ADOF42D,B1ADOF42D,B1ADOF42D,B1ADOF42D,B1ADOF42D,B1ADOF42D,B1ADOF42D, &
+ B1ADOF43D,B1ADOF43D,B1ADOF43D,B1ADOF43D,B1ADOF43D,B1ADOF43D,B1ADOF43D,B1ADOF43D,B1ADOF43D, &
+ B1ADOF44D,B1ADOF44D,B1ADOF44D,B1ADOF44D,B1ADOF44D,B1ADOF44D,B1ADOF44D,B1ADOF44D,B1ADOF44D, &
+ B1ADOF45D,B1ADOF45D,B1ADOF45D,B1ADOF45D,B1ADOF45D,B1ADOF45D,B1ADOF45D,B1ADOF45D,B1ADOF45D, &
+ B1ADOF46D,B1ADOF46D,B1ADOF46D,B1ADOF46D,B1ADOF46D,B1ADOF46D,B1ADOF46D,B1ADOF46D,B1ADOF46D, &
+ B1ADOF47D,B1ADOF47D,B1ADOF47D,B1ADOF47D,B1ADOF47D,B1ADOF47D,B1ADOF47D,B1ADOF47D,B1ADOF47D, &
+ B1ADOF48D,B1ADOF48D,B1ADOF48D,B1ADOF48D,B1ADOF48D,B1ADOF48D,B1ADOF48D,B1ADOF48D,B1ADOF48D, &
+ B1ADOF49D,B1ADOF49D,B1ADOF49D,B1ADOF49D,B1ADOF49D,B1ADOF49D,B1ADOF49D,B1ADOF49D,B1ADOF49D, &
+ B1ADOF50D,B1ADOF50D,B1ADOF50D,B1ADOF50D,B1ADOF50D,B1ADOF50D,B1ADOF50D,B1ADOF50D,B1ADOF50D, &
+ B1ADOF51D,B1ADOF51D,B1ADOF51D,B1ADOF51D,B1ADOF51D,B1ADOF51D,B1ADOF51D,B1ADOF51D,B1ADOF51D, &
+ B1ADOF52D,B1ADOF52D,B1ADOF52D,B1ADOF52D,B1ADOF52D,B1ADOF52D,B1ADOF52D,B1ADOF52D,B1ADOF52D, &
+ B1ADOF53D,B1ADOF53D,B1ADOF53D,B1ADOF53D,B1ADOF53D,B1ADOF53D,B1ADOF53D,B1ADOF53D,B1ADOF53D, &
+ B1ADOF54D,B1ADOF54D,B1ADOF54D,B1ADOF54D,B1ADOF54D,B1ADOF54D,B1ADOF54D,B1ADOF54D,B1ADOF54D, &
+ B1ADOF55D,B1ADOF55D,B1ADOF55D,B1ADOF55D,B1ADOF55D,B1ADOF55D,B1ADOF55D,B1ADOF55D,B1ADOF55D, &
+ B1ADOF56D,B1ADOF56D,B1ADOF56D,B1ADOF56D,B1ADOF56D,B1ADOF56D,B1ADOF56D,B1ADOF56D,B1ADOF56D, &
+ B1ADOF57D,B1ADOF57D,B1ADOF57D,B1ADOF57D,B1ADOF57D,B1ADOF57D,B1ADOF57D,B1ADOF57D,B1ADOF57D, &
+ B1ADOF58D,B1ADOF58D,B1ADOF58D,B1ADOF58D,B1ADOF58D,B1ADOF58D,B1ADOF58D,B1ADOF58D,B1ADOF58D, &
+ B1ADOF59D,B1ADOF59D,B1ADOF59D,B1ADOF59D,B1ADOF59D,B1ADOF59D,B1ADOF59D,B1ADOF59D,B1ADOF59D, &
+ B1ADOF60D,B1ADOF60D,B1ADOF60D,B1ADOF60D,B1ADOF60D,B1ADOF60D,B1ADOF60D,B1ADOF60D,B1ADOF60D, &
+ B1ADOF61D,B1ADOF61D,B1ADOF61D,B1ADOF61D,B1ADOF61D,B1ADOF61D,B1ADOF61D,B1ADOF61D,B1ADOF61D, &
+ B1ADOF62D,B1ADOF62D,B1ADOF62D,B1ADOF62D,B1ADOF62D,B1ADOF62D,B1ADOF62D,B1ADOF62D,B1ADOF62D, &
+ B1ADOF63D,B1ADOF63D,B1ADOF63D,B1ADOF63D,B1ADOF63D,B1ADOF63D,B1ADOF63D,B1ADOF63D,B1ADOF63D, &
+ B1ADOF64D,B1ADOF64D,B1ADOF64D,B1ADOF64D,B1ADOF64D,B1ADOF64D,B1ADOF64D,B1ADOF64D,B1ADOF64D, &
+ B1ADOF65D,B1ADOF65D,B1ADOF65D,B1ADOF65D,B1ADOF65D,B1ADOF65D,B1ADOF65D,B1ADOF65D,B1ADOF65D, &
+ B1ADOF66D,B1ADOF66D,B1ADOF66D,B1ADOF66D,B1ADOF66D,B1ADOF66D,B1ADOF66D,B1ADOF66D,B1ADOF66D, &
+ B1ADOF67D,B1ADOF67D,B1ADOF67D,B1ADOF67D,B1ADOF67D,B1ADOF67D,B1ADOF67D,B1ADOF67D,B1ADOF67D, &
+ B1ADOF68D,B1ADOF68D,B1ADOF68D,B1ADOF68D,B1ADOF68D,B1ADOF68D,B1ADOF68D,B1ADOF68D,B1ADOF68D, &
+ B1ADOF69D,B1ADOF69D,B1ADOF69D,B1ADOF69D,B1ADOF69D,B1ADOF69D,B1ADOF69D,B1ADOF69D,B1ADOF69D, &
+ B1ADOF70D,B1ADOF70D,B1ADOF70D,B1ADOF70D,B1ADOF70D,B1ADOF70D,B1ADOF70D,B1ADOF70D,B1ADOF70D, &
+ B1ADOF71D,B1ADOF71D,B1ADOF71D,B1ADOF71D,B1ADOF71D,B1ADOF71D,B1ADOF71D,B1ADOF71D,B1ADOF71D, &
+ B1ADOF72D,B1ADOF72D,B1ADOF72D,B1ADOF72D,B1ADOF72D,B1ADOF72D,B1ADOF72D,B1ADOF72D,B1ADOF72D, &
+ B1ADOF73D,B1ADOF73D,B1ADOF73D,B1ADOF73D,B1ADOF73D,B1ADOF73D,B1ADOF73D,B1ADOF73D,B1ADOF73D, &
+ B1ADOF74D,B1ADOF74D,B1ADOF74D,B1ADOF74D,B1ADOF74D,B1ADOF74D,B1ADOF74D,B1ADOF74D,B1ADOF74D, &
+ B1ADOF75D,B1ADOF75D,B1ADOF75D,B1ADOF75D,B1ADOF75D,B1ADOF75D,B1ADOF75D,B1ADOF75D,B1ADOF75D, &
+ B1ADOF76D,B1ADOF76D,B1ADOF76D,B1ADOF76D,B1ADOF76D,B1ADOF76D,B1ADOF76D,B1ADOF76D,B1ADOF76D, &
+ B1ADOF77D,B1ADOF77D,B1ADOF77D,B1ADOF77D,B1ADOF77D,B1ADOF77D,B1ADOF77D,B1ADOF77D,B1ADOF77D, &
+ B1ADOF78D,B1ADOF78D,B1ADOF78D,B1ADOF78D,B1ADOF78D,B1ADOF78D,B1ADOF78D,B1ADOF78D,B1ADOF78D, &
+ B1ADOF79D,B1ADOF79D,B1ADOF79D,B1ADOF79D,B1ADOF79D,B1ADOF79D,B1ADOF79D,B1ADOF79D,B1ADOF79D, &
+ B1ADOF80D,B1ADOF80D,B1ADOF80D,B1ADOF80D,B1ADOF80D,B1ADOF80D,B1ADOF80D,B1ADOF80D,B1ADOF80D, &
+ B1ADOF81D,B1ADOF81D,B1ADOF81D,B1ADOF81D,B1ADOF81D,B1ADOF81D,B1ADOF81D,B1ADOF81D,B1ADOF81D, &
+ B1ADOF82D,B1ADOF82D,B1ADOF82D,B1ADOF82D,B1ADOF82D,B1ADOF82D,B1ADOF82D,B1ADOF82D,B1ADOF82D, &
+ B1ADOF83D,B1ADOF83D,B1ADOF83D,B1ADOF83D,B1ADOF83D,B1ADOF83D,B1ADOF83D,B1ADOF83D,B1ADOF83D, &
+ B1ADOF84D,B1ADOF84D,B1ADOF84D,B1ADOF84D,B1ADOF84D,B1ADOF84D,B1ADOF84D,B1ADOF84D,B1ADOF84D, &
+ B1ADOF85D,B1ADOF85D,B1ADOF85D,B1ADOF85D,B1ADOF85D,B1ADOF85D,B1ADOF85D,B1ADOF85D,B1ADOF85D, &
+ B1ADOF86D,B1ADOF86D,B1ADOF86D,B1ADOF86D,B1ADOF86D,B1ADOF86D,B1ADOF86D,B1ADOF86D,B1ADOF86D, &
+ B1ADOF87D,B1ADOF87D,B1ADOF87D,B1ADOF87D,B1ADOF87D,B1ADOF87D,B1ADOF87D,B1ADOF87D,B1ADOF87D, &
+ B1ADOF88D,B1ADOF88D,B1ADOF88D,B1ADOF88D,B1ADOF88D,B1ADOF88D,B1ADOF88D,B1ADOF88D,B1ADOF88D, &
+ B1ADOF89D,B1ADOF89D,B1ADOF89D,B1ADOF89D,B1ADOF89D,B1ADOF89D,B1ADOF89D,B1ADOF89D,B1ADOF89D, &
+ B1ADOF90D,B1ADOF90D,B1ADOF90D,B1ADOF90D,B1ADOF90D,B1ADOF90D,B1ADOF90D,B1ADOF90D,B1ADOF90D, &
+ B1ADOF91D,B1ADOF91D,B1ADOF91D,B1ADOF91D,B1ADOF91D,B1ADOF91D,B1ADOF91D,B1ADOF91D,B1ADOF91D, &
+ B1ADOF92D,B1ADOF92D,B1ADOF92D,B1ADOF92D,B1ADOF92D,B1ADOF92D,B1ADOF92D,B1ADOF92D,B1ADOF92D, &
+ B1ADOF93D,B1ADOF93D,B1ADOF93D,B1ADOF93D,B1ADOF93D,B1ADOF93D,B1ADOF93D,B1ADOF93D,B1ADOF93D, &
+ B1ADOF94D,B1ADOF94D,B1ADOF94D,B1ADOF94D,B1ADOF94D,B1ADOF94D,B1ADOF94D,B1ADOF94D,B1ADOF94D, &
+ B1ADOF95D,B1ADOF95D,B1ADOF95D,B1ADOF95D,B1ADOF95D,B1ADOF95D,B1ADOF95D,B1ADOF95D,B1ADOF95D, &
+ B1ADOF96D,B1ADOF96D,B1ADOF96D,B1ADOF96D,B1ADOF96D,B1ADOF96D,B1ADOF96D,B1ADOF96D,B1ADOF96D, &
+ B1ADOF97D,B1ADOF97D,B1ADOF97D,B1ADOF97D,B1ADOF97D,B1ADOF97D,B1ADOF97D,B1ADOF97D,B1ADOF97D, &
+ B1ADOF98D,B1ADOF98D,B1ADOF98D,B1ADOF98D,B1ADOF98D,B1ADOF98D,B1ADOF98D,B1ADOF98D,B1ADOF98D, &
+ B1ADOF99D,B1ADOF99D,B1ADOF99D,B1ADOF99D,B1ADOF99D,B1ADOF99D,B1ADOF99D,B1ADOF99D,B1ADOF99D/), &
+ (/9,99/)))
+
+ INTEGER, PARAMETER :: ADOFVel(99,9) = transpose(reshape((/B1ADOF1V,B1ADOF1V,B1ADOF1V,B1ADOF1V,B1ADOF1V,B1ADOF1V,B1ADOF1V,B1ADOF1V,B1ADOF1V, &
+ B1ADOF2V,B1ADOF2V,B1ADOF2V,B1ADOF2V,B1ADOF2V,B1ADOF2V,B1ADOF2V,B1ADOF2V,B1ADOF2V, &
+ B1ADOF3V,B1ADOF3V,B1ADOF3V,B1ADOF3V,B1ADOF3V,B1ADOF3V,B1ADOF3V,B1ADOF3V,B1ADOF3V, &
+ B1ADOF4V,B1ADOF4V,B1ADOF4V,B1ADOF4V,B1ADOF4V,B1ADOF4V,B1ADOF4V,B1ADOF4V,B1ADOF4V, &
+ B1ADOF5V,B1ADOF5V,B1ADOF5V,B1ADOF5V,B1ADOF5V,B1ADOF5V,B1ADOF5V,B1ADOF5V,B1ADOF5V, &
+ B1ADOF6V,B1ADOF6V,B1ADOF6V,B1ADOF6V,B1ADOF6V,B1ADOF6V,B1ADOF6V,B1ADOF6V,B1ADOF6V, &
+ B1ADOF7V,B1ADOF7V,B1ADOF7V,B1ADOF7V,B1ADOF7V,B1ADOF7V,B1ADOF7V,B1ADOF7V,B1ADOF7V, &
+ B1ADOF8V,B1ADOF8V,B1ADOF8V,B1ADOF8V,B1ADOF8V,B1ADOF8V,B1ADOF8V,B1ADOF8V,B1ADOF8V, &
+ B1ADOF9V,B1ADOF9V,B1ADOF9V,B1ADOF9V,B1ADOF9V,B1ADOF9V,B1ADOF9V,B1ADOF9V,B1ADOF9V, &
+ B1ADOF10V,B1ADOF10V,B1ADOF10V,B1ADOF10V,B1ADOF10V,B1ADOF10V,B1ADOF10V,B1ADOF10V,B1ADOF10V, &
+ B1ADOF11V,B1ADOF11V,B1ADOF11V,B1ADOF11V,B1ADOF11V,B1ADOF11V,B1ADOF11V,B1ADOF11V,B1ADOF11V, &
+ B1ADOF12V,B1ADOF12V,B1ADOF12V,B1ADOF12V,B1ADOF12V,B1ADOF12V,B1ADOF12V,B1ADOF12V,B1ADOF12V, &
+ B1ADOF13V,B1ADOF13V,B1ADOF13V,B1ADOF13V,B1ADOF13V,B1ADOF13V,B1ADOF13V,B1ADOF13V,B1ADOF13V, &
+ B1ADOF14V,B1ADOF14V,B1ADOF14V,B1ADOF14V,B1ADOF14V,B1ADOF14V,B1ADOF14V,B1ADOF14V,B1ADOF14V, &
+ B1ADOF15V,B1ADOF15V,B1ADOF15V,B1ADOF15V,B1ADOF15V,B1ADOF15V,B1ADOF15V,B1ADOF15V,B1ADOF15V, &
+ B1ADOF16V,B1ADOF16V,B1ADOF16V,B1ADOF16V,B1ADOF16V,B1ADOF16V,B1ADOF16V,B1ADOF16V,B1ADOF16V, &
+ B1ADOF17V,B1ADOF17V,B1ADOF17V,B1ADOF17V,B1ADOF17V,B1ADOF17V,B1ADOF17V,B1ADOF17V,B1ADOF17V, &
+ B1ADOF18V,B1ADOF18V,B1ADOF18V,B1ADOF18V,B1ADOF18V,B1ADOF18V,B1ADOF18V,B1ADOF18V,B1ADOF18V, &
+ B1ADOF19V,B1ADOF19V,B1ADOF19V,B1ADOF19V,B1ADOF19V,B1ADOF19V,B1ADOF19V,B1ADOF19V,B1ADOF19V, &
+ B1ADOF20V,B1ADOF20V,B1ADOF20V,B1ADOF20V,B1ADOF20V,B1ADOF20V,B1ADOF20V,B1ADOF20V,B1ADOF20V, &
+ B1ADOF21V,B1ADOF21V,B1ADOF21V,B1ADOF21V,B1ADOF21V,B1ADOF21V,B1ADOF21V,B1ADOF21V,B1ADOF21V, &
+ B1ADOF22V,B1ADOF22V,B1ADOF22V,B1ADOF22V,B1ADOF22V,B1ADOF22V,B1ADOF22V,B1ADOF22V,B1ADOF22V, &
+ B1ADOF23V,B1ADOF23V,B1ADOF23V,B1ADOF23V,B1ADOF23V,B1ADOF23V,B1ADOF23V,B1ADOF23V,B1ADOF23V, &
+ B1ADOF24V,B1ADOF24V,B1ADOF24V,B1ADOF24V,B1ADOF24V,B1ADOF24V,B1ADOF24V,B1ADOF24V,B1ADOF24V, &
+ B1ADOF25V,B1ADOF25V,B1ADOF25V,B1ADOF25V,B1ADOF25V,B1ADOF25V,B1ADOF25V,B1ADOF25V,B1ADOF25V, &
+ B1ADOF26V,B1ADOF26V,B1ADOF26V,B1ADOF26V,B1ADOF26V,B1ADOF26V,B1ADOF26V,B1ADOF26V,B1ADOF26V, &
+ B1ADOF27V,B1ADOF27V,B1ADOF27V,B1ADOF27V,B1ADOF27V,B1ADOF27V,B1ADOF27V,B1ADOF27V,B1ADOF27V, &
+ B1ADOF28V,B1ADOF28V,B1ADOF28V,B1ADOF28V,B1ADOF28V,B1ADOF28V,B1ADOF28V,B1ADOF28V,B1ADOF28V, &
+ B1ADOF29V,B1ADOF29V,B1ADOF29V,B1ADOF29V,B1ADOF29V,B1ADOF29V,B1ADOF29V,B1ADOF29V,B1ADOF29V, &
+ B1ADOF30V,B1ADOF30V,B1ADOF30V,B1ADOF30V,B1ADOF30V,B1ADOF30V,B1ADOF30V,B1ADOF30V,B1ADOF30V, &
+ B1ADOF31V,B1ADOF31V,B1ADOF31V,B1ADOF31V,B1ADOF31V,B1ADOF31V,B1ADOF31V,B1ADOF31V,B1ADOF31V, &
+ B1ADOF32V,B1ADOF32V,B1ADOF32V,B1ADOF32V,B1ADOF32V,B1ADOF32V,B1ADOF32V,B1ADOF32V,B1ADOF32V, &
+ B1ADOF33V,B1ADOF33V,B1ADOF33V,B1ADOF33V,B1ADOF33V,B1ADOF33V,B1ADOF33V,B1ADOF33V,B1ADOF33V, &
+ B1ADOF34V,B1ADOF34V,B1ADOF34V,B1ADOF34V,B1ADOF34V,B1ADOF34V,B1ADOF34V,B1ADOF34V,B1ADOF34V, &
+ B1ADOF35V,B1ADOF35V,B1ADOF35V,B1ADOF35V,B1ADOF35V,B1ADOF35V,B1ADOF35V,B1ADOF35V,B1ADOF35V, &
+ B1ADOF36V,B1ADOF36V,B1ADOF36V,B1ADOF36V,B1ADOF36V,B1ADOF36V,B1ADOF36V,B1ADOF36V,B1ADOF36V, &
+ B1ADOF37V,B1ADOF37V,B1ADOF37V,B1ADOF37V,B1ADOF37V,B1ADOF37V,B1ADOF37V,B1ADOF37V,B1ADOF37V, &
+ B1ADOF38V,B1ADOF38V,B1ADOF38V,B1ADOF38V,B1ADOF38V,B1ADOF38V,B1ADOF38V,B1ADOF38V,B1ADOF38V, &
+ B1ADOF39V,B1ADOF39V,B1ADOF39V,B1ADOF39V,B1ADOF39V,B1ADOF39V,B1ADOF39V,B1ADOF39V,B1ADOF39V, &
+ B1ADOF40V,B1ADOF40V,B1ADOF40V,B1ADOF40V,B1ADOF40V,B1ADOF40V,B1ADOF40V,B1ADOF40V,B1ADOF40V, &
+ B1ADOF41V,B1ADOF41V,B1ADOF41V,B1ADOF41V,B1ADOF41V,B1ADOF41V,B1ADOF41V,B1ADOF41V,B1ADOF41V, &
+ B1ADOF42V,B1ADOF42V,B1ADOF42V,B1ADOF42V,B1ADOF42V,B1ADOF42V,B1ADOF42V,B1ADOF42V,B1ADOF42V, &
+ B1ADOF43V,B1ADOF43V,B1ADOF43V,B1ADOF43V,B1ADOF43V,B1ADOF43V,B1ADOF43V,B1ADOF43V,B1ADOF43V, &
+ B1ADOF44V,B1ADOF44V,B1ADOF44V,B1ADOF44V,B1ADOF44V,B1ADOF44V,B1ADOF44V,B1ADOF44V,B1ADOF44V, &
+ B1ADOF45V,B1ADOF45V,B1ADOF45V,B1ADOF45V,B1ADOF45V,B1ADOF45V,B1ADOF45V,B1ADOF45V,B1ADOF45V, &
+ B1ADOF46V,B1ADOF46V,B1ADOF46V,B1ADOF46V,B1ADOF46V,B1ADOF46V,B1ADOF46V,B1ADOF46V,B1ADOF46V, &
+ B1ADOF47V,B1ADOF47V,B1ADOF47V,B1ADOF47V,B1ADOF47V,B1ADOF47V,B1ADOF47V,B1ADOF47V,B1ADOF47V, &
+ B1ADOF48V,B1ADOF48V,B1ADOF48V,B1ADOF48V,B1ADOF48V,B1ADOF48V,B1ADOF48V,B1ADOF48V,B1ADOF48V, &
+ B1ADOF49V,B1ADOF49V,B1ADOF49V,B1ADOF49V,B1ADOF49V,B1ADOF49V,B1ADOF49V,B1ADOF49V,B1ADOF49V, &
+ B1ADOF50V,B1ADOF50V,B1ADOF50V,B1ADOF50V,B1ADOF50V,B1ADOF50V,B1ADOF50V,B1ADOF50V,B1ADOF50V, &
+ B1ADOF51V,B1ADOF51V,B1ADOF51V,B1ADOF51V,B1ADOF51V,B1ADOF51V,B1ADOF51V,B1ADOF51V,B1ADOF51V, &
+ B1ADOF52V,B1ADOF52V,B1ADOF52V,B1ADOF52V,B1ADOF52V,B1ADOF52V,B1ADOF52V,B1ADOF52V,B1ADOF52V, &
+ B1ADOF53V,B1ADOF53V,B1ADOF53V,B1ADOF53V,B1ADOF53V,B1ADOF53V,B1ADOF53V,B1ADOF53V,B1ADOF53V, &
+ B1ADOF54V,B1ADOF54V,B1ADOF54V,B1ADOF54V,B1ADOF54V,B1ADOF54V,B1ADOF54V,B1ADOF54V,B1ADOF54V, &
+ B1ADOF55V,B1ADOF55V,B1ADOF55V,B1ADOF55V,B1ADOF55V,B1ADOF55V,B1ADOF55V,B1ADOF55V,B1ADOF55V, &
+ B1ADOF56V,B1ADOF56V,B1ADOF56V,B1ADOF56V,B1ADOF56V,B1ADOF56V,B1ADOF56V,B1ADOF56V,B1ADOF56V, &
+ B1ADOF57V,B1ADOF57V,B1ADOF57V,B1ADOF57V,B1ADOF57V,B1ADOF57V,B1ADOF57V,B1ADOF57V,B1ADOF57V, &
+ B1ADOF58V,B1ADOF58V,B1ADOF58V,B1ADOF58V,B1ADOF58V,B1ADOF58V,B1ADOF58V,B1ADOF58V,B1ADOF58V, &
+ B1ADOF59V,B1ADOF59V,B1ADOF59V,B1ADOF59V,B1ADOF59V,B1ADOF59V,B1ADOF59V,B1ADOF59V,B1ADOF59V, &
+ B1ADOF60V,B1ADOF60V,B1ADOF60V,B1ADOF60V,B1ADOF60V,B1ADOF60V,B1ADOF60V,B1ADOF60V,B1ADOF60V, &
+ B1ADOF61V,B1ADOF61V,B1ADOF61V,B1ADOF61V,B1ADOF61V,B1ADOF61V,B1ADOF61V,B1ADOF61V,B1ADOF61V, &
+ B1ADOF62V,B1ADOF62V,B1ADOF62V,B1ADOF62V,B1ADOF62V,B1ADOF62V,B1ADOF62V,B1ADOF62V,B1ADOF62V, &
+ B1ADOF63V,B1ADOF63V,B1ADOF63V,B1ADOF63V,B1ADOF63V,B1ADOF63V,B1ADOF63V,B1ADOF63V,B1ADOF63V, &
+ B1ADOF64V,B1ADOF64V,B1ADOF64V,B1ADOF64V,B1ADOF64V,B1ADOF64V,B1ADOF64V,B1ADOF64V,B1ADOF64V, &
+ B1ADOF65V,B1ADOF65V,B1ADOF65V,B1ADOF65V,B1ADOF65V,B1ADOF65V,B1ADOF65V,B1ADOF65V,B1ADOF65V, &
+ B1ADOF66V,B1ADOF66V,B1ADOF66V,B1ADOF66V,B1ADOF66V,B1ADOF66V,B1ADOF66V,B1ADOF66V,B1ADOF66V, &
+ B1ADOF67V,B1ADOF67V,B1ADOF67V,B1ADOF67V,B1ADOF67V,B1ADOF67V,B1ADOF67V,B1ADOF67V,B1ADOF67V, &
+ B1ADOF68V,B1ADOF68V,B1ADOF68V,B1ADOF68V,B1ADOF68V,B1ADOF68V,B1ADOF68V,B1ADOF68V,B1ADOF68V, &
+ B1ADOF69V,B1ADOF69V,B1ADOF69V,B1ADOF69V,B1ADOF69V,B1ADOF69V,B1ADOF69V,B1ADOF69V,B1ADOF69V, &
+ B1ADOF70V,B1ADOF70V,B1ADOF70V,B1ADOF70V,B1ADOF70V,B1ADOF70V,B1ADOF70V,B1ADOF70V,B1ADOF70V, &
+ B1ADOF71V,B1ADOF71V,B1ADOF71V,B1ADOF71V,B1ADOF71V,B1ADOF71V,B1ADOF71V,B1ADOF71V,B1ADOF71V, &
+ B1ADOF72V,B1ADOF72V,B1ADOF72V,B1ADOF72V,B1ADOF72V,B1ADOF72V,B1ADOF72V,B1ADOF72V,B1ADOF72V, &
+ B1ADOF73V,B1ADOF73V,B1ADOF73V,B1ADOF73V,B1ADOF73V,B1ADOF73V,B1ADOF73V,B1ADOF73V,B1ADOF73V, &
+ B1ADOF74V,B1ADOF74V,B1ADOF74V,B1ADOF74V,B1ADOF74V,B1ADOF74V,B1ADOF74V,B1ADOF74V,B1ADOF74V, &
+ B1ADOF75V,B1ADOF75V,B1ADOF75V,B1ADOF75V,B1ADOF75V,B1ADOF75V,B1ADOF75V,B1ADOF75V,B1ADOF75V, &
+ B1ADOF76V,B1ADOF76V,B1ADOF76V,B1ADOF76V,B1ADOF76V,B1ADOF76V,B1ADOF76V,B1ADOF76V,B1ADOF76V, &
+ B1ADOF77V,B1ADOF77V,B1ADOF77V,B1ADOF77V,B1ADOF77V,B1ADOF77V,B1ADOF77V,B1ADOF77V,B1ADOF77V, &
+ B1ADOF78V,B1ADOF78V,B1ADOF78V,B1ADOF78V,B1ADOF78V,B1ADOF78V,B1ADOF78V,B1ADOF78V,B1ADOF78V, &
+ B1ADOF79V,B1ADOF79V,B1ADOF79V,B1ADOF79V,B1ADOF79V,B1ADOF79V,B1ADOF79V,B1ADOF79V,B1ADOF79V, &
+ B1ADOF80V,B1ADOF80V,B1ADOF80V,B1ADOF80V,B1ADOF80V,B1ADOF80V,B1ADOF80V,B1ADOF80V,B1ADOF80V, &
+ B1ADOF81V,B1ADOF81V,B1ADOF81V,B1ADOF81V,B1ADOF81V,B1ADOF81V,B1ADOF81V,B1ADOF81V,B1ADOF81V, &
+ B1ADOF82V,B1ADOF82V,B1ADOF82V,B1ADOF82V,B1ADOF82V,B1ADOF82V,B1ADOF82V,B1ADOF82V,B1ADOF82V, &
+ B1ADOF83V,B1ADOF83V,B1ADOF83V,B1ADOF83V,B1ADOF83V,B1ADOF83V,B1ADOF83V,B1ADOF83V,B1ADOF83V, &
+ B1ADOF84V,B1ADOF84V,B1ADOF84V,B1ADOF84V,B1ADOF84V,B1ADOF84V,B1ADOF84V,B1ADOF84V,B1ADOF84V, &
+ B1ADOF85V,B1ADOF85V,B1ADOF85V,B1ADOF85V,B1ADOF85V,B1ADOF85V,B1ADOF85V,B1ADOF85V,B1ADOF85V, &
+ B1ADOF86V,B1ADOF86V,B1ADOF86V,B1ADOF86V,B1ADOF86V,B1ADOF86V,B1ADOF86V,B1ADOF86V,B1ADOF86V, &
+ B1ADOF87V,B1ADOF87V,B1ADOF87V,B1ADOF87V,B1ADOF87V,B1ADOF87V,B1ADOF87V,B1ADOF87V,B1ADOF87V, &
+ B1ADOF88V,B1ADOF88V,B1ADOF88V,B1ADOF88V,B1ADOF88V,B1ADOF88V,B1ADOF88V,B1ADOF88V,B1ADOF88V, &
+ B1ADOF89V,B1ADOF89V,B1ADOF89V,B1ADOF89V,B1ADOF89V,B1ADOF89V,B1ADOF89V,B1ADOF89V,B1ADOF89V, &
+ B1ADOF90V,B1ADOF90V,B1ADOF90V,B1ADOF90V,B1ADOF90V,B1ADOF90V,B1ADOF90V,B1ADOF90V,B1ADOF90V, &
+ B1ADOF91V,B1ADOF91V,B1ADOF91V,B1ADOF91V,B1ADOF91V,B1ADOF91V,B1ADOF91V,B1ADOF91V,B1ADOF91V, &
+ B1ADOF92V,B1ADOF92V,B1ADOF92V,B1ADOF92V,B1ADOF92V,B1ADOF92V,B1ADOF92V,B1ADOF92V,B1ADOF92V, &
+ B1ADOF93V,B1ADOF93V,B1ADOF93V,B1ADOF93V,B1ADOF93V,B1ADOF93V,B1ADOF93V,B1ADOF93V,B1ADOF93V, &
+ B1ADOF94V,B1ADOF94V,B1ADOF94V,B1ADOF94V,B1ADOF94V,B1ADOF94V,B1ADOF94V,B1ADOF94V,B1ADOF94V, &
+ B1ADOF95V,B1ADOF95V,B1ADOF95V,B1ADOF95V,B1ADOF95V,B1ADOF95V,B1ADOF95V,B1ADOF95V,B1ADOF95V, &
+ B1ADOF96V,B1ADOF96V,B1ADOF96V,B1ADOF96V,B1ADOF96V,B1ADOF96V,B1ADOF96V,B1ADOF96V,B1ADOF96V, &
+ B1ADOF97V,B1ADOF97V,B1ADOF97V,B1ADOF97V,B1ADOF97V,B1ADOF97V,B1ADOF97V,B1ADOF97V,B1ADOF97V, &
+ B1ADOF98V,B1ADOF98V,B1ADOF98V,B1ADOF98V,B1ADOF98V,B1ADOF98V,B1ADOF98V,B1ADOF98V,B1ADOF98V, &
+ B1ADOF99V,B1ADOF99V,B1ADOF99V,B1ADOF99V,B1ADOF99V,B1ADOF99V,B1ADOF99V,B1ADOF99V,B1ADOF99V/), &
+ (/9,99/)))
+
+ INTEGER, PARAMETER :: ADOFAcc(99,9) = transpose(reshape((/B1ADOF1A,B1ADOF1A,B1ADOF1A,B1ADOF1A,B1ADOF1A,B1ADOF1A,B1ADOF1A,B1ADOF1A,B1ADOF1A, &
+ B1ADOF2A,B1ADOF2A,B1ADOF2A,B1ADOF2A,B1ADOF2A,B1ADOF2A,B1ADOF2A,B1ADOF2A,B1ADOF2A, &
+ B1ADOF3A,B1ADOF3A,B1ADOF3A,B1ADOF3A,B1ADOF3A,B1ADOF3A,B1ADOF3A,B1ADOF3A,B1ADOF3A, &
+ B1ADOF4A,B1ADOF4A,B1ADOF4A,B1ADOF4A,B1ADOF4A,B1ADOF4A,B1ADOF4A,B1ADOF4A,B1ADOF4A, &
+ B1ADOF5A,B1ADOF5A,B1ADOF5A,B1ADOF5A,B1ADOF5A,B1ADOF5A,B1ADOF5A,B1ADOF5A,B1ADOF5A, &
+ B1ADOF6A,B1ADOF6A,B1ADOF6A,B1ADOF6A,B1ADOF6A,B1ADOF6A,B1ADOF6A,B1ADOF6A,B1ADOF6A, &
+ B1ADOF7A,B1ADOF7A,B1ADOF7A,B1ADOF7A,B1ADOF7A,B1ADOF7A,B1ADOF7A,B1ADOF7A,B1ADOF7A, &
+ B1ADOF8A,B1ADOF8A,B1ADOF8A,B1ADOF8A,B1ADOF8A,B1ADOF8A,B1ADOF8A,B1ADOF8A,B1ADOF8A, &
+ B1ADOF9A,B1ADOF9A,B1ADOF9A,B1ADOF9A,B1ADOF9A,B1ADOF9A,B1ADOF9A,B1ADOF9A,B1ADOF9A, &
+ B1ADOF10A,B1ADOF10A,B1ADOF10A,B1ADOF10A,B1ADOF10A,B1ADOF10A,B1ADOF10A,B1ADOF10A,B1ADOF10A, &
+ B1ADOF11A,B1ADOF11A,B1ADOF11A,B1ADOF11A,B1ADOF11A,B1ADOF11A,B1ADOF11A,B1ADOF11A,B1ADOF11A, &
+ B1ADOF12A,B1ADOF12A,B1ADOF12A,B1ADOF12A,B1ADOF12A,B1ADOF12A,B1ADOF12A,B1ADOF12A,B1ADOF12A, &
+ B1ADOF13A,B1ADOF13A,B1ADOF13A,B1ADOF13A,B1ADOF13A,B1ADOF13A,B1ADOF13A,B1ADOF13A,B1ADOF13A, &
+ B1ADOF14A,B1ADOF14A,B1ADOF14A,B1ADOF14A,B1ADOF14A,B1ADOF14A,B1ADOF14A,B1ADOF14A,B1ADOF14A, &
+ B1ADOF15A,B1ADOF15A,B1ADOF15A,B1ADOF15A,B1ADOF15A,B1ADOF15A,B1ADOF15A,B1ADOF15A,B1ADOF15A, &
+ B1ADOF16A,B1ADOF16A,B1ADOF16A,B1ADOF16A,B1ADOF16A,B1ADOF16A,B1ADOF16A,B1ADOF16A,B1ADOF16A, &
+ B1ADOF17A,B1ADOF17A,B1ADOF17A,B1ADOF17A,B1ADOF17A,B1ADOF17A,B1ADOF17A,B1ADOF17A,B1ADOF17A, &
+ B1ADOF18A,B1ADOF18A,B1ADOF18A,B1ADOF18A,B1ADOF18A,B1ADOF18A,B1ADOF18A,B1ADOF18A,B1ADOF18A, &
+ B1ADOF19A,B1ADOF19A,B1ADOF19A,B1ADOF19A,B1ADOF19A,B1ADOF19A,B1ADOF19A,B1ADOF19A,B1ADOF19A, &
+ B1ADOF20A,B1ADOF20A,B1ADOF20A,B1ADOF20A,B1ADOF20A,B1ADOF20A,B1ADOF20A,B1ADOF20A,B1ADOF20A, &
+ B1ADOF21A,B1ADOF21A,B1ADOF21A,B1ADOF21A,B1ADOF21A,B1ADOF21A,B1ADOF21A,B1ADOF21A,B1ADOF21A, &
+ B1ADOF22A,B1ADOF22A,B1ADOF22A,B1ADOF22A,B1ADOF22A,B1ADOF22A,B1ADOF22A,B1ADOF22A,B1ADOF22A, &
+ B1ADOF23A,B1ADOF23A,B1ADOF23A,B1ADOF23A,B1ADOF23A,B1ADOF23A,B1ADOF23A,B1ADOF23A,B1ADOF23A, &
+ B1ADOF24A,B1ADOF24A,B1ADOF24A,B1ADOF24A,B1ADOF24A,B1ADOF24A,B1ADOF24A,B1ADOF24A,B1ADOF24A, &
+ B1ADOF25A,B1ADOF25A,B1ADOF25A,B1ADOF25A,B1ADOF25A,B1ADOF25A,B1ADOF25A,B1ADOF25A,B1ADOF25A, &
+ B1ADOF26A,B1ADOF26A,B1ADOF26A,B1ADOF26A,B1ADOF26A,B1ADOF26A,B1ADOF26A,B1ADOF26A,B1ADOF26A, &
+ B1ADOF27A,B1ADOF27A,B1ADOF27A,B1ADOF27A,B1ADOF27A,B1ADOF27A,B1ADOF27A,B1ADOF27A,B1ADOF27A, &
+ B1ADOF28A,B1ADOF28A,B1ADOF28A,B1ADOF28A,B1ADOF28A,B1ADOF28A,B1ADOF28A,B1ADOF28A,B1ADOF28A, &
+ B1ADOF29A,B1ADOF29A,B1ADOF29A,B1ADOF29A,B1ADOF29A,B1ADOF29A,B1ADOF29A,B1ADOF29A,B1ADOF29A, &
+ B1ADOF30A,B1ADOF30A,B1ADOF30A,B1ADOF30A,B1ADOF30A,B1ADOF30A,B1ADOF30A,B1ADOF30A,B1ADOF30A, &
+ B1ADOF31A,B1ADOF31A,B1ADOF31A,B1ADOF31A,B1ADOF31A,B1ADOF31A,B1ADOF31A,B1ADOF31A,B1ADOF31A, &
+ B1ADOF32A,B1ADOF32A,B1ADOF32A,B1ADOF32A,B1ADOF32A,B1ADOF32A,B1ADOF32A,B1ADOF32A,B1ADOF32A, &
+ B1ADOF33A,B1ADOF33A,B1ADOF33A,B1ADOF33A,B1ADOF33A,B1ADOF33A,B1ADOF33A,B1ADOF33A,B1ADOF33A, &
+ B1ADOF34A,B1ADOF34A,B1ADOF34A,B1ADOF34A,B1ADOF34A,B1ADOF34A,B1ADOF34A,B1ADOF34A,B1ADOF34A, &
+ B1ADOF35A,B1ADOF35A,B1ADOF35A,B1ADOF35A,B1ADOF35A,B1ADOF35A,B1ADOF35A,B1ADOF35A,B1ADOF35A, &
+ B1ADOF36A,B1ADOF36A,B1ADOF36A,B1ADOF36A,B1ADOF36A,B1ADOF36A,B1ADOF36A,B1ADOF36A,B1ADOF36A, &
+ B1ADOF37A,B1ADOF37A,B1ADOF37A,B1ADOF37A,B1ADOF37A,B1ADOF37A,B1ADOF37A,B1ADOF37A,B1ADOF37A, &
+ B1ADOF38A,B1ADOF38A,B1ADOF38A,B1ADOF38A,B1ADOF38A,B1ADOF38A,B1ADOF38A,B1ADOF38A,B1ADOF38A, &
+ B1ADOF39A,B1ADOF39A,B1ADOF39A,B1ADOF39A,B1ADOF39A,B1ADOF39A,B1ADOF39A,B1ADOF39A,B1ADOF39A, &
+ B1ADOF40A,B1ADOF40A,B1ADOF40A,B1ADOF40A,B1ADOF40A,B1ADOF40A,B1ADOF40A,B1ADOF40A,B1ADOF40A, &
+ B1ADOF41A,B1ADOF41A,B1ADOF41A,B1ADOF41A,B1ADOF41A,B1ADOF41A,B1ADOF41A,B1ADOF41A,B1ADOF41A, &
+ B1ADOF42A,B1ADOF42A,B1ADOF42A,B1ADOF42A,B1ADOF42A,B1ADOF42A,B1ADOF42A,B1ADOF42A,B1ADOF42A, &
+ B1ADOF43A,B1ADOF43A,B1ADOF43A,B1ADOF43A,B1ADOF43A,B1ADOF43A,B1ADOF43A,B1ADOF43A,B1ADOF43A, &
+ B1ADOF44A,B1ADOF44A,B1ADOF44A,B1ADOF44A,B1ADOF44A,B1ADOF44A,B1ADOF44A,B1ADOF44A,B1ADOF44A, &
+ B1ADOF45A,B1ADOF45A,B1ADOF45A,B1ADOF45A,B1ADOF45A,B1ADOF45A,B1ADOF45A,B1ADOF45A,B1ADOF45A, &
+ B1ADOF46A,B1ADOF46A,B1ADOF46A,B1ADOF46A,B1ADOF46A,B1ADOF46A,B1ADOF46A,B1ADOF46A,B1ADOF46A, &
+ B1ADOF47A,B1ADOF47A,B1ADOF47A,B1ADOF47A,B1ADOF47A,B1ADOF47A,B1ADOF47A,B1ADOF47A,B1ADOF47A, &
+ B1ADOF48A,B1ADOF48A,B1ADOF48A,B1ADOF48A,B1ADOF48A,B1ADOF48A,B1ADOF48A,B1ADOF48A,B1ADOF48A, &
+ B1ADOF49A,B1ADOF49A,B1ADOF49A,B1ADOF49A,B1ADOF49A,B1ADOF49A,B1ADOF49A,B1ADOF49A,B1ADOF49A, &
+ B1ADOF50A,B1ADOF50A,B1ADOF50A,B1ADOF50A,B1ADOF50A,B1ADOF50A,B1ADOF50A,B1ADOF50A,B1ADOF50A, &
+ B1ADOF51A,B1ADOF51A,B1ADOF51A,B1ADOF51A,B1ADOF51A,B1ADOF51A,B1ADOF51A,B1ADOF51A,B1ADOF51A, &
+ B1ADOF52A,B1ADOF52A,B1ADOF52A,B1ADOF52A,B1ADOF52A,B1ADOF52A,B1ADOF52A,B1ADOF52A,B1ADOF52A, &
+ B1ADOF53A,B1ADOF53A,B1ADOF53A,B1ADOF53A,B1ADOF53A,B1ADOF53A,B1ADOF53A,B1ADOF53A,B1ADOF53A, &
+ B1ADOF54A,B1ADOF54A,B1ADOF54A,B1ADOF54A,B1ADOF54A,B1ADOF54A,B1ADOF54A,B1ADOF54A,B1ADOF54A, &
+ B1ADOF55A,B1ADOF55A,B1ADOF55A,B1ADOF55A,B1ADOF55A,B1ADOF55A,B1ADOF55A,B1ADOF55A,B1ADOF55A, &
+ B1ADOF56A,B1ADOF56A,B1ADOF56A,B1ADOF56A,B1ADOF56A,B1ADOF56A,B1ADOF56A,B1ADOF56A,B1ADOF56A, &
+ B1ADOF57A,B1ADOF57A,B1ADOF57A,B1ADOF57A,B1ADOF57A,B1ADOF57A,B1ADOF57A,B1ADOF57A,B1ADOF57A, &
+ B1ADOF58A,B1ADOF58A,B1ADOF58A,B1ADOF58A,B1ADOF58A,B1ADOF58A,B1ADOF58A,B1ADOF58A,B1ADOF58A, &
+ B1ADOF59A,B1ADOF59A,B1ADOF59A,B1ADOF59A,B1ADOF59A,B1ADOF59A,B1ADOF59A,B1ADOF59A,B1ADOF59A, &
+ B1ADOF60A,B1ADOF60A,B1ADOF60A,B1ADOF60A,B1ADOF60A,B1ADOF60A,B1ADOF60A,B1ADOF60A,B1ADOF60A, &
+ B1ADOF61A,B1ADOF61A,B1ADOF61A,B1ADOF61A,B1ADOF61A,B1ADOF61A,B1ADOF61A,B1ADOF61A,B1ADOF61A, &
+ B1ADOF62A,B1ADOF62A,B1ADOF62A,B1ADOF62A,B1ADOF62A,B1ADOF62A,B1ADOF62A,B1ADOF62A,B1ADOF62A, &
+ B1ADOF63A,B1ADOF63A,B1ADOF63A,B1ADOF63A,B1ADOF63A,B1ADOF63A,B1ADOF63A,B1ADOF63A,B1ADOF63A, &
+ B1ADOF64A,B1ADOF64A,B1ADOF64A,B1ADOF64A,B1ADOF64A,B1ADOF64A,B1ADOF64A,B1ADOF64A,B1ADOF64A, &
+ B1ADOF65A,B1ADOF65A,B1ADOF65A,B1ADOF65A,B1ADOF65A,B1ADOF65A,B1ADOF65A,B1ADOF65A,B1ADOF65A, &
+ B1ADOF66A,B1ADOF66A,B1ADOF66A,B1ADOF66A,B1ADOF66A,B1ADOF66A,B1ADOF66A,B1ADOF66A,B1ADOF66A, &
+ B1ADOF67A,B1ADOF67A,B1ADOF67A,B1ADOF67A,B1ADOF67A,B1ADOF67A,B1ADOF67A,B1ADOF67A,B1ADOF67A, &
+ B1ADOF68A,B1ADOF68A,B1ADOF68A,B1ADOF68A,B1ADOF68A,B1ADOF68A,B1ADOF68A,B1ADOF68A,B1ADOF68A, &
+ B1ADOF69A,B1ADOF69A,B1ADOF69A,B1ADOF69A,B1ADOF69A,B1ADOF69A,B1ADOF69A,B1ADOF69A,B1ADOF69A, &
+ B1ADOF70A,B1ADOF70A,B1ADOF70A,B1ADOF70A,B1ADOF70A,B1ADOF70A,B1ADOF70A,B1ADOF70A,B1ADOF70A, &
+ B1ADOF71A,B1ADOF71A,B1ADOF71A,B1ADOF71A,B1ADOF71A,B1ADOF71A,B1ADOF71A,B1ADOF71A,B1ADOF71A, &
+ B1ADOF72A,B1ADOF72A,B1ADOF72A,B1ADOF72A,B1ADOF72A,B1ADOF72A,B1ADOF72A,B1ADOF72A,B1ADOF72A, &
+ B1ADOF73A,B1ADOF73A,B1ADOF73A,B1ADOF73A,B1ADOF73A,B1ADOF73A,B1ADOF73A,B1ADOF73A,B1ADOF73A, &
+ B1ADOF74A,B1ADOF74A,B1ADOF74A,B1ADOF74A,B1ADOF74A,B1ADOF74A,B1ADOF74A,B1ADOF74A,B1ADOF74A, &
+ B1ADOF75A,B1ADOF75A,B1ADOF75A,B1ADOF75A,B1ADOF75A,B1ADOF75A,B1ADOF75A,B1ADOF75A,B1ADOF75A, &
+ B1ADOF76A,B1ADOF76A,B1ADOF76A,B1ADOF76A,B1ADOF76A,B1ADOF76A,B1ADOF76A,B1ADOF76A,B1ADOF76A, &
+ B1ADOF77A,B1ADOF77A,B1ADOF77A,B1ADOF77A,B1ADOF77A,B1ADOF77A,B1ADOF77A,B1ADOF77A,B1ADOF77A, &
+ B1ADOF78A,B1ADOF78A,B1ADOF78A,B1ADOF78A,B1ADOF78A,B1ADOF78A,B1ADOF78A,B1ADOF78A,B1ADOF78A, &
+ B1ADOF79A,B1ADOF79A,B1ADOF79A,B1ADOF79A,B1ADOF79A,B1ADOF79A,B1ADOF79A,B1ADOF79A,B1ADOF79A, &
+ B1ADOF80A,B1ADOF80A,B1ADOF80A,B1ADOF80A,B1ADOF80A,B1ADOF80A,B1ADOF80A,B1ADOF80A,B1ADOF80A, &
+ B1ADOF81A,B1ADOF81A,B1ADOF81A,B1ADOF81A,B1ADOF81A,B1ADOF81A,B1ADOF81A,B1ADOF81A,B1ADOF81A, &
+ B1ADOF82A,B1ADOF82A,B1ADOF82A,B1ADOF82A,B1ADOF82A,B1ADOF82A,B1ADOF82A,B1ADOF82A,B1ADOF82A, &
+ B1ADOF83A,B1ADOF83A,B1ADOF83A,B1ADOF83A,B1ADOF83A,B1ADOF83A,B1ADOF83A,B1ADOF83A,B1ADOF83A, &
+ B1ADOF84A,B1ADOF84A,B1ADOF84A,B1ADOF84A,B1ADOF84A,B1ADOF84A,B1ADOF84A,B1ADOF84A,B1ADOF84A, &
+ B1ADOF85A,B1ADOF85A,B1ADOF85A,B1ADOF85A,B1ADOF85A,B1ADOF85A,B1ADOF85A,B1ADOF85A,B1ADOF85A, &
+ B1ADOF86A,B1ADOF86A,B1ADOF86A,B1ADOF86A,B1ADOF86A,B1ADOF86A,B1ADOF86A,B1ADOF86A,B1ADOF86A, &
+ B1ADOF87A,B1ADOF87A,B1ADOF87A,B1ADOF87A,B1ADOF87A,B1ADOF87A,B1ADOF87A,B1ADOF87A,B1ADOF87A, &
+ B1ADOF88A,B1ADOF88A,B1ADOF88A,B1ADOF88A,B1ADOF88A,B1ADOF88A,B1ADOF88A,B1ADOF88A,B1ADOF88A, &
+ B1ADOF89A,B1ADOF89A,B1ADOF89A,B1ADOF89A,B1ADOF89A,B1ADOF89A,B1ADOF89A,B1ADOF89A,B1ADOF89A, &
+ B1ADOF90A,B1ADOF90A,B1ADOF90A,B1ADOF90A,B1ADOF90A,B1ADOF90A,B1ADOF90A,B1ADOF90A,B1ADOF90A, &
+ B1ADOF91A,B1ADOF91A,B1ADOF91A,B1ADOF91A,B1ADOF91A,B1ADOF91A,B1ADOF91A,B1ADOF91A,B1ADOF91A, &
+ B1ADOF92A,B1ADOF92A,B1ADOF92A,B1ADOF92A,B1ADOF92A,B1ADOF92A,B1ADOF92A,B1ADOF92A,B1ADOF92A, &
+ B1ADOF93A,B1ADOF93A,B1ADOF93A,B1ADOF93A,B1ADOF93A,B1ADOF93A,B1ADOF93A,B1ADOF93A,B1ADOF93A, &
+ B1ADOF94A,B1ADOF94A,B1ADOF94A,B1ADOF94A,B1ADOF94A,B1ADOF94A,B1ADOF94A,B1ADOF94A,B1ADOF94A, &
+ B1ADOF95A,B1ADOF95A,B1ADOF95A,B1ADOF95A,B1ADOF95A,B1ADOF95A,B1ADOF95A,B1ADOF95A,B1ADOF95A, &
+ B1ADOF96A,B1ADOF96A,B1ADOF96A,B1ADOF96A,B1ADOF96A,B1ADOF96A,B1ADOF96A,B1ADOF96A,B1ADOF96A, &
+ B1ADOF97A,B1ADOF97A,B1ADOF97A,B1ADOF97A,B1ADOF97A,B1ADOF97A,B1ADOF97A,B1ADOF97A,B1ADOF97A, &
+ B1ADOF98A,B1ADOF98A,B1ADOF98A,B1ADOF98A,B1ADOF98A,B1ADOF98A,B1ADOF98A,B1ADOF98A,B1ADOF98A, &
+ B1ADOF99A,B1ADOF99A,B1ADOF99A,B1ADOF99A,B1ADOF99A,B1ADOF99A,B1ADOF99A,B1ADOF99A,B1ADOF99A/), &
+ (/9,99/)))
+
+ CHARACTER(OutStrLenM1), PARAMETER :: ValidParamAry1(1687) = (/ & ! This lists the names of the allowed parameters, which must be sorted alphabetically
+ "B1ADDFXI ","B1ADDFYI ","B1ADDFZI ","B1ADDMXI ","B1ADDMYI ","B1ADDMZI ","B1ADOF10A ", &
+ "B1ADOF10ADD","B1ADOF10D ","B1ADOF10HDS","B1ADOF10RDT","B1ADOF10V ","B1ADOF10WVS","B1ADOF11A ", &
+ "B1ADOF11ADD","B1ADOF11D ","B1ADOF11HDS","B1ADOF11RDT","B1ADOF11V ","B1ADOF11WVS","B1ADOF12A ", &
+ "B1ADOF12ADD","B1ADOF12D ","B1ADOF12HDS","B1ADOF12RDT","B1ADOF12V ","B1ADOF12WVS","B1ADOF13A ", &
+ "B1ADOF13ADD","B1ADOF13D ","B1ADOF13HDS","B1ADOF13RDT","B1ADOF13V ","B1ADOF13WVS","B1ADOF14A ", &
+ "B1ADOF14ADD","B1ADOF14D ","B1ADOF14HDS","B1ADOF14RDT","B1ADOF14V ","B1ADOF14WVS","B1ADOF15A ", &
+ "B1ADOF15ADD","B1ADOF15D ","B1ADOF15HDS","B1ADOF15RDT","B1ADOF15V ","B1ADOF15WVS","B1ADOF16A ", &
+ "B1ADOF16ADD","B1ADOF16D ","B1ADOF16HDS","B1ADOF16RDT","B1ADOF16V ","B1ADOF16WVS","B1ADOF17A ", &
+ "B1ADOF17ADD","B1ADOF17D ","B1ADOF17HDS","B1ADOF17RDT","B1ADOF17V ","B1ADOF17WVS","B1ADOF18A ", &
+ "B1ADOF18ADD","B1ADOF18D ","B1ADOF18HDS","B1ADOF18RDT","B1ADOF18V ","B1ADOF18WVS","B1ADOF19A ", &
+ "B1ADOF19ADD","B1ADOF19D ","B1ADOF19HDS","B1ADOF19RDT","B1ADOF19V ","B1ADOF19WVS","B1ADOF1A ", &
+ "B1ADOF1ADD ","B1ADOF1D ","B1ADOF1HDS ","B1ADOF1RDT ","B1ADOF1V ","B1ADOF1WVS ","B1ADOF20A ", &
+ "B1ADOF20ADD","B1ADOF20D ","B1ADOF20HDS","B1ADOF20RDT","B1ADOF20V ","B1ADOF20WVS","B1ADOF21A ", &
+ "B1ADOF21ADD","B1ADOF21D ","B1ADOF21HDS","B1ADOF21RDT","B1ADOF21V ","B1ADOF21WVS","B1ADOF22A ", &
+ "B1ADOF22ADD","B1ADOF22D ","B1ADOF22HDS","B1ADOF22RDT","B1ADOF22V ","B1ADOF22WVS","B1ADOF23A ", &
+ "B1ADOF23ADD","B1ADOF23D ","B1ADOF23HDS","B1ADOF23RDT","B1ADOF23V ","B1ADOF23WVS","B1ADOF24A ", &
+ "B1ADOF24ADD","B1ADOF24D ","B1ADOF24HDS","B1ADOF24RDT","B1ADOF24V ","B1ADOF24WVS","B1ADOF25A ", &
+ "B1ADOF25ADD","B1ADOF25D ","B1ADOF25HDS","B1ADOF25RDT","B1ADOF25V ","B1ADOF25WVS","B1ADOF26A ", &
+ "B1ADOF26ADD","B1ADOF26D ","B1ADOF26HDS","B1ADOF26RDT","B1ADOF26V ","B1ADOF26WVS","B1ADOF27A ", &
+ "B1ADOF27ADD","B1ADOF27D ","B1ADOF27HDS","B1ADOF27RDT","B1ADOF27V ","B1ADOF27WVS","B1ADOF28A ", &
+ "B1ADOF28ADD","B1ADOF28D ","B1ADOF28HDS","B1ADOF28RDT","B1ADOF28V ","B1ADOF28WVS","B1ADOF29A ", &
+ "B1ADOF29ADD","B1ADOF29D ","B1ADOF29HDS","B1ADOF29RDT","B1ADOF29V ","B1ADOF29WVS","B1ADOF2A ", &
+ "B1ADOF2ADD ","B1ADOF2D ","B1ADOF2HDS ","B1ADOF2RDT ","B1ADOF2V ","B1ADOF2WVS ","B1ADOF30A ", &
+ "B1ADOF30ADD","B1ADOF30D ","B1ADOF30HDS","B1ADOF30RDT","B1ADOF30V ","B1ADOF30WVS","B1ADOF31A ", &
+ "B1ADOF31ADD","B1ADOF31D ","B1ADOF31HDS","B1ADOF31RDT","B1ADOF31V ","B1ADOF31WVS","B1ADOF32A ", &
+ "B1ADOF32ADD","B1ADOF32D ","B1ADOF32HDS","B1ADOF32RDT","B1ADOF32V ","B1ADOF32WVS","B1ADOF33A ", &
+ "B1ADOF33ADD","B1ADOF33D ","B1ADOF33HDS","B1ADOF33RDT","B1ADOF33V ","B1ADOF33WVS","B1ADOF34A ", &
+ "B1ADOF34ADD","B1ADOF34D ","B1ADOF34HDS","B1ADOF34RDT","B1ADOF34V ","B1ADOF34WVS","B1ADOF35A ", &
+ "B1ADOF35ADD","B1ADOF35D ","B1ADOF35HDS","B1ADOF35RDT","B1ADOF35V ","B1ADOF35WVS","B1ADOF36A ", &
+ "B1ADOF36ADD","B1ADOF36D ","B1ADOF36HDS","B1ADOF36RDT","B1ADOF36V ","B1ADOF36WVS","B1ADOF37A ", &
+ "B1ADOF37ADD","B1ADOF37D ","B1ADOF37HDS","B1ADOF37RDT","B1ADOF37V ","B1ADOF37WVS","B1ADOF38A ", &
+ "B1ADOF38ADD","B1ADOF38D ","B1ADOF38HDS","B1ADOF38RDT","B1ADOF38V ","B1ADOF38WVS","B1ADOF39A ", &
+ "B1ADOF39ADD","B1ADOF39D ","B1ADOF39HDS","B1ADOF39RDT","B1ADOF39V ","B1ADOF39WVS","B1ADOF3A ", &
+ "B1ADOF3ADD ","B1ADOF3D ","B1ADOF3HDS ","B1ADOF3RDT ","B1ADOF3V ","B1ADOF3WVS ","B1ADOF40A ", &
+ "B1ADOF40ADD","B1ADOF40D ","B1ADOF40HDS","B1ADOF40RDT","B1ADOF40V ","B1ADOF40WVS","B1ADOF41A ", &
+ "B1ADOF41ADD","B1ADOF41D ","B1ADOF41HDS","B1ADOF41RDT","B1ADOF41V ","B1ADOF41WVS","B1ADOF42A ", &
+ "B1ADOF42ADD","B1ADOF42D ","B1ADOF42HDS","B1ADOF42RDT","B1ADOF42V ","B1ADOF42WVS","B1ADOF43A ", &
+ "B1ADOF43ADD","B1ADOF43D ","B1ADOF43HDS","B1ADOF43RDT","B1ADOF43V ","B1ADOF43WVS","B1ADOF44A ", &
+ "B1ADOF44ADD","B1ADOF44D ","B1ADOF44HDS","B1ADOF44RDT","B1ADOF44V ","B1ADOF44WVS","B1ADOF45A ", &
+ "B1ADOF45ADD","B1ADOF45D ","B1ADOF45HDS","B1ADOF45RDT","B1ADOF45V ","B1ADOF45WVS","B1ADOF46A ", &
+ "B1ADOF46ADD","B1ADOF46D ","B1ADOF46HDS","B1ADOF46RDT","B1ADOF46V ","B1ADOF46WVS","B1ADOF47A ", &
+ "B1ADOF47ADD","B1ADOF47D ","B1ADOF47HDS","B1ADOF47RDT","B1ADOF47V ","B1ADOF47WVS","B1ADOF48A ", &
+ "B1ADOF48ADD","B1ADOF48D ","B1ADOF48HDS","B1ADOF48RDT","B1ADOF48V ","B1ADOF48WVS","B1ADOF49A ", &
+ "B1ADOF49ADD","B1ADOF49D ","B1ADOF49HDS","B1ADOF49RDT","B1ADOF49V ","B1ADOF49WVS","B1ADOF4A ", &
+ "B1ADOF4ADD ","B1ADOF4D ","B1ADOF4HDS ","B1ADOF4RDT ","B1ADOF4V ","B1ADOF4WVS ","B1ADOF50A ", &
+ "B1ADOF50ADD","B1ADOF50D ","B1ADOF50HDS","B1ADOF50RDT","B1ADOF50V ","B1ADOF50WVS","B1ADOF51A ", &
+ "B1ADOF51ADD","B1ADOF51D ","B1ADOF51HDS","B1ADOF51RDT","B1ADOF51V ","B1ADOF51WVS","B1ADOF52A ", &
+ "B1ADOF52ADD","B1ADOF52D ","B1ADOF52HDS","B1ADOF52RDT","B1ADOF52V ","B1ADOF52WVS","B1ADOF53A ", &
+ "B1ADOF53ADD","B1ADOF53D ","B1ADOF53HDS","B1ADOF53RDT","B1ADOF53V ","B1ADOF53WVS","B1ADOF54A ", &
+ "B1ADOF54ADD","B1ADOF54D ","B1ADOF54HDS","B1ADOF54RDT","B1ADOF54V ","B1ADOF54WVS","B1ADOF55A ", &
+ "B1ADOF55ADD","B1ADOF55D ","B1ADOF55HDS","B1ADOF55RDT","B1ADOF55V ","B1ADOF55WVS","B1ADOF56A ", &
+ "B1ADOF56ADD","B1ADOF56D ","B1ADOF56HDS","B1ADOF56RDT","B1ADOF56V ","B1ADOF56WVS","B1ADOF57A ", &
+ "B1ADOF57ADD","B1ADOF57D ","B1ADOF57HDS","B1ADOF57RDT","B1ADOF57V ","B1ADOF57WVS","B1ADOF58A ", &
+ "B1ADOF58ADD","B1ADOF58D ","B1ADOF58HDS","B1ADOF58RDT","B1ADOF58V ","B1ADOF58WVS","B1ADOF59A ", &
+ "B1ADOF59ADD","B1ADOF59D ","B1ADOF59HDS","B1ADOF59RDT","B1ADOF59V ","B1ADOF59WVS","B1ADOF5A ", &
+ "B1ADOF5ADD ","B1ADOF5D ","B1ADOF5HDS ","B1ADOF5RDT ","B1ADOF5V ","B1ADOF5WVS ","B1ADOF60A ", &
+ "B1ADOF60ADD","B1ADOF60D ","B1ADOF60HDS","B1ADOF60RDT","B1ADOF60V ","B1ADOF60WVS","B1ADOF61A ", &
+ "B1ADOF61ADD","B1ADOF61D ","B1ADOF61HDS","B1ADOF61RDT","B1ADOF61V ","B1ADOF61WVS","B1ADOF62A ", &
+ "B1ADOF62ADD","B1ADOF62D ","B1ADOF62HDS","B1ADOF62RDT","B1ADOF62V ","B1ADOF62WVS","B1ADOF63A ", &
+ "B1ADOF63ADD","B1ADOF63D ","B1ADOF63HDS","B1ADOF63RDT","B1ADOF63V ","B1ADOF63WVS","B1ADOF64A ", &
+ "B1ADOF64ADD","B1ADOF64D ","B1ADOF64HDS","B1ADOF64RDT","B1ADOF64V ","B1ADOF64WVS","B1ADOF65A ", &
+ "B1ADOF65ADD","B1ADOF65D ","B1ADOF65HDS","B1ADOF65RDT","B1ADOF65V ","B1ADOF65WVS","B1ADOF66A ", &
+ "B1ADOF66ADD","B1ADOF66D ","B1ADOF66HDS","B1ADOF66RDT","B1ADOF66V ","B1ADOF66WVS","B1ADOF67A ", &
+ "B1ADOF67ADD","B1ADOF67D ","B1ADOF67HDS","B1ADOF67RDT","B1ADOF67V ","B1ADOF67WVS","B1ADOF68A ", &
+ "B1ADOF68ADD","B1ADOF68D ","B1ADOF68HDS","B1ADOF68RDT","B1ADOF68V ","B1ADOF68WVS","B1ADOF69A ", &
+ "B1ADOF69ADD","B1ADOF69D ","B1ADOF69HDS","B1ADOF69RDT","B1ADOF69V ","B1ADOF69WVS","B1ADOF6A ", &
+ "B1ADOF6ADD ","B1ADOF6D ","B1ADOF6HDS ","B1ADOF6RDT ","B1ADOF6V ","B1ADOF6WVS ","B1ADOF70A ", &
+ "B1ADOF70ADD","B1ADOF70D ","B1ADOF70HDS","B1ADOF70RDT","B1ADOF70V ","B1ADOF70WVS","B1ADOF71A ", &
+ "B1ADOF71ADD","B1ADOF71D ","B1ADOF71HDS","B1ADOF71RDT","B1ADOF71V ","B1ADOF71WVS","B1ADOF72A ", &
+ "B1ADOF72ADD","B1ADOF72D ","B1ADOF72HDS","B1ADOF72RDT","B1ADOF72V ","B1ADOF72WVS","B1ADOF73A ", &
+ "B1ADOF73ADD","B1ADOF73D ","B1ADOF73HDS","B1ADOF73RDT","B1ADOF73V ","B1ADOF73WVS","B1ADOF74A ", &
+ "B1ADOF74ADD","B1ADOF74D ","B1ADOF74HDS","B1ADOF74RDT","B1ADOF74V ","B1ADOF74WVS","B1ADOF75A ", &
+ "B1ADOF75ADD","B1ADOF75D ","B1ADOF75HDS","B1ADOF75RDT","B1ADOF75V ","B1ADOF75WVS","B1ADOF76A ", &
+ "B1ADOF76ADD","B1ADOF76D ","B1ADOF76HDS","B1ADOF76RDT","B1ADOF76V ","B1ADOF76WVS","B1ADOF77A ", &
+ "B1ADOF77ADD","B1ADOF77D ","B1ADOF77HDS","B1ADOF77RDT","B1ADOF77V ","B1ADOF77WVS","B1ADOF78A ", &
+ "B1ADOF78ADD","B1ADOF78D ","B1ADOF78HDS","B1ADOF78RDT","B1ADOF78V ","B1ADOF78WVS","B1ADOF79A ", &
+ "B1ADOF79ADD","B1ADOF79D ","B1ADOF79HDS","B1ADOF79RDT","B1ADOF79V ","B1ADOF79WVS","B1ADOF7A ", &
+ "B1ADOF7ADD ","B1ADOF7D ","B1ADOF7HDS ","B1ADOF7RDT ","B1ADOF7V ","B1ADOF7WVS ","B1ADOF80A ", &
+ "B1ADOF80ADD","B1ADOF80D ","B1ADOF80HDS","B1ADOF80RDT","B1ADOF80V ","B1ADOF80WVS","B1ADOF81A ", &
+ "B1ADOF81ADD","B1ADOF81D ","B1ADOF81HDS","B1ADOF81RDT","B1ADOF81V ","B1ADOF81WVS","B1ADOF82A ", &
+ "B1ADOF82ADD","B1ADOF82D ","B1ADOF82HDS","B1ADOF82RDT","B1ADOF82V ","B1ADOF82WVS","B1ADOF83A ", &
+ "B1ADOF83ADD","B1ADOF83D ","B1ADOF83HDS","B1ADOF83RDT","B1ADOF83V ","B1ADOF83WVS","B1ADOF84A ", &
+ "B1ADOF84ADD","B1ADOF84D ","B1ADOF84HDS","B1ADOF84RDT","B1ADOF84V ","B1ADOF84WVS","B1ADOF85A ", &
+ "B1ADOF85ADD","B1ADOF85D ","B1ADOF85HDS","B1ADOF85RDT","B1ADOF85V ","B1ADOF85WVS","B1ADOF86A ", &
+ "B1ADOF86ADD","B1ADOF86D ","B1ADOF86HDS","B1ADOF86RDT","B1ADOF86V ","B1ADOF86WVS","B1ADOF87A ", &
+ "B1ADOF87ADD","B1ADOF87D ","B1ADOF87HDS","B1ADOF87RDT","B1ADOF87V ","B1ADOF87WVS","B1ADOF88A ", &
+ "B1ADOF88ADD","B1ADOF88D ","B1ADOF88HDS","B1ADOF88RDT","B1ADOF88V ","B1ADOF88WVS","B1ADOF89A ", &
+ "B1ADOF89ADD","B1ADOF89D ","B1ADOF89HDS","B1ADOF89RDT","B1ADOF89V ","B1ADOF89WVS","B1ADOF8A ", &
+ "B1ADOF8ADD ","B1ADOF8D ","B1ADOF8HDS ","B1ADOF8RDT ","B1ADOF8V ","B1ADOF8WVS ","B1ADOF90A ", &
+ "B1ADOF90ADD","B1ADOF90D ","B1ADOF90HDS","B1ADOF90RDT","B1ADOF90V ","B1ADOF90WVS","B1ADOF91A ", &
+ "B1ADOF91ADD","B1ADOF91D ","B1ADOF91HDS","B1ADOF91RDT","B1ADOF91V ","B1ADOF91WVS","B1ADOF92A ", &
+ "B1ADOF92ADD","B1ADOF92D ","B1ADOF92HDS","B1ADOF92RDT","B1ADOF92V ","B1ADOF92WVS","B1ADOF93A ", &
+ "B1ADOF93ADD","B1ADOF93D ","B1ADOF93HDS","B1ADOF93RDT","B1ADOF93V ","B1ADOF93WVS","B1ADOF94A ", &
+ "B1ADOF94ADD","B1ADOF94D ","B1ADOF94HDS","B1ADOF94RDT","B1ADOF94V ","B1ADOF94WVS","B1ADOF95A ", &
+ "B1ADOF95ADD","B1ADOF95D ","B1ADOF95HDS","B1ADOF95RDT","B1ADOF95V ","B1ADOF95WVS","B1ADOF96A ", &
+ "B1ADOF96ADD","B1ADOF96D ","B1ADOF96HDS","B1ADOF96RDT","B1ADOF96V ","B1ADOF96WVS","B1ADOF97A ", &
+ "B1ADOF97ADD","B1ADOF97D ","B1ADOF97HDS","B1ADOF97RDT","B1ADOF97V ","B1ADOF97WVS","B1ADOF98A ", &
+ "B1ADOF98ADD","B1ADOF98D ","B1ADOF98HDS","B1ADOF98RDT","B1ADOF98V ","B1ADOF98WVS","B1ADOF99A ", &
+ "B1ADOF99ADD","B1ADOF99D ","B1ADOF99HDS","B1ADOF99RDT","B1ADOF99V ","B1ADOF99WVS","B1ADOF9A ", &
+ "B1ADOF9ADD ","B1ADOF9D ","B1ADOF9HDS ","B1ADOF9RDT ","B1ADOF9V ","B1ADOF9WVS ","B1HDSFXI ", &
+ "B1HDSFYI ","B1HDSFZI ","B1HDSMXI ","B1HDSMYI ","B1HDSMZI ","B1HEAVE ","B1PITCH ", &
+ "B1RAXI ","B1RAYI ","B1RAZI ","B1RDTFXI ","B1RDTFYI ","B1RDTFZI ","B1RDTMXI ", &
+ "B1RDTMYI ","B1RDTMZI ","B1ROLL ","B1RVXI ","B1RVYI ","B1RVZI ","B1SURGE ", &
+ "B1SWAY ","B1TAXI ","B1TAYI ","B1TAZI ","B1TVXI ","B1TVYI ","B1TVZI ", &
+ "B1WVSF1XI ","B1WVSF1YI ","B1WVSF1ZI ","B1WVSF2XI ","B1WVSF2YI ","B1WVSF2ZI ","B1WVSFXI ", &
+ "B1WVSFYI ","B1WVSFZI ","B1WVSM1XI ","B1WVSM1YI ","B1WVSM1ZI ","B1WVSM2XI ","B1WVSM2YI ", &
+ "B1WVSM2ZI ","B1WVSMXI ","B1WVSMYI ","B1WVSMZI ","B1YAW ","B2ADDFXI ","B2ADDFYI ", &
+ "B2ADDFZI ","B2ADDMXI ","B2ADDMYI ","B2ADDMZI ","B2ADOF10A ","B2ADOF10ADD","B2ADOF10D ", &
+ "B2ADOF10HDS","B2ADOF10RDT","B2ADOF10V ","B2ADOF10WVS","B2ADOF11A ","B2ADOF11ADD","B2ADOF11D ", &
+ "B2ADOF11HDS","B2ADOF11RDT","B2ADOF11V ","B2ADOF11WVS","B2ADOF12A ","B2ADOF12ADD","B2ADOF12D ", &
+ "B2ADOF12HDS","B2ADOF12RDT","B2ADOF12V ","B2ADOF12WVS","B2ADOF13A ","B2ADOF13ADD","B2ADOF13D ", &
+ "B2ADOF13HDS","B2ADOF13RDT","B2ADOF13V ","B2ADOF13WVS","B2ADOF14A ","B2ADOF14ADD","B2ADOF14D ", &
+ "B2ADOF14HDS","B2ADOF14RDT","B2ADOF14V ","B2ADOF14WVS","B2ADOF15A ","B2ADOF15ADD","B2ADOF15D ", &
+ "B2ADOF15HDS","B2ADOF15RDT","B2ADOF15V ","B2ADOF15WVS","B2ADOF16A ","B2ADOF16ADD","B2ADOF16D ", &
+ "B2ADOF16HDS","B2ADOF16RDT","B2ADOF16V ","B2ADOF16WVS","B2ADOF17A ","B2ADOF17ADD","B2ADOF17D ", &
+ "B2ADOF17HDS","B2ADOF17RDT","B2ADOF17V ","B2ADOF17WVS","B2ADOF18A ","B2ADOF18ADD","B2ADOF18D ", &
+ "B2ADOF18HDS","B2ADOF18RDT","B2ADOF18V ","B2ADOF18WVS","B2ADOF19A ","B2ADOF19ADD","B2ADOF19D ", &
+ "B2ADOF19HDS","B2ADOF19RDT","B2ADOF19V ","B2ADOF19WVS","B2ADOF1A ","B2ADOF1ADD ","B2ADOF1D ", &
+ "B2ADOF1HDS ","B2ADOF1RDT ","B2ADOF1V ","B2ADOF1WVS ","B2ADOF20A ","B2ADOF20ADD","B2ADOF20D ", &
+ "B2ADOF20HDS","B2ADOF20RDT","B2ADOF20V ","B2ADOF20WVS","B2ADOF21A ","B2ADOF21ADD","B2ADOF21D ", &
+ "B2ADOF21HDS","B2ADOF21RDT","B2ADOF21V ","B2ADOF21WVS","B2ADOF22A ","B2ADOF22ADD","B2ADOF22D ", &
+ "B2ADOF22HDS","B2ADOF22RDT","B2ADOF22V ","B2ADOF22WVS","B2ADOF23A ","B2ADOF23ADD","B2ADOF23D ", &
+ "B2ADOF23HDS","B2ADOF23RDT","B2ADOF23V ","B2ADOF23WVS","B2ADOF24A ","B2ADOF24ADD","B2ADOF24D ", &
+ "B2ADOF24HDS","B2ADOF24RDT","B2ADOF24V ","B2ADOF24WVS","B2ADOF25A ","B2ADOF25ADD","B2ADOF25D ", &
+ "B2ADOF25HDS","B2ADOF25RDT","B2ADOF25V ","B2ADOF25WVS","B2ADOF26A ","B2ADOF26ADD","B2ADOF26D ", &
+ "B2ADOF26HDS","B2ADOF26RDT","B2ADOF26V ","B2ADOF26WVS","B2ADOF27A ","B2ADOF27ADD","B2ADOF27D ", &
+ "B2ADOF27HDS","B2ADOF27RDT","B2ADOF27V ","B2ADOF27WVS","B2ADOF28A ","B2ADOF28ADD","B2ADOF28D ", &
+ "B2ADOF28HDS","B2ADOF28RDT","B2ADOF28V ","B2ADOF28WVS","B2ADOF29A ","B2ADOF29ADD","B2ADOF29D ", &
+ "B2ADOF29HDS","B2ADOF29RDT","B2ADOF29V ","B2ADOF29WVS","B2ADOF2A ","B2ADOF2ADD ","B2ADOF2D ", &
+ "B2ADOF2HDS ","B2ADOF2RDT ","B2ADOF2V ","B2ADOF2WVS ","B2ADOF30A ","B2ADOF30ADD","B2ADOF30D ", &
+ "B2ADOF30HDS","B2ADOF30RDT","B2ADOF30V ","B2ADOF30WVS","B2ADOF31A ","B2ADOF31ADD","B2ADOF31D ", &
+ "B2ADOF31HDS","B2ADOF31RDT","B2ADOF31V ","B2ADOF31WVS","B2ADOF32A ","B2ADOF32ADD","B2ADOF32D ", &
+ "B2ADOF32HDS","B2ADOF32RDT","B2ADOF32V ","B2ADOF32WVS","B2ADOF33A ","B2ADOF33ADD","B2ADOF33D ", &
+ "B2ADOF33HDS","B2ADOF33RDT","B2ADOF33V ","B2ADOF33WVS","B2ADOF34A ","B2ADOF34ADD","B2ADOF34D ", &
+ "B2ADOF34HDS","B2ADOF34RDT","B2ADOF34V ","B2ADOF34WVS","B2ADOF35A ","B2ADOF35ADD","B2ADOF35D ", &
+ "B2ADOF35HDS","B2ADOF35RDT","B2ADOF35V ","B2ADOF35WVS","B2ADOF36A ","B2ADOF36ADD","B2ADOF36D ", &
+ "B2ADOF36HDS","B2ADOF36RDT","B2ADOF36V ","B2ADOF36WVS","B2ADOF37A ","B2ADOF37ADD","B2ADOF37D ", &
+ "B2ADOF37HDS","B2ADOF37RDT","B2ADOF37V ","B2ADOF37WVS","B2ADOF38A ","B2ADOF38ADD","B2ADOF38D ", &
+ "B2ADOF38HDS","B2ADOF38RDT","B2ADOF38V ","B2ADOF38WVS","B2ADOF39A ","B2ADOF39ADD","B2ADOF39D ", &
+ "B2ADOF39HDS","B2ADOF39RDT","B2ADOF39V ","B2ADOF39WVS","B2ADOF3A ","B2ADOF3ADD ","B2ADOF3D ", &
+ "B2ADOF3HDS ","B2ADOF3RDT ","B2ADOF3V ","B2ADOF3WVS ","B2ADOF40A ","B2ADOF40ADD","B2ADOF40D ", &
+ "B2ADOF40HDS","B2ADOF40RDT","B2ADOF40V ","B2ADOF40WVS","B2ADOF41A ","B2ADOF41ADD","B2ADOF41D ", &
+ "B2ADOF41HDS","B2ADOF41RDT","B2ADOF41V ","B2ADOF41WVS","B2ADOF42A ","B2ADOF42ADD","B2ADOF42D ", &
+ "B2ADOF42HDS","B2ADOF42RDT","B2ADOF42V ","B2ADOF42WVS","B2ADOF43A ","B2ADOF43ADD","B2ADOF43D ", &
+ "B2ADOF43HDS","B2ADOF43RDT","B2ADOF43V ","B2ADOF43WVS","B2ADOF44A ","B2ADOF44ADD","B2ADOF44D ", &
+ "B2ADOF44HDS","B2ADOF44RDT","B2ADOF44V ","B2ADOF44WVS","B2ADOF45A ","B2ADOF45ADD","B2ADOF45D ", &
+ "B2ADOF45HDS","B2ADOF45RDT","B2ADOF45V ","B2ADOF45WVS","B2ADOF46A ","B2ADOF46ADD","B2ADOF46D ", &
+ "B2ADOF46HDS","B2ADOF46RDT","B2ADOF46V ","B2ADOF46WVS","B2ADOF47A ","B2ADOF47ADD","B2ADOF47D ", &
+ "B2ADOF47HDS","B2ADOF47RDT","B2ADOF47V ","B2ADOF47WVS","B2ADOF48A ","B2ADOF48ADD","B2ADOF48D ", &
+ "B2ADOF48HDS","B2ADOF48RDT","B2ADOF48V ","B2ADOF48WVS","B2ADOF49A ","B2ADOF49ADD","B2ADOF49D ", &
+ "B2ADOF49HDS","B2ADOF49RDT","B2ADOF49V ","B2ADOF49WVS","B2ADOF4A ","B2ADOF4ADD ","B2ADOF4D ", &
+ "B2ADOF4HDS ","B2ADOF4RDT ","B2ADOF4V ","B2ADOF4WVS ","B2ADOF50A ","B2ADOF50ADD","B2ADOF50D ", &
+ "B2ADOF50HDS","B2ADOF50RDT","B2ADOF50V ","B2ADOF50WVS","B2ADOF51A ","B2ADOF51ADD","B2ADOF51D ", &
+ "B2ADOF51HDS","B2ADOF51RDT","B2ADOF51V ","B2ADOF51WVS","B2ADOF52A ","B2ADOF52ADD","B2ADOF52D ", &
+ "B2ADOF52HDS","B2ADOF52RDT","B2ADOF52V ","B2ADOF52WVS","B2ADOF53A ","B2ADOF53ADD","B2ADOF53D ", &
+ "B2ADOF53HDS","B2ADOF53RDT","B2ADOF53V ","B2ADOF53WVS","B2ADOF54A ","B2ADOF54ADD","B2ADOF54D ", &
+ "B2ADOF54HDS","B2ADOF54RDT","B2ADOF54V ","B2ADOF54WVS","B2ADOF55A ","B2ADOF55ADD","B2ADOF55D ", &
+ "B2ADOF55HDS","B2ADOF55RDT","B2ADOF55V ","B2ADOF55WVS","B2ADOF56A ","B2ADOF56ADD","B2ADOF56D ", &
+ "B2ADOF56HDS","B2ADOF56RDT","B2ADOF56V ","B2ADOF56WVS","B2ADOF57A ","B2ADOF57ADD","B2ADOF57D ", &
+ "B2ADOF57HDS","B2ADOF57RDT","B2ADOF57V ","B2ADOF57WVS","B2ADOF58A ","B2ADOF58ADD","B2ADOF58D ", &
+ "B2ADOF58HDS","B2ADOF58RDT","B2ADOF58V ","B2ADOF58WVS","B2ADOF59A ","B2ADOF59ADD","B2ADOF59D ", &
+ "B2ADOF59HDS","B2ADOF59RDT","B2ADOF59V ","B2ADOF59WVS","B2ADOF5A ","B2ADOF5ADD ","B2ADOF5D ", &
+ "B2ADOF5HDS ","B2ADOF5RDT ","B2ADOF5V ","B2ADOF5WVS ","B2ADOF60A ","B2ADOF60ADD","B2ADOF60D ", &
+ "B2ADOF60HDS","B2ADOF60RDT","B2ADOF60V ","B2ADOF60WVS","B2ADOF61A ","B2ADOF61ADD","B2ADOF61D ", &
+ "B2ADOF61HDS","B2ADOF61RDT","B2ADOF61V ","B2ADOF61WVS","B2ADOF62A ","B2ADOF62ADD","B2ADOF62D ", &
+ "B2ADOF62HDS","B2ADOF62RDT","B2ADOF62V ","B2ADOF62WVS","B2ADOF63A ","B2ADOF63ADD","B2ADOF63D ", &
+ "B2ADOF63HDS","B2ADOF63RDT","B2ADOF63V ","B2ADOF63WVS","B2ADOF64A ","B2ADOF64ADD","B2ADOF64D ", &
+ "B2ADOF64HDS","B2ADOF64RDT","B2ADOF64V ","B2ADOF64WVS","B2ADOF65A ","B2ADOF65ADD","B2ADOF65D ", &
+ "B2ADOF65HDS","B2ADOF65RDT","B2ADOF65V ","B2ADOF65WVS","B2ADOF66A ","B2ADOF66ADD","B2ADOF66D ", &
+ "B2ADOF66HDS","B2ADOF66RDT","B2ADOF66V ","B2ADOF66WVS","B2ADOF67A ","B2ADOF67ADD","B2ADOF67D ", &
+ "B2ADOF67HDS","B2ADOF67RDT","B2ADOF67V ","B2ADOF67WVS","B2ADOF68A ","B2ADOF68ADD","B2ADOF68D ", &
+ "B2ADOF68HDS","B2ADOF68RDT","B2ADOF68V ","B2ADOF68WVS","B2ADOF69A ","B2ADOF69ADD","B2ADOF69D ", &
+ "B2ADOF69HDS","B2ADOF69RDT","B2ADOF69V ","B2ADOF69WVS","B2ADOF6A ","B2ADOF6ADD ","B2ADOF6D ", &
+ "B2ADOF6HDS ","B2ADOF6RDT ","B2ADOF6V ","B2ADOF6WVS ","B2ADOF70A ","B2ADOF70ADD","B2ADOF70D ", &
+ "B2ADOF70HDS","B2ADOF70RDT","B2ADOF70V ","B2ADOF70WVS","B2ADOF71A ","B2ADOF71ADD","B2ADOF71D ", &
+ "B2ADOF71HDS","B2ADOF71RDT","B2ADOF71V ","B2ADOF71WVS","B2ADOF72A ","B2ADOF72ADD","B2ADOF72D ", &
+ "B2ADOF72HDS","B2ADOF72RDT","B2ADOF72V ","B2ADOF72WVS","B2ADOF73A ","B2ADOF73ADD","B2ADOF73D ", &
+ "B2ADOF73HDS","B2ADOF73RDT","B2ADOF73V ","B2ADOF73WVS","B2ADOF74A ","B2ADOF74ADD","B2ADOF74D ", &
+ "B2ADOF74HDS","B2ADOF74RDT","B2ADOF74V ","B2ADOF74WVS","B2ADOF75A ","B2ADOF75ADD","B2ADOF75D ", &
+ "B2ADOF75HDS","B2ADOF75RDT","B2ADOF75V ","B2ADOF75WVS","B2ADOF76A ","B2ADOF76ADD","B2ADOF76D ", &
+ "B2ADOF76HDS","B2ADOF76RDT","B2ADOF76V ","B2ADOF76WVS","B2ADOF77A ","B2ADOF77ADD","B2ADOF77D ", &
+ "B2ADOF77HDS","B2ADOF77RDT","B2ADOF77V ","B2ADOF77WVS","B2ADOF78A ","B2ADOF78ADD","B2ADOF78D ", &
+ "B2ADOF78HDS","B2ADOF78RDT","B2ADOF78V ","B2ADOF78WVS","B2ADOF79A ","B2ADOF79ADD","B2ADOF79D ", &
+ "B2ADOF79HDS","B2ADOF79RDT","B2ADOF79V ","B2ADOF79WVS","B2ADOF7A ","B2ADOF7ADD ","B2ADOF7D ", &
+ "B2ADOF7HDS ","B2ADOF7RDT ","B2ADOF7V ","B2ADOF7WVS ","B2ADOF80A ","B2ADOF80ADD","B2ADOF80D ", &
+ "B2ADOF80HDS","B2ADOF80RDT","B2ADOF80V ","B2ADOF80WVS","B2ADOF81A ","B2ADOF81ADD","B2ADOF81D ", &
+ "B2ADOF81HDS","B2ADOF81RDT","B2ADOF81V ","B2ADOF81WVS","B2ADOF82A ","B2ADOF82ADD","B2ADOF82D ", &
+ "B2ADOF82HDS","B2ADOF82RDT","B2ADOF82V ","B2ADOF82WVS","B2ADOF83A ","B2ADOF83ADD","B2ADOF83D ", &
+ "B2ADOF83HDS","B2ADOF83RDT","B2ADOF83V ","B2ADOF83WVS","B2ADOF84A ","B2ADOF84ADD","B2ADOF84D ", &
+ "B2ADOF84HDS","B2ADOF84RDT","B2ADOF84V ","B2ADOF84WVS","B2ADOF85A ","B2ADOF85ADD","B2ADOF85D ", &
+ "B2ADOF85HDS","B2ADOF85RDT","B2ADOF85V ","B2ADOF85WVS","B2ADOF86A ","B2ADOF86ADD","B2ADOF86D ", &
+ "B2ADOF86HDS","B2ADOF86RDT","B2ADOF86V ","B2ADOF86WVS","B2ADOF87A ","B2ADOF87ADD","B2ADOF87D ", &
+ "B2ADOF87HDS","B2ADOF87RDT","B2ADOF87V ","B2ADOF87WVS","B2ADOF88A ","B2ADOF88ADD","B2ADOF88D ", &
+ "B2ADOF88HDS","B2ADOF88RDT","B2ADOF88V ","B2ADOF88WVS","B2ADOF89A ","B2ADOF89ADD","B2ADOF89D ", &
+ "B2ADOF89HDS","B2ADOF89RDT","B2ADOF89V ","B2ADOF89WVS","B2ADOF8A ","B2ADOF8ADD ","B2ADOF8D ", &
+ "B2ADOF8HDS ","B2ADOF8RDT ","B2ADOF8V ","B2ADOF8WVS ","B2ADOF90A ","B2ADOF90ADD","B2ADOF90D ", &
+ "B2ADOF90HDS","B2ADOF90RDT","B2ADOF90V ","B2ADOF90WVS","B2ADOF91A ","B2ADOF91ADD","B2ADOF91D ", &
+ "B2ADOF91HDS","B2ADOF91RDT","B2ADOF91V ","B2ADOF91WVS","B2ADOF92A ","B2ADOF92ADD","B2ADOF92D ", &
+ "B2ADOF92HDS","B2ADOF92RDT","B2ADOF92V ","B2ADOF92WVS","B2ADOF93A ","B2ADOF93ADD","B2ADOF93D ", &
+ "B2ADOF93HDS","B2ADOF93RDT","B2ADOF93V ","B2ADOF93WVS","B2ADOF94A ","B2ADOF94ADD","B2ADOF94D ", &
+ "B2ADOF94HDS","B2ADOF94RDT","B2ADOF94V ","B2ADOF94WVS","B2ADOF95A ","B2ADOF95ADD","B2ADOF95D ", &
+ "B2ADOF95HDS","B2ADOF95RDT","B2ADOF95V ","B2ADOF95WVS","B2ADOF96A ","B2ADOF96ADD","B2ADOF96D ", &
+ "B2ADOF96HDS","B2ADOF96RDT","B2ADOF96V ","B2ADOF96WVS","B2ADOF97A ","B2ADOF97ADD","B2ADOF97D ", &
+ "B2ADOF97HDS","B2ADOF97RDT","B2ADOF97V ","B2ADOF97WVS","B2ADOF98A ","B2ADOF98ADD","B2ADOF98D ", &
+ "B2ADOF98HDS","B2ADOF98RDT","B2ADOF98V ","B2ADOF98WVS","B2ADOF99A ","B2ADOF99ADD","B2ADOF99D ", &
+ "B2ADOF99HDS","B2ADOF99RDT","B2ADOF99V ","B2ADOF99WVS","B2ADOF9A ","B2ADOF9ADD ","B2ADOF9D ", &
+ "B2ADOF9HDS ","B2ADOF9RDT ","B2ADOF9V ","B2ADOF9WVS ","B2HDSFXI ","B2HDSFYI ","B2HDSFZI ", &
+ "B2HDSMXI ","B2HDSMYI ","B2HDSMZI ","B2HEAVE ","B2PITCH ","B2RAXI ","B2RAYI ", &
+ "B2RAZI ","B2RDTFXI ","B2RDTFYI ","B2RDTFZI ","B2RDTMXI ","B2RDTMYI ","B2RDTMZI ", &
+ "B2ROLL ","B2RVXI ","B2RVYI ","B2RVZI ","B2SURGE ","B2SWAY ","B2TAXI ", &
+ "B2TAYI ","B2TAZI ","B2TVXI ","B2TVYI ","B2TVZI ","B2WVSF1XI ","B2WVSF1YI ", &
+ "B2WVSF1ZI ","B2WVSF2XI ","B2WVSF2YI ","B2WVSF2ZI ","B2WVSFXI ","B2WVSFYI ","B2WVSFZI ", &
+ "B2WVSM1XI ","B2WVSM1YI ","B2WVSM1ZI ","B2WVSM2XI ","B2WVSM2YI ","B2WVSM2ZI ","B2WVSMXI ", &
+ "B2WVSMYI ","B2WVSMZI ","B2YAW ","B3ADDFXI ","B3ADDFYI ","B3ADDFZI ","B3ADDMXI ", &
+ "B3ADDMYI ","B3ADDMZI ","B3ADOF10A ","B3ADOF10ADD","B3ADOF10D ","B3ADOF10HDS","B3ADOF10RDT", &
+ "B3ADOF10V ","B3ADOF10WVS","B3ADOF11A ","B3ADOF11ADD","B3ADOF11D ","B3ADOF11HDS","B3ADOF11RDT", &
+ "B3ADOF11V ","B3ADOF11WVS","B3ADOF12A ","B3ADOF12ADD","B3ADOF12D ","B3ADOF12HDS","B3ADOF12RDT", &
+ "B3ADOF12V ","B3ADOF12WVS","B3ADOF13A ","B3ADOF13ADD","B3ADOF13D ","B3ADOF13HDS","B3ADOF13RDT", &
+ "B3ADOF13V ","B3ADOF13WVS","B3ADOF14A ","B3ADOF14ADD","B3ADOF14D ","B3ADOF14HDS","B3ADOF14RDT", &
+ "B3ADOF14V ","B3ADOF14WVS","B3ADOF15A ","B3ADOF15ADD","B3ADOF15D ","B3ADOF15HDS","B3ADOF15RDT", &
+ "B3ADOF15V ","B3ADOF15WVS","B3ADOF16A ","B3ADOF16ADD","B3ADOF16D ","B3ADOF16HDS","B3ADOF16RDT", &
+ "B3ADOF16V ","B3ADOF16WVS","B3ADOF17A ","B3ADOF17ADD","B3ADOF17D ","B3ADOF17HDS","B3ADOF17RDT", &
+ "B3ADOF17V ","B3ADOF17WVS","B3ADOF18A ","B3ADOF18ADD","B3ADOF18D ","B3ADOF18HDS","B3ADOF18RDT", &
+ "B3ADOF18V ","B3ADOF18WVS","B3ADOF19A ","B3ADOF19ADD","B3ADOF19D ","B3ADOF19HDS","B3ADOF19RDT", &
+ "B3ADOF19V ","B3ADOF19WVS","B3ADOF1A ","B3ADOF1ADD ","B3ADOF1D ","B3ADOF1HDS ","B3ADOF1RDT ", &
+ "B3ADOF1V ","B3ADOF1WVS ","B3ADOF20A ","B3ADOF20ADD","B3ADOF20D ","B3ADOF20HDS","B3ADOF20RDT", &
+ "B3ADOF20V ","B3ADOF20WVS","B3ADOF21A ","B3ADOF21ADD","B3ADOF21D ","B3ADOF21HDS","B3ADOF21RDT", &
+ "B3ADOF21V ","B3ADOF21WVS","B3ADOF22A ","B3ADOF22ADD","B3ADOF22D ","B3ADOF22HDS","B3ADOF22RDT", &
+ "B3ADOF22V ","B3ADOF22WVS","B3ADOF23A ","B3ADOF23ADD","B3ADOF23D ","B3ADOF23HDS","B3ADOF23RDT", &
+ "B3ADOF23V ","B3ADOF23WVS","B3ADOF24A ","B3ADOF24ADD","B3ADOF24D ","B3ADOF24HDS","B3ADOF24RDT", &
+ "B3ADOF24V ","B3ADOF24WVS","B3ADOF25A ","B3ADOF25ADD","B3ADOF25D ","B3ADOF25HDS","B3ADOF25RDT", &
+ "B3ADOF25V ","B3ADOF25WVS","B3ADOF26A ","B3ADOF26ADD","B3ADOF26D ","B3ADOF26HDS","B3ADOF26RDT", &
+ "B3ADOF26V ","B3ADOF26WVS","B3ADOF27A ","B3ADOF27ADD","B3ADOF27D ","B3ADOF27HDS","B3ADOF27RDT", &
+ "B3ADOF27V ","B3ADOF27WVS","B3ADOF28A ","B3ADOF28ADD","B3ADOF28D ","B3ADOF28HDS","B3ADOF28RDT", &
+ "B3ADOF28V ","B3ADOF28WVS","B3ADOF29A ","B3ADOF29ADD","B3ADOF29D ","B3ADOF29HDS","B3ADOF29RDT", &
+ "B3ADOF29V ","B3ADOF29WVS","B3ADOF2A ","B3ADOF2ADD ","B3ADOF2D ","B3ADOF2HDS ","B3ADOF2RDT ", &
+ "B3ADOF2V ","B3ADOF2WVS ","B3ADOF30A ","B3ADOF30ADD","B3ADOF30D ","B3ADOF30HDS","B3ADOF30RDT", &
+ "B3ADOF30V ","B3ADOF30WVS","B3ADOF31A ","B3ADOF31ADD","B3ADOF31D ","B3ADOF31HDS","B3ADOF31RDT", &
+ "B3ADOF31V ","B3ADOF31WVS","B3ADOF32A ","B3ADOF32ADD","B3ADOF32D ","B3ADOF32HDS","B3ADOF32RDT", &
+ "B3ADOF32V ","B3ADOF32WVS","B3ADOF33A ","B3ADOF33ADD","B3ADOF33D ","B3ADOF33HDS","B3ADOF33RDT", &
+ "B3ADOF33V ","B3ADOF33WVS","B3ADOF34A ","B3ADOF34ADD","B3ADOF34D ","B3ADOF34HDS","B3ADOF34RDT"/)
+ CHARACTER(OutStrLenM1), PARAMETER :: ValidParamAry2(1687) = (/ & ! This lists the names of the allowed parameters, which must be sorted alphabetically
+ "B3ADOF34V ","B3ADOF34WVS","B3ADOF35A ","B3ADOF35ADD","B3ADOF35D ","B3ADOF35HDS","B3ADOF35RDT", &
+ "B3ADOF35V ","B3ADOF35WVS","B3ADOF36A ","B3ADOF36ADD","B3ADOF36D ","B3ADOF36HDS","B3ADOF36RDT", &
+ "B3ADOF36V ","B3ADOF36WVS","B3ADOF37A ","B3ADOF37ADD","B3ADOF37D ","B3ADOF37HDS","B3ADOF37RDT", &
+ "B3ADOF37V ","B3ADOF37WVS","B3ADOF38A ","B3ADOF38ADD","B3ADOF38D ","B3ADOF38HDS","B3ADOF38RDT", &
+ "B3ADOF38V ","B3ADOF38WVS","B3ADOF39A ","B3ADOF39ADD","B3ADOF39D ","B3ADOF39HDS","B3ADOF39RDT", &
+ "B3ADOF39V ","B3ADOF39WVS","B3ADOF3A ","B3ADOF3ADD ","B3ADOF3D ","B3ADOF3HDS ","B3ADOF3RDT ", &
+ "B3ADOF3V ","B3ADOF3WVS ","B3ADOF40A ","B3ADOF40ADD","B3ADOF40D ","B3ADOF40HDS","B3ADOF40RDT", &
+ "B3ADOF40V ","B3ADOF40WVS","B3ADOF41A ","B3ADOF41ADD","B3ADOF41D ","B3ADOF41HDS","B3ADOF41RDT", &
+ "B3ADOF41V ","B3ADOF41WVS","B3ADOF42A ","B3ADOF42ADD","B3ADOF42D ","B3ADOF42HDS","B3ADOF42RDT", &
+ "B3ADOF42V ","B3ADOF42WVS","B3ADOF43A ","B3ADOF43ADD","B3ADOF43D ","B3ADOF43HDS","B3ADOF43RDT", &
+ "B3ADOF43V ","B3ADOF43WVS","B3ADOF44A ","B3ADOF44ADD","B3ADOF44D ","B3ADOF44HDS","B3ADOF44RDT", &
+ "B3ADOF44V ","B3ADOF44WVS","B3ADOF45A ","B3ADOF45ADD","B3ADOF45D ","B3ADOF45HDS","B3ADOF45RDT", &
+ "B3ADOF45V ","B3ADOF45WVS","B3ADOF46A ","B3ADOF46ADD","B3ADOF46D ","B3ADOF46HDS","B3ADOF46RDT", &
+ "B3ADOF46V ","B3ADOF46WVS","B3ADOF47A ","B3ADOF47ADD","B3ADOF47D ","B3ADOF47HDS","B3ADOF47RDT", &
+ "B3ADOF47V ","B3ADOF47WVS","B3ADOF48A ","B3ADOF48ADD","B3ADOF48D ","B3ADOF48HDS","B3ADOF48RDT", &
+ "B3ADOF48V ","B3ADOF48WVS","B3ADOF49A ","B3ADOF49ADD","B3ADOF49D ","B3ADOF49HDS","B3ADOF49RDT", &
+ "B3ADOF49V ","B3ADOF49WVS","B3ADOF4A ","B3ADOF4ADD ","B3ADOF4D ","B3ADOF4HDS ","B3ADOF4RDT ", &
+ "B3ADOF4V ","B3ADOF4WVS ","B3ADOF50A ","B3ADOF50ADD","B3ADOF50D ","B3ADOF50HDS","B3ADOF50RDT", &
+ "B3ADOF50V ","B3ADOF50WVS","B3ADOF51A ","B3ADOF51ADD","B3ADOF51D ","B3ADOF51HDS","B3ADOF51RDT", &
+ "B3ADOF51V ","B3ADOF51WVS","B3ADOF52A ","B3ADOF52ADD","B3ADOF52D ","B3ADOF52HDS","B3ADOF52RDT", &
+ "B3ADOF52V ","B3ADOF52WVS","B3ADOF53A ","B3ADOF53ADD","B3ADOF53D ","B3ADOF53HDS","B3ADOF53RDT", &
+ "B3ADOF53V ","B3ADOF53WVS","B3ADOF54A ","B3ADOF54ADD","B3ADOF54D ","B3ADOF54HDS","B3ADOF54RDT", &
+ "B3ADOF54V ","B3ADOF54WVS","B3ADOF55A ","B3ADOF55ADD","B3ADOF55D ","B3ADOF55HDS","B3ADOF55RDT", &
+ "B3ADOF55V ","B3ADOF55WVS","B3ADOF56A ","B3ADOF56ADD","B3ADOF56D ","B3ADOF56HDS","B3ADOF56RDT", &
+ "B3ADOF56V ","B3ADOF56WVS","B3ADOF57A ","B3ADOF57ADD","B3ADOF57D ","B3ADOF57HDS","B3ADOF57RDT", &
+ "B3ADOF57V ","B3ADOF57WVS","B3ADOF58A ","B3ADOF58ADD","B3ADOF58D ","B3ADOF58HDS","B3ADOF58RDT", &
+ "B3ADOF58V ","B3ADOF58WVS","B3ADOF59A ","B3ADOF59ADD","B3ADOF59D ","B3ADOF59HDS","B3ADOF59RDT", &
+ "B3ADOF59V ","B3ADOF59WVS","B3ADOF5A ","B3ADOF5ADD ","B3ADOF5D ","B3ADOF5HDS ","B3ADOF5RDT ", &
+ "B3ADOF5V ","B3ADOF5WVS ","B3ADOF60A ","B3ADOF60ADD","B3ADOF60D ","B3ADOF60HDS","B3ADOF60RDT", &
+ "B3ADOF60V ","B3ADOF60WVS","B3ADOF61A ","B3ADOF61ADD","B3ADOF61D ","B3ADOF61HDS","B3ADOF61RDT", &
+ "B3ADOF61V ","B3ADOF61WVS","B3ADOF62A ","B3ADOF62ADD","B3ADOF62D ","B3ADOF62HDS","B3ADOF62RDT", &
+ "B3ADOF62V ","B3ADOF62WVS","B3ADOF63A ","B3ADOF63ADD","B3ADOF63D ","B3ADOF63HDS","B3ADOF63RDT", &
+ "B3ADOF63V ","B3ADOF63WVS","B3ADOF64A ","B3ADOF64ADD","B3ADOF64D ","B3ADOF64HDS","B3ADOF64RDT", &
+ "B3ADOF64V ","B3ADOF64WVS","B3ADOF65A ","B3ADOF65ADD","B3ADOF65D ","B3ADOF65HDS","B3ADOF65RDT", &
+ "B3ADOF65V ","B3ADOF65WVS","B3ADOF66A ","B3ADOF66ADD","B3ADOF66D ","B3ADOF66HDS","B3ADOF66RDT", &
+ "B3ADOF66V ","B3ADOF66WVS","B3ADOF67A ","B3ADOF67ADD","B3ADOF67D ","B3ADOF67HDS","B3ADOF67RDT", &
+ "B3ADOF67V ","B3ADOF67WVS","B3ADOF68A ","B3ADOF68ADD","B3ADOF68D ","B3ADOF68HDS","B3ADOF68RDT", &
+ "B3ADOF68V ","B3ADOF68WVS","B3ADOF69A ","B3ADOF69ADD","B3ADOF69D ","B3ADOF69HDS","B3ADOF69RDT", &
+ "B3ADOF69V ","B3ADOF69WVS","B3ADOF6A ","B3ADOF6ADD ","B3ADOF6D ","B3ADOF6HDS ","B3ADOF6RDT ", &
+ "B3ADOF6V ","B3ADOF6WVS ","B3ADOF70A ","B3ADOF70ADD","B3ADOF70D ","B3ADOF70HDS","B3ADOF70RDT", &
+ "B3ADOF70V ","B3ADOF70WVS","B3ADOF71A ","B3ADOF71ADD","B3ADOF71D ","B3ADOF71HDS","B3ADOF71RDT", &
+ "B3ADOF71V ","B3ADOF71WVS","B3ADOF72A ","B3ADOF72ADD","B3ADOF72D ","B3ADOF72HDS","B3ADOF72RDT", &
+ "B3ADOF72V ","B3ADOF72WVS","B3ADOF73A ","B3ADOF73ADD","B3ADOF73D ","B3ADOF73HDS","B3ADOF73RDT", &
+ "B3ADOF73V ","B3ADOF73WVS","B3ADOF74A ","B3ADOF74ADD","B3ADOF74D ","B3ADOF74HDS","B3ADOF74RDT", &
+ "B3ADOF74V ","B3ADOF74WVS","B3ADOF75A ","B3ADOF75ADD","B3ADOF75D ","B3ADOF75HDS","B3ADOF75RDT", &
+ "B3ADOF75V ","B3ADOF75WVS","B3ADOF76A ","B3ADOF76ADD","B3ADOF76D ","B3ADOF76HDS","B3ADOF76RDT", &
+ "B3ADOF76V ","B3ADOF76WVS","B3ADOF77A ","B3ADOF77ADD","B3ADOF77D ","B3ADOF77HDS","B3ADOF77RDT", &
+ "B3ADOF77V ","B3ADOF77WVS","B3ADOF78A ","B3ADOF78ADD","B3ADOF78D ","B3ADOF78HDS","B3ADOF78RDT", &
+ "B3ADOF78V ","B3ADOF78WVS","B3ADOF79A ","B3ADOF79ADD","B3ADOF79D ","B3ADOF79HDS","B3ADOF79RDT", &
+ "B3ADOF79V ","B3ADOF79WVS","B3ADOF7A ","B3ADOF7ADD ","B3ADOF7D ","B3ADOF7HDS ","B3ADOF7RDT ", &
+ "B3ADOF7V ","B3ADOF7WVS ","B3ADOF80A ","B3ADOF80ADD","B3ADOF80D ","B3ADOF80HDS","B3ADOF80RDT", &
+ "B3ADOF80V ","B3ADOF80WVS","B3ADOF81A ","B3ADOF81ADD","B3ADOF81D ","B3ADOF81HDS","B3ADOF81RDT", &
+ "B3ADOF81V ","B3ADOF81WVS","B3ADOF82A ","B3ADOF82ADD","B3ADOF82D ","B3ADOF82HDS","B3ADOF82RDT", &
+ "B3ADOF82V ","B3ADOF82WVS","B3ADOF83A ","B3ADOF83ADD","B3ADOF83D ","B3ADOF83HDS","B3ADOF83RDT", &
+ "B3ADOF83V ","B3ADOF83WVS","B3ADOF84A ","B3ADOF84ADD","B3ADOF84D ","B3ADOF84HDS","B3ADOF84RDT", &
+ "B3ADOF84V ","B3ADOF84WVS","B3ADOF85A ","B3ADOF85ADD","B3ADOF85D ","B3ADOF85HDS","B3ADOF85RDT", &
+ "B3ADOF85V ","B3ADOF85WVS","B3ADOF86A ","B3ADOF86ADD","B3ADOF86D ","B3ADOF86HDS","B3ADOF86RDT", &
+ "B3ADOF86V ","B3ADOF86WVS","B3ADOF87A ","B3ADOF87ADD","B3ADOF87D ","B3ADOF87HDS","B3ADOF87RDT", &
+ "B3ADOF87V ","B3ADOF87WVS","B3ADOF88A ","B3ADOF88ADD","B3ADOF88D ","B3ADOF88HDS","B3ADOF88RDT", &
+ "B3ADOF88V ","B3ADOF88WVS","B3ADOF89A ","B3ADOF89ADD","B3ADOF89D ","B3ADOF89HDS","B3ADOF89RDT", &
+ "B3ADOF89V ","B3ADOF89WVS","B3ADOF8A ","B3ADOF8ADD ","B3ADOF8D ","B3ADOF8HDS ","B3ADOF8RDT ", &
+ "B3ADOF8V ","B3ADOF8WVS ","B3ADOF90A ","B3ADOF90ADD","B3ADOF90D ","B3ADOF90HDS","B3ADOF90RDT", &
+ "B3ADOF90V ","B3ADOF90WVS","B3ADOF91A ","B3ADOF91ADD","B3ADOF91D ","B3ADOF91HDS","B3ADOF91RDT", &
+ "B3ADOF91V ","B3ADOF91WVS","B3ADOF92A ","B3ADOF92ADD","B3ADOF92D ","B3ADOF92HDS","B3ADOF92RDT", &
+ "B3ADOF92V ","B3ADOF92WVS","B3ADOF93A ","B3ADOF93ADD","B3ADOF93D ","B3ADOF93HDS","B3ADOF93RDT", &
+ "B3ADOF93V ","B3ADOF93WVS","B3ADOF94A ","B3ADOF94ADD","B3ADOF94D ","B3ADOF94HDS","B3ADOF94RDT", &
+ "B3ADOF94V ","B3ADOF94WVS","B3ADOF95A ","B3ADOF95ADD","B3ADOF95D ","B3ADOF95HDS","B3ADOF95RDT", &
+ "B3ADOF95V ","B3ADOF95WVS","B3ADOF96A ","B3ADOF96ADD","B3ADOF96D ","B3ADOF96HDS","B3ADOF96RDT", &
+ "B3ADOF96V ","B3ADOF96WVS","B3ADOF97A ","B3ADOF97ADD","B3ADOF97D ","B3ADOF97HDS","B3ADOF97RDT", &
+ "B3ADOF97V ","B3ADOF97WVS","B3ADOF98A ","B3ADOF98ADD","B3ADOF98D ","B3ADOF98HDS","B3ADOF98RDT", &
+ "B3ADOF98V ","B3ADOF98WVS","B3ADOF99A ","B3ADOF99ADD","B3ADOF99D ","B3ADOF99HDS","B3ADOF99RDT", &
+ "B3ADOF99V ","B3ADOF99WVS","B3ADOF9A ","B3ADOF9ADD ","B3ADOF9D ","B3ADOF9HDS ","B3ADOF9RDT ", &
+ "B3ADOF9V ","B3ADOF9WVS ","B3HDSFXI ","B3HDSFYI ","B3HDSFZI ","B3HDSMXI ","B3HDSMYI ", &
+ "B3HDSMZI ","B3HEAVE ","B3PITCH ","B3RAXI ","B3RAYI ","B3RAZI ","B3RDTFXI ", &
+ "B3RDTFYI ","B3RDTFZI ","B3RDTMXI ","B3RDTMYI ","B3RDTMZI ","B3ROLL ","B3RVXI ", &
+ "B3RVYI ","B3RVZI ","B3SURGE ","B3SWAY ","B3TAXI ","B3TAYI ","B3TAZI ", &
+ "B3TVXI ","B3TVYI ","B3TVZI ","B3WVSF1XI ","B3WVSF1YI ","B3WVSF1ZI ","B3WVSF2XI ", &
+ "B3WVSF2YI ","B3WVSF2ZI ","B3WVSFXI ","B3WVSFYI ","B3WVSFZI ","B3WVSM1XI ","B3WVSM1YI ", &
+ "B3WVSM1ZI ","B3WVSM2XI ","B3WVSM2YI ","B3WVSM2ZI ","B3WVSMXI ","B3WVSMYI ","B3WVSMZI ", &
+ "B3YAW ","B4ADDFXI ","B4ADDFYI ","B4ADDFZI ","B4ADDMXI ","B4ADDMYI ","B4ADDMZI ", &
+ "B4ADOF10A ","B4ADOF10ADD","B4ADOF10D ","B4ADOF10HDS","B4ADOF10RDT","B4ADOF10V ","B4ADOF10WVS", &
+ "B4ADOF11A ","B4ADOF11ADD","B4ADOF11D ","B4ADOF11HDS","B4ADOF11RDT","B4ADOF11V ","B4ADOF11WVS", &
+ "B4ADOF12A ","B4ADOF12ADD","B4ADOF12D ","B4ADOF12HDS","B4ADOF12RDT","B4ADOF12V ","B4ADOF12WVS", &
+ "B4ADOF13A ","B4ADOF13ADD","B4ADOF13D ","B4ADOF13HDS","B4ADOF13RDT","B4ADOF13V ","B4ADOF13WVS", &
+ "B4ADOF14A ","B4ADOF14ADD","B4ADOF14D ","B4ADOF14HDS","B4ADOF14RDT","B4ADOF14V ","B4ADOF14WVS", &
+ "B4ADOF15A ","B4ADOF15ADD","B4ADOF15D ","B4ADOF15HDS","B4ADOF15RDT","B4ADOF15V ","B4ADOF15WVS", &
+ "B4ADOF16A ","B4ADOF16ADD","B4ADOF16D ","B4ADOF16HDS","B4ADOF16RDT","B4ADOF16V ","B4ADOF16WVS", &
+ "B4ADOF17A ","B4ADOF17ADD","B4ADOF17D ","B4ADOF17HDS","B4ADOF17RDT","B4ADOF17V ","B4ADOF17WVS", &
+ "B4ADOF18A ","B4ADOF18ADD","B4ADOF18D ","B4ADOF18HDS","B4ADOF18RDT","B4ADOF18V ","B4ADOF18WVS", &
+ "B4ADOF19A ","B4ADOF19ADD","B4ADOF19D ","B4ADOF19HDS","B4ADOF19RDT","B4ADOF19V ","B4ADOF19WVS", &
+ "B4ADOF1A ","B4ADOF1ADD ","B4ADOF1D ","B4ADOF1HDS ","B4ADOF1RDT ","B4ADOF1V ","B4ADOF1WVS ", &
+ "B4ADOF20A ","B4ADOF20ADD","B4ADOF20D ","B4ADOF20HDS","B4ADOF20RDT","B4ADOF20V ","B4ADOF20WVS", &
+ "B4ADOF21A ","B4ADOF21ADD","B4ADOF21D ","B4ADOF21HDS","B4ADOF21RDT","B4ADOF21V ","B4ADOF21WVS", &
+ "B4ADOF22A ","B4ADOF22ADD","B4ADOF22D ","B4ADOF22HDS","B4ADOF22RDT","B4ADOF22V ","B4ADOF22WVS", &
+ "B4ADOF23A ","B4ADOF23ADD","B4ADOF23D ","B4ADOF23HDS","B4ADOF23RDT","B4ADOF23V ","B4ADOF23WVS", &
+ "B4ADOF24A ","B4ADOF24ADD","B4ADOF24D ","B4ADOF24HDS","B4ADOF24RDT","B4ADOF24V ","B4ADOF24WVS", &
+ "B4ADOF25A ","B4ADOF25ADD","B4ADOF25D ","B4ADOF25HDS","B4ADOF25RDT","B4ADOF25V ","B4ADOF25WVS", &
+ "B4ADOF26A ","B4ADOF26ADD","B4ADOF26D ","B4ADOF26HDS","B4ADOF26RDT","B4ADOF26V ","B4ADOF26WVS", &
+ "B4ADOF27A ","B4ADOF27ADD","B4ADOF27D ","B4ADOF27HDS","B4ADOF27RDT","B4ADOF27V ","B4ADOF27WVS", &
+ "B4ADOF28A ","B4ADOF28ADD","B4ADOF28D ","B4ADOF28HDS","B4ADOF28RDT","B4ADOF28V ","B4ADOF28WVS", &
+ "B4ADOF29A ","B4ADOF29ADD","B4ADOF29D ","B4ADOF29HDS","B4ADOF29RDT","B4ADOF29V ","B4ADOF29WVS", &
+ "B4ADOF2A ","B4ADOF2ADD ","B4ADOF2D ","B4ADOF2HDS ","B4ADOF2RDT ","B4ADOF2V ","B4ADOF2WVS ", &
+ "B4ADOF30A ","B4ADOF30ADD","B4ADOF30D ","B4ADOF30HDS","B4ADOF30RDT","B4ADOF30V ","B4ADOF30WVS", &
+ "B4ADOF31A ","B4ADOF31ADD","B4ADOF31D ","B4ADOF31HDS","B4ADOF31RDT","B4ADOF31V ","B4ADOF31WVS", &
+ "B4ADOF32A ","B4ADOF32ADD","B4ADOF32D ","B4ADOF32HDS","B4ADOF32RDT","B4ADOF32V ","B4ADOF32WVS", &
+ "B4ADOF33A ","B4ADOF33ADD","B4ADOF33D ","B4ADOF33HDS","B4ADOF33RDT","B4ADOF33V ","B4ADOF33WVS", &
+ "B4ADOF34A ","B4ADOF34ADD","B4ADOF34D ","B4ADOF34HDS","B4ADOF34RDT","B4ADOF34V ","B4ADOF34WVS", &
+ "B4ADOF35A ","B4ADOF35ADD","B4ADOF35D ","B4ADOF35HDS","B4ADOF35RDT","B4ADOF35V ","B4ADOF35WVS", &
+ "B4ADOF36A ","B4ADOF36ADD","B4ADOF36D ","B4ADOF36HDS","B4ADOF36RDT","B4ADOF36V ","B4ADOF36WVS", &
+ "B4ADOF37A ","B4ADOF37ADD","B4ADOF37D ","B4ADOF37HDS","B4ADOF37RDT","B4ADOF37V ","B4ADOF37WVS", &
+ "B4ADOF38A ","B4ADOF38ADD","B4ADOF38D ","B4ADOF38HDS","B4ADOF38RDT","B4ADOF38V ","B4ADOF38WVS", &
+ "B4ADOF39A ","B4ADOF39ADD","B4ADOF39D ","B4ADOF39HDS","B4ADOF39RDT","B4ADOF39V ","B4ADOF39WVS", &
+ "B4ADOF3A ","B4ADOF3ADD ","B4ADOF3D ","B4ADOF3HDS ","B4ADOF3RDT ","B4ADOF3V ","B4ADOF3WVS ", &
+ "B4ADOF40A ","B4ADOF40ADD","B4ADOF40D ","B4ADOF40HDS","B4ADOF40RDT","B4ADOF40V ","B4ADOF40WVS", &
+ "B4ADOF41A ","B4ADOF41ADD","B4ADOF41D ","B4ADOF41HDS","B4ADOF41RDT","B4ADOF41V ","B4ADOF41WVS", &
+ "B4ADOF42A ","B4ADOF42ADD","B4ADOF42D ","B4ADOF42HDS","B4ADOF42RDT","B4ADOF42V ","B4ADOF42WVS", &
+ "B4ADOF43A ","B4ADOF43ADD","B4ADOF43D ","B4ADOF43HDS","B4ADOF43RDT","B4ADOF43V ","B4ADOF43WVS", &
+ "B4ADOF44A ","B4ADOF44ADD","B4ADOF44D ","B4ADOF44HDS","B4ADOF44RDT","B4ADOF44V ","B4ADOF44WVS", &
+ "B4ADOF45A ","B4ADOF45ADD","B4ADOF45D ","B4ADOF45HDS","B4ADOF45RDT","B4ADOF45V ","B4ADOF45WVS", &
+ "B4ADOF46A ","B4ADOF46ADD","B4ADOF46D ","B4ADOF46HDS","B4ADOF46RDT","B4ADOF46V ","B4ADOF46WVS", &
+ "B4ADOF47A ","B4ADOF47ADD","B4ADOF47D ","B4ADOF47HDS","B4ADOF47RDT","B4ADOF47V ","B4ADOF47WVS", &
+ "B4ADOF48A ","B4ADOF48ADD","B4ADOF48D ","B4ADOF48HDS","B4ADOF48RDT","B4ADOF48V ","B4ADOF48WVS", &
+ "B4ADOF49A ","B4ADOF49ADD","B4ADOF49D ","B4ADOF49HDS","B4ADOF49RDT","B4ADOF49V ","B4ADOF49WVS", &
+ "B4ADOF4A ","B4ADOF4ADD ","B4ADOF4D ","B4ADOF4HDS ","B4ADOF4RDT ","B4ADOF4V ","B4ADOF4WVS ", &
+ "B4ADOF50A ","B4ADOF50ADD","B4ADOF50D ","B4ADOF50HDS","B4ADOF50RDT","B4ADOF50V ","B4ADOF50WVS", &
+ "B4ADOF51A ","B4ADOF51ADD","B4ADOF51D ","B4ADOF51HDS","B4ADOF51RDT","B4ADOF51V ","B4ADOF51WVS", &
+ "B4ADOF52A ","B4ADOF52ADD","B4ADOF52D ","B4ADOF52HDS","B4ADOF52RDT","B4ADOF52V ","B4ADOF52WVS", &
+ "B4ADOF53A ","B4ADOF53ADD","B4ADOF53D ","B4ADOF53HDS","B4ADOF53RDT","B4ADOF53V ","B4ADOF53WVS", &
+ "B4ADOF54A ","B4ADOF54ADD","B4ADOF54D ","B4ADOF54HDS","B4ADOF54RDT","B4ADOF54V ","B4ADOF54WVS", &
+ "B4ADOF55A ","B4ADOF55ADD","B4ADOF55D ","B4ADOF55HDS","B4ADOF55RDT","B4ADOF55V ","B4ADOF55WVS", &
+ "B4ADOF56A ","B4ADOF56ADD","B4ADOF56D ","B4ADOF56HDS","B4ADOF56RDT","B4ADOF56V ","B4ADOF56WVS", &
+ "B4ADOF57A ","B4ADOF57ADD","B4ADOF57D ","B4ADOF57HDS","B4ADOF57RDT","B4ADOF57V ","B4ADOF57WVS", &
+ "B4ADOF58A ","B4ADOF58ADD","B4ADOF58D ","B4ADOF58HDS","B4ADOF58RDT","B4ADOF58V ","B4ADOF58WVS", &
+ "B4ADOF59A ","B4ADOF59ADD","B4ADOF59D ","B4ADOF59HDS","B4ADOF59RDT","B4ADOF59V ","B4ADOF59WVS", &
+ "B4ADOF5A ","B4ADOF5ADD ","B4ADOF5D ","B4ADOF5HDS ","B4ADOF5RDT ","B4ADOF5V ","B4ADOF5WVS ", &
+ "B4ADOF60A ","B4ADOF60ADD","B4ADOF60D ","B4ADOF60HDS","B4ADOF60RDT","B4ADOF60V ","B4ADOF60WVS", &
+ "B4ADOF61A ","B4ADOF61ADD","B4ADOF61D ","B4ADOF61HDS","B4ADOF61RDT","B4ADOF61V ","B4ADOF61WVS", &
+ "B4ADOF62A ","B4ADOF62ADD","B4ADOF62D ","B4ADOF62HDS","B4ADOF62RDT","B4ADOF62V ","B4ADOF62WVS", &
+ "B4ADOF63A ","B4ADOF63ADD","B4ADOF63D ","B4ADOF63HDS","B4ADOF63RDT","B4ADOF63V ","B4ADOF63WVS", &
+ "B4ADOF64A ","B4ADOF64ADD","B4ADOF64D ","B4ADOF64HDS","B4ADOF64RDT","B4ADOF64V ","B4ADOF64WVS", &
+ "B4ADOF65A ","B4ADOF65ADD","B4ADOF65D ","B4ADOF65HDS","B4ADOF65RDT","B4ADOF65V ","B4ADOF65WVS", &
+ "B4ADOF66A ","B4ADOF66ADD","B4ADOF66D ","B4ADOF66HDS","B4ADOF66RDT","B4ADOF66V ","B4ADOF66WVS", &
+ "B4ADOF67A ","B4ADOF67ADD","B4ADOF67D ","B4ADOF67HDS","B4ADOF67RDT","B4ADOF67V ","B4ADOF67WVS", &
+ "B4ADOF68A ","B4ADOF68ADD","B4ADOF68D ","B4ADOF68HDS","B4ADOF68RDT","B4ADOF68V ","B4ADOF68WVS", &
+ "B4ADOF69A ","B4ADOF69ADD","B4ADOF69D ","B4ADOF69HDS","B4ADOF69RDT","B4ADOF69V ","B4ADOF69WVS", &
+ "B4ADOF6A ","B4ADOF6ADD ","B4ADOF6D ","B4ADOF6HDS ","B4ADOF6RDT ","B4ADOF6V ","B4ADOF6WVS ", &
+ "B4ADOF70A ","B4ADOF70ADD","B4ADOF70D ","B4ADOF70HDS","B4ADOF70RDT","B4ADOF70V ","B4ADOF70WVS", &
+ "B4ADOF71A ","B4ADOF71ADD","B4ADOF71D ","B4ADOF71HDS","B4ADOF71RDT","B4ADOF71V ","B4ADOF71WVS", &
+ "B4ADOF72A ","B4ADOF72ADD","B4ADOF72D ","B4ADOF72HDS","B4ADOF72RDT","B4ADOF72V ","B4ADOF72WVS", &
+ "B4ADOF73A ","B4ADOF73ADD","B4ADOF73D ","B4ADOF73HDS","B4ADOF73RDT","B4ADOF73V ","B4ADOF73WVS", &
+ "B4ADOF74A ","B4ADOF74ADD","B4ADOF74D ","B4ADOF74HDS","B4ADOF74RDT","B4ADOF74V ","B4ADOF74WVS", &
+ "B4ADOF75A ","B4ADOF75ADD","B4ADOF75D ","B4ADOF75HDS","B4ADOF75RDT","B4ADOF75V ","B4ADOF75WVS", &
+ "B4ADOF76A ","B4ADOF76ADD","B4ADOF76D ","B4ADOF76HDS","B4ADOF76RDT","B4ADOF76V ","B4ADOF76WVS", &
+ "B4ADOF77A ","B4ADOF77ADD","B4ADOF77D ","B4ADOF77HDS","B4ADOF77RDT","B4ADOF77V ","B4ADOF77WVS", &
+ "B4ADOF78A ","B4ADOF78ADD","B4ADOF78D ","B4ADOF78HDS","B4ADOF78RDT","B4ADOF78V ","B4ADOF78WVS", &
+ "B4ADOF79A ","B4ADOF79ADD","B4ADOF79D ","B4ADOF79HDS","B4ADOF79RDT","B4ADOF79V ","B4ADOF79WVS", &
+ "B4ADOF7A ","B4ADOF7ADD ","B4ADOF7D ","B4ADOF7HDS ","B4ADOF7RDT ","B4ADOF7V ","B4ADOF7WVS ", &
+ "B4ADOF80A ","B4ADOF80ADD","B4ADOF80D ","B4ADOF80HDS","B4ADOF80RDT","B4ADOF80V ","B4ADOF80WVS", &
+ "B4ADOF81A ","B4ADOF81ADD","B4ADOF81D ","B4ADOF81HDS","B4ADOF81RDT","B4ADOF81V ","B4ADOF81WVS", &
+ "B4ADOF82A ","B4ADOF82ADD","B4ADOF82D ","B4ADOF82HDS","B4ADOF82RDT","B4ADOF82V ","B4ADOF82WVS", &
+ "B4ADOF83A ","B4ADOF83ADD","B4ADOF83D ","B4ADOF83HDS","B4ADOF83RDT","B4ADOF83V ","B4ADOF83WVS", &
+ "B4ADOF84A ","B4ADOF84ADD","B4ADOF84D ","B4ADOF84HDS","B4ADOF84RDT","B4ADOF84V ","B4ADOF84WVS", &
+ "B4ADOF85A ","B4ADOF85ADD","B4ADOF85D ","B4ADOF85HDS","B4ADOF85RDT","B4ADOF85V ","B4ADOF85WVS", &
+ "B4ADOF86A ","B4ADOF86ADD","B4ADOF86D ","B4ADOF86HDS","B4ADOF86RDT","B4ADOF86V ","B4ADOF86WVS", &
+ "B4ADOF87A ","B4ADOF87ADD","B4ADOF87D ","B4ADOF87HDS","B4ADOF87RDT","B4ADOF87V ","B4ADOF87WVS", &
+ "B4ADOF88A ","B4ADOF88ADD","B4ADOF88D ","B4ADOF88HDS","B4ADOF88RDT","B4ADOF88V ","B4ADOF88WVS", &
+ "B4ADOF89A ","B4ADOF89ADD","B4ADOF89D ","B4ADOF89HDS","B4ADOF89RDT","B4ADOF89V ","B4ADOF89WVS", &
+ "B4ADOF8A ","B4ADOF8ADD ","B4ADOF8D ","B4ADOF8HDS ","B4ADOF8RDT ","B4ADOF8V ","B4ADOF8WVS ", &
+ "B4ADOF90A ","B4ADOF90ADD","B4ADOF90D ","B4ADOF90HDS","B4ADOF90RDT","B4ADOF90V ","B4ADOF90WVS", &
+ "B4ADOF91A ","B4ADOF91ADD","B4ADOF91D ","B4ADOF91HDS","B4ADOF91RDT","B4ADOF91V ","B4ADOF91WVS", &
+ "B4ADOF92A ","B4ADOF92ADD","B4ADOF92D ","B4ADOF92HDS","B4ADOF92RDT","B4ADOF92V ","B4ADOF92WVS", &
+ "B4ADOF93A ","B4ADOF93ADD","B4ADOF93D ","B4ADOF93HDS","B4ADOF93RDT","B4ADOF93V ","B4ADOF93WVS", &
+ "B4ADOF94A ","B4ADOF94ADD","B4ADOF94D ","B4ADOF94HDS","B4ADOF94RDT","B4ADOF94V ","B4ADOF94WVS", &
+ "B4ADOF95A ","B4ADOF95ADD","B4ADOF95D ","B4ADOF95HDS","B4ADOF95RDT","B4ADOF95V ","B4ADOF95WVS", &
+ "B4ADOF96A ","B4ADOF96ADD","B4ADOF96D ","B4ADOF96HDS","B4ADOF96RDT","B4ADOF96V ","B4ADOF96WVS", &
+ "B4ADOF97A ","B4ADOF97ADD","B4ADOF97D ","B4ADOF97HDS","B4ADOF97RDT","B4ADOF97V ","B4ADOF97WVS", &
+ "B4ADOF98A ","B4ADOF98ADD","B4ADOF98D ","B4ADOF98HDS","B4ADOF98RDT","B4ADOF98V ","B4ADOF98WVS", &
+ "B4ADOF99A ","B4ADOF99ADD","B4ADOF99D ","B4ADOF99HDS","B4ADOF99RDT","B4ADOF99V ","B4ADOF99WVS", &
+ "B4ADOF9A ","B4ADOF9ADD ","B4ADOF9D ","B4ADOF9HDS ","B4ADOF9RDT ","B4ADOF9V ","B4ADOF9WVS ", &
+ "B4HDSFXI ","B4HDSFYI ","B4HDSFZI ","B4HDSMXI ","B4HDSMYI ","B4HDSMZI ","B4HEAVE ", &
+ "B4PITCH ","B4RAXI ","B4RAYI ","B4RAZI ","B4RDTFXI ","B4RDTFYI ","B4RDTFZI ", &
+ "B4RDTMXI ","B4RDTMYI ","B4RDTMZI ","B4ROLL ","B4RVXI ","B4RVYI ","B4RVZI ", &
+ "B4SURGE ","B4SWAY ","B4TAXI ","B4TAYI ","B4TAZI ","B4TVXI ","B4TVYI ", &
+ "B4TVZI ","B4WVSF1XI ","B4WVSF1YI ","B4WVSF1ZI ","B4WVSF2XI ","B4WVSF2YI ","B4WVSF2ZI ", &
+ "B4WVSFXI ","B4WVSFYI ","B4WVSFZI ","B4WVSM1XI ","B4WVSM1YI ","B4WVSM1ZI ","B4WVSM2XI ", &
+ "B4WVSM2YI ","B4WVSM2ZI ","B4WVSMXI ","B4WVSMYI ","B4WVSMZI ","B4YAW ","B5ADDFXI ", &
+ "B5ADDFYI ","B5ADDFZI ","B5ADDMXI ","B5ADDMYI ","B5ADDMZI ","B5ADOF10A ","B5ADOF10ADD", &
+ "B5ADOF10D ","B5ADOF10HDS","B5ADOF10RDT","B5ADOF10V ","B5ADOF10WVS","B5ADOF11A ","B5ADOF11ADD", &
+ "B5ADOF11D ","B5ADOF11HDS","B5ADOF11RDT","B5ADOF11V ","B5ADOF11WVS","B5ADOF12A ","B5ADOF12ADD", &
+ "B5ADOF12D ","B5ADOF12HDS","B5ADOF12RDT","B5ADOF12V ","B5ADOF12WVS","B5ADOF13A ","B5ADOF13ADD", &
+ "B5ADOF13D ","B5ADOF13HDS","B5ADOF13RDT","B5ADOF13V ","B5ADOF13WVS","B5ADOF14A ","B5ADOF14ADD", &
+ "B5ADOF14D ","B5ADOF14HDS","B5ADOF14RDT","B5ADOF14V ","B5ADOF14WVS","B5ADOF15A ","B5ADOF15ADD", &
+ "B5ADOF15D ","B5ADOF15HDS","B5ADOF15RDT","B5ADOF15V ","B5ADOF15WVS","B5ADOF16A ","B5ADOF16ADD", &
+ "B5ADOF16D ","B5ADOF16HDS","B5ADOF16RDT","B5ADOF16V ","B5ADOF16WVS","B5ADOF17A ","B5ADOF17ADD", &
+ "B5ADOF17D ","B5ADOF17HDS","B5ADOF17RDT","B5ADOF17V ","B5ADOF17WVS","B5ADOF18A ","B5ADOF18ADD", &
+ "B5ADOF18D ","B5ADOF18HDS","B5ADOF18RDT","B5ADOF18V ","B5ADOF18WVS","B5ADOF19A ","B5ADOF19ADD", &
+ "B5ADOF19D ","B5ADOF19HDS","B5ADOF19RDT","B5ADOF19V ","B5ADOF19WVS","B5ADOF1A ","B5ADOF1ADD ", &
+ "B5ADOF1D ","B5ADOF1HDS ","B5ADOF1RDT ","B5ADOF1V ","B5ADOF1WVS ","B5ADOF20A ","B5ADOF20ADD", &
+ "B5ADOF20D ","B5ADOF20HDS","B5ADOF20RDT","B5ADOF20V ","B5ADOF20WVS","B5ADOF21A ","B5ADOF21ADD", &
+ "B5ADOF21D ","B5ADOF21HDS","B5ADOF21RDT","B5ADOF21V ","B5ADOF21WVS","B5ADOF22A ","B5ADOF22ADD", &
+ "B5ADOF22D ","B5ADOF22HDS","B5ADOF22RDT","B5ADOF22V ","B5ADOF22WVS","B5ADOF23A ","B5ADOF23ADD", &
+ "B5ADOF23D ","B5ADOF23HDS","B5ADOF23RDT","B5ADOF23V ","B5ADOF23WVS","B5ADOF24A ","B5ADOF24ADD", &
+ "B5ADOF24D ","B5ADOF24HDS","B5ADOF24RDT","B5ADOF24V ","B5ADOF24WVS","B5ADOF25A ","B5ADOF25ADD", &
+ "B5ADOF25D ","B5ADOF25HDS","B5ADOF25RDT","B5ADOF25V ","B5ADOF25WVS","B5ADOF26A ","B5ADOF26ADD", &
+ "B5ADOF26D ","B5ADOF26HDS","B5ADOF26RDT","B5ADOF26V ","B5ADOF26WVS","B5ADOF27A ","B5ADOF27ADD", &
+ "B5ADOF27D ","B5ADOF27HDS","B5ADOF27RDT","B5ADOF27V ","B5ADOF27WVS","B5ADOF28A ","B5ADOF28ADD", &
+ "B5ADOF28D ","B5ADOF28HDS","B5ADOF28RDT","B5ADOF28V ","B5ADOF28WVS","B5ADOF29A ","B5ADOF29ADD", &
+ "B5ADOF29D ","B5ADOF29HDS","B5ADOF29RDT","B5ADOF29V ","B5ADOF29WVS","B5ADOF2A ","B5ADOF2ADD ", &
+ "B5ADOF2D ","B5ADOF2HDS ","B5ADOF2RDT ","B5ADOF2V ","B5ADOF2WVS ","B5ADOF30A ","B5ADOF30ADD", &
+ "B5ADOF30D ","B5ADOF30HDS","B5ADOF30RDT","B5ADOF30V ","B5ADOF30WVS","B5ADOF31A ","B5ADOF31ADD", &
+ "B5ADOF31D ","B5ADOF31HDS","B5ADOF31RDT","B5ADOF31V ","B5ADOF31WVS","B5ADOF32A ","B5ADOF32ADD", &
+ "B5ADOF32D ","B5ADOF32HDS","B5ADOF32RDT","B5ADOF32V ","B5ADOF32WVS","B5ADOF33A ","B5ADOF33ADD", &
+ "B5ADOF33D ","B5ADOF33HDS","B5ADOF33RDT","B5ADOF33V ","B5ADOF33WVS","B5ADOF34A ","B5ADOF34ADD", &
+ "B5ADOF34D ","B5ADOF34HDS","B5ADOF34RDT","B5ADOF34V ","B5ADOF34WVS","B5ADOF35A ","B5ADOF35ADD", &
+ "B5ADOF35D ","B5ADOF35HDS","B5ADOF35RDT","B5ADOF35V ","B5ADOF35WVS","B5ADOF36A ","B5ADOF36ADD", &
+ "B5ADOF36D ","B5ADOF36HDS","B5ADOF36RDT","B5ADOF36V ","B5ADOF36WVS","B5ADOF37A ","B5ADOF37ADD", &
+ "B5ADOF37D ","B5ADOF37HDS","B5ADOF37RDT","B5ADOF37V ","B5ADOF37WVS","B5ADOF38A ","B5ADOF38ADD", &
+ "B5ADOF38D ","B5ADOF38HDS","B5ADOF38RDT","B5ADOF38V ","B5ADOF38WVS","B5ADOF39A ","B5ADOF39ADD", &
+ "B5ADOF39D ","B5ADOF39HDS","B5ADOF39RDT","B5ADOF39V ","B5ADOF39WVS","B5ADOF3A ","B5ADOF3ADD ", &
+ "B5ADOF3D ","B5ADOF3HDS ","B5ADOF3RDT ","B5ADOF3V ","B5ADOF3WVS ","B5ADOF40A ","B5ADOF40ADD", &
+ "B5ADOF40D ","B5ADOF40HDS","B5ADOF40RDT","B5ADOF40V ","B5ADOF40WVS","B5ADOF41A ","B5ADOF41ADD", &
+ "B5ADOF41D ","B5ADOF41HDS","B5ADOF41RDT","B5ADOF41V ","B5ADOF41WVS","B5ADOF42A ","B5ADOF42ADD", &
+ "B5ADOF42D ","B5ADOF42HDS","B5ADOF42RDT","B5ADOF42V ","B5ADOF42WVS","B5ADOF43A ","B5ADOF43ADD", &
+ "B5ADOF43D ","B5ADOF43HDS","B5ADOF43RDT","B5ADOF43V ","B5ADOF43WVS","B5ADOF44A ","B5ADOF44ADD", &
+ "B5ADOF44D ","B5ADOF44HDS","B5ADOF44RDT","B5ADOF44V ","B5ADOF44WVS","B5ADOF45A ","B5ADOF45ADD", &
+ "B5ADOF45D ","B5ADOF45HDS","B5ADOF45RDT","B5ADOF45V ","B5ADOF45WVS","B5ADOF46A ","B5ADOF46ADD", &
+ "B5ADOF46D ","B5ADOF46HDS","B5ADOF46RDT","B5ADOF46V ","B5ADOF46WVS","B5ADOF47A ","B5ADOF47ADD", &
+ "B5ADOF47D ","B5ADOF47HDS","B5ADOF47RDT","B5ADOF47V ","B5ADOF47WVS","B5ADOF48A ","B5ADOF48ADD", &
+ "B5ADOF48D ","B5ADOF48HDS","B5ADOF48RDT","B5ADOF48V ","B5ADOF48WVS","B5ADOF49A ","B5ADOF49ADD", &
+ "B5ADOF49D ","B5ADOF49HDS","B5ADOF49RDT","B5ADOF49V ","B5ADOF49WVS","B5ADOF4A ","B5ADOF4ADD ", &
+ "B5ADOF4D ","B5ADOF4HDS ","B5ADOF4RDT ","B5ADOF4V ","B5ADOF4WVS ","B5ADOF50A ","B5ADOF50ADD", &
+ "B5ADOF50D ","B5ADOF50HDS","B5ADOF50RDT","B5ADOF50V ","B5ADOF50WVS","B5ADOF51A ","B5ADOF51ADD", &
+ "B5ADOF51D ","B5ADOF51HDS","B5ADOF51RDT","B5ADOF51V ","B5ADOF51WVS","B5ADOF52A ","B5ADOF52ADD", &
+ "B5ADOF52D ","B5ADOF52HDS","B5ADOF52RDT","B5ADOF52V ","B5ADOF52WVS","B5ADOF53A ","B5ADOF53ADD", &
+ "B5ADOF53D ","B5ADOF53HDS","B5ADOF53RDT","B5ADOF53V ","B5ADOF53WVS","B5ADOF54A ","B5ADOF54ADD", &
+ "B5ADOF54D ","B5ADOF54HDS","B5ADOF54RDT","B5ADOF54V ","B5ADOF54WVS","B5ADOF55A ","B5ADOF55ADD", &
+ "B5ADOF55D ","B5ADOF55HDS","B5ADOF55RDT","B5ADOF55V ","B5ADOF55WVS","B5ADOF56A ","B5ADOF56ADD", &
+ "B5ADOF56D ","B5ADOF56HDS","B5ADOF56RDT","B5ADOF56V ","B5ADOF56WVS","B5ADOF57A ","B5ADOF57ADD", &
+ "B5ADOF57D ","B5ADOF57HDS","B5ADOF57RDT","B5ADOF57V ","B5ADOF57WVS","B5ADOF58A ","B5ADOF58ADD", &
+ "B5ADOF58D ","B5ADOF58HDS","B5ADOF58RDT","B5ADOF58V ","B5ADOF58WVS","B5ADOF59A ","B5ADOF59ADD", &
+ "B5ADOF59D ","B5ADOF59HDS","B5ADOF59RDT","B5ADOF59V ","B5ADOF59WVS","B5ADOF5A ","B5ADOF5ADD "/)
+ CHARACTER(OutStrLenM1), PARAMETER :: ValidParamAry3(1687) = (/ & ! This lists the names of the allowed parameters, which must be sorted alphabetically
+ "B5ADOF5D ","B5ADOF5HDS ","B5ADOF5RDT ","B5ADOF5V ","B5ADOF5WVS ","B5ADOF60A ","B5ADOF60ADD", &
+ "B5ADOF60D ","B5ADOF60HDS","B5ADOF60RDT","B5ADOF60V ","B5ADOF60WVS","B5ADOF61A ","B5ADOF61ADD", &
+ "B5ADOF61D ","B5ADOF61HDS","B5ADOF61RDT","B5ADOF61V ","B5ADOF61WVS","B5ADOF62A ","B5ADOF62ADD", &
+ "B5ADOF62D ","B5ADOF62HDS","B5ADOF62RDT","B5ADOF62V ","B5ADOF62WVS","B5ADOF63A ","B5ADOF63ADD", &
+ "B5ADOF63D ","B5ADOF63HDS","B5ADOF63RDT","B5ADOF63V ","B5ADOF63WVS","B5ADOF64A ","B5ADOF64ADD", &
+ "B5ADOF64D ","B5ADOF64HDS","B5ADOF64RDT","B5ADOF64V ","B5ADOF64WVS","B5ADOF65A ","B5ADOF65ADD", &
+ "B5ADOF65D ","B5ADOF65HDS","B5ADOF65RDT","B5ADOF65V ","B5ADOF65WVS","B5ADOF66A ","B5ADOF66ADD", &
+ "B5ADOF66D ","B5ADOF66HDS","B5ADOF66RDT","B5ADOF66V ","B5ADOF66WVS","B5ADOF67A ","B5ADOF67ADD", &
+ "B5ADOF67D ","B5ADOF67HDS","B5ADOF67RDT","B5ADOF67V ","B5ADOF67WVS","B5ADOF68A ","B5ADOF68ADD", &
+ "B5ADOF68D ","B5ADOF68HDS","B5ADOF68RDT","B5ADOF68V ","B5ADOF68WVS","B5ADOF69A ","B5ADOF69ADD", &
+ "B5ADOF69D ","B5ADOF69HDS","B5ADOF69RDT","B5ADOF69V ","B5ADOF69WVS","B5ADOF6A ","B5ADOF6ADD ", &
+ "B5ADOF6D ","B5ADOF6HDS ","B5ADOF6RDT ","B5ADOF6V ","B5ADOF6WVS ","B5ADOF70A ","B5ADOF70ADD", &
+ "B5ADOF70D ","B5ADOF70HDS","B5ADOF70RDT","B5ADOF70V ","B5ADOF70WVS","B5ADOF71A ","B5ADOF71ADD", &
+ "B5ADOF71D ","B5ADOF71HDS","B5ADOF71RDT","B5ADOF71V ","B5ADOF71WVS","B5ADOF72A ","B5ADOF72ADD", &
+ "B5ADOF72D ","B5ADOF72HDS","B5ADOF72RDT","B5ADOF72V ","B5ADOF72WVS","B5ADOF73A ","B5ADOF73ADD", &
+ "B5ADOF73D ","B5ADOF73HDS","B5ADOF73RDT","B5ADOF73V ","B5ADOF73WVS","B5ADOF74A ","B5ADOF74ADD", &
+ "B5ADOF74D ","B5ADOF74HDS","B5ADOF74RDT","B5ADOF74V ","B5ADOF74WVS","B5ADOF75A ","B5ADOF75ADD", &
+ "B5ADOF75D ","B5ADOF75HDS","B5ADOF75RDT","B5ADOF75V ","B5ADOF75WVS","B5ADOF76A ","B5ADOF76ADD", &
+ "B5ADOF76D ","B5ADOF76HDS","B5ADOF76RDT","B5ADOF76V ","B5ADOF76WVS","B5ADOF77A ","B5ADOF77ADD", &
+ "B5ADOF77D ","B5ADOF77HDS","B5ADOF77RDT","B5ADOF77V ","B5ADOF77WVS","B5ADOF78A ","B5ADOF78ADD", &
+ "B5ADOF78D ","B5ADOF78HDS","B5ADOF78RDT","B5ADOF78V ","B5ADOF78WVS","B5ADOF79A ","B5ADOF79ADD", &
+ "B5ADOF79D ","B5ADOF79HDS","B5ADOF79RDT","B5ADOF79V ","B5ADOF79WVS","B5ADOF7A ","B5ADOF7ADD ", &
+ "B5ADOF7D ","B5ADOF7HDS ","B5ADOF7RDT ","B5ADOF7V ","B5ADOF7WVS ","B5ADOF80A ","B5ADOF80ADD", &
+ "B5ADOF80D ","B5ADOF80HDS","B5ADOF80RDT","B5ADOF80V ","B5ADOF80WVS","B5ADOF81A ","B5ADOF81ADD", &
+ "B5ADOF81D ","B5ADOF81HDS","B5ADOF81RDT","B5ADOF81V ","B5ADOF81WVS","B5ADOF82A ","B5ADOF82ADD", &
+ "B5ADOF82D ","B5ADOF82HDS","B5ADOF82RDT","B5ADOF82V ","B5ADOF82WVS","B5ADOF83A ","B5ADOF83ADD", &
+ "B5ADOF83D ","B5ADOF83HDS","B5ADOF83RDT","B5ADOF83V ","B5ADOF83WVS","B5ADOF84A ","B5ADOF84ADD", &
+ "B5ADOF84D ","B5ADOF84HDS","B5ADOF84RDT","B5ADOF84V ","B5ADOF84WVS","B5ADOF85A ","B5ADOF85ADD", &
+ "B5ADOF85D ","B5ADOF85HDS","B5ADOF85RDT","B5ADOF85V ","B5ADOF85WVS","B5ADOF86A ","B5ADOF86ADD", &
+ "B5ADOF86D ","B5ADOF86HDS","B5ADOF86RDT","B5ADOF86V ","B5ADOF86WVS","B5ADOF87A ","B5ADOF87ADD", &
+ "B5ADOF87D ","B5ADOF87HDS","B5ADOF87RDT","B5ADOF87V ","B5ADOF87WVS","B5ADOF88A ","B5ADOF88ADD", &
+ "B5ADOF88D ","B5ADOF88HDS","B5ADOF88RDT","B5ADOF88V ","B5ADOF88WVS","B5ADOF89A ","B5ADOF89ADD", &
+ "B5ADOF89D ","B5ADOF89HDS","B5ADOF89RDT","B5ADOF89V ","B5ADOF89WVS","B5ADOF8A ","B5ADOF8ADD ", &
+ "B5ADOF8D ","B5ADOF8HDS ","B5ADOF8RDT ","B5ADOF8V ","B5ADOF8WVS ","B5ADOF90A ","B5ADOF90ADD", &
+ "B5ADOF90D ","B5ADOF90HDS","B5ADOF90RDT","B5ADOF90V ","B5ADOF90WVS","B5ADOF91A ","B5ADOF91ADD", &
+ "B5ADOF91D ","B5ADOF91HDS","B5ADOF91RDT","B5ADOF91V ","B5ADOF91WVS","B5ADOF92A ","B5ADOF92ADD", &
+ "B5ADOF92D ","B5ADOF92HDS","B5ADOF92RDT","B5ADOF92V ","B5ADOF92WVS","B5ADOF93A ","B5ADOF93ADD", &
+ "B5ADOF93D ","B5ADOF93HDS","B5ADOF93RDT","B5ADOF93V ","B5ADOF93WVS","B5ADOF94A ","B5ADOF94ADD", &
+ "B5ADOF94D ","B5ADOF94HDS","B5ADOF94RDT","B5ADOF94V ","B5ADOF94WVS","B5ADOF95A ","B5ADOF95ADD", &
+ "B5ADOF95D ","B5ADOF95HDS","B5ADOF95RDT","B5ADOF95V ","B5ADOF95WVS","B5ADOF96A ","B5ADOF96ADD", &
+ "B5ADOF96D ","B5ADOF96HDS","B5ADOF96RDT","B5ADOF96V ","B5ADOF96WVS","B5ADOF97A ","B5ADOF97ADD", &
+ "B5ADOF97D ","B5ADOF97HDS","B5ADOF97RDT","B5ADOF97V ","B5ADOF97WVS","B5ADOF98A ","B5ADOF98ADD", &
+ "B5ADOF98D ","B5ADOF98HDS","B5ADOF98RDT","B5ADOF98V ","B5ADOF98WVS","B5ADOF99A ","B5ADOF99ADD", &
+ "B5ADOF99D ","B5ADOF99HDS","B5ADOF99RDT","B5ADOF99V ","B5ADOF99WVS","B5ADOF9A ","B5ADOF9ADD ", &
+ "B5ADOF9D ","B5ADOF9HDS ","B5ADOF9RDT ","B5ADOF9V ","B5ADOF9WVS ","B5HDSFXI ","B5HDSFYI ", &
+ "B5HDSFZI ","B5HDSMXI ","B5HDSMYI ","B5HDSMZI ","B5HEAVE ","B5PITCH ","B5RAXI ", &
+ "B5RAYI ","B5RAZI ","B5RDTFXI ","B5RDTFYI ","B5RDTFZI ","B5RDTMXI ","B5RDTMYI ", &
+ "B5RDTMZI ","B5ROLL ","B5RVXI ","B5RVYI ","B5RVZI ","B5SURGE ","B5SWAY ", &
+ "B5TAXI ","B5TAYI ","B5TAZI ","B5TVXI ","B5TVYI ","B5TVZI ","B5WVSF1XI ", &
+ "B5WVSF1YI ","B5WVSF1ZI ","B5WVSF2XI ","B5WVSF2YI ","B5WVSF2ZI ","B5WVSFXI ","B5WVSFYI ", &
+ "B5WVSFZI ","B5WVSM1XI ","B5WVSM1YI ","B5WVSM1ZI ","B5WVSM2XI ","B5WVSM2YI ","B5WVSM2ZI ", &
+ "B5WVSMXI ","B5WVSMYI ","B5WVSMZI ","B5YAW ","B6ADDFXI ","B6ADDFYI ","B6ADDFZI ", &
+ "B6ADDMXI ","B6ADDMYI ","B6ADDMZI ","B6ADOF10A ","B6ADOF10ADD","B6ADOF10D ","B6ADOF10HDS", &
+ "B6ADOF10RDT","B6ADOF10V ","B6ADOF10WVS","B6ADOF11A ","B6ADOF11ADD","B6ADOF11D ","B6ADOF11HDS", &
+ "B6ADOF11RDT","B6ADOF11V ","B6ADOF11WVS","B6ADOF12A ","B6ADOF12ADD","B6ADOF12D ","B6ADOF12HDS", &
+ "B6ADOF12RDT","B6ADOF12V ","B6ADOF12WVS","B6ADOF13A ","B6ADOF13ADD","B6ADOF13D ","B6ADOF13HDS", &
+ "B6ADOF13RDT","B6ADOF13V ","B6ADOF13WVS","B6ADOF14A ","B6ADOF14ADD","B6ADOF14D ","B6ADOF14HDS", &
+ "B6ADOF14RDT","B6ADOF14V ","B6ADOF14WVS","B6ADOF15A ","B6ADOF15ADD","B6ADOF15D ","B6ADOF15HDS", &
+ "B6ADOF15RDT","B6ADOF15V ","B6ADOF15WVS","B6ADOF16A ","B6ADOF16ADD","B6ADOF16D ","B6ADOF16HDS", &
+ "B6ADOF16RDT","B6ADOF16V ","B6ADOF16WVS","B6ADOF17A ","B6ADOF17ADD","B6ADOF17D ","B6ADOF17HDS", &
+ "B6ADOF17RDT","B6ADOF17V ","B6ADOF17WVS","B6ADOF18A ","B6ADOF18ADD","B6ADOF18D ","B6ADOF18HDS", &
+ "B6ADOF18RDT","B6ADOF18V ","B6ADOF18WVS","B6ADOF19A ","B6ADOF19ADD","B6ADOF19D ","B6ADOF19HDS", &
+ "B6ADOF19RDT","B6ADOF19V ","B6ADOF19WVS","B6ADOF1A ","B6ADOF1ADD ","B6ADOF1D ","B6ADOF1HDS ", &
+ "B6ADOF1RDT ","B6ADOF1V ","B6ADOF1WVS ","B6ADOF20A ","B6ADOF20ADD","B6ADOF20D ","B6ADOF20HDS", &
+ "B6ADOF20RDT","B6ADOF20V ","B6ADOF20WVS","B6ADOF21A ","B6ADOF21ADD","B6ADOF21D ","B6ADOF21HDS", &
+ "B6ADOF21RDT","B6ADOF21V ","B6ADOF21WVS","B6ADOF22A ","B6ADOF22ADD","B6ADOF22D ","B6ADOF22HDS", &
+ "B6ADOF22RDT","B6ADOF22V ","B6ADOF22WVS","B6ADOF23A ","B6ADOF23ADD","B6ADOF23D ","B6ADOF23HDS", &
+ "B6ADOF23RDT","B6ADOF23V ","B6ADOF23WVS","B6ADOF24A ","B6ADOF24ADD","B6ADOF24D ","B6ADOF24HDS", &
+ "B6ADOF24RDT","B6ADOF24V ","B6ADOF24WVS","B6ADOF25A ","B6ADOF25ADD","B6ADOF25D ","B6ADOF25HDS", &
+ "B6ADOF25RDT","B6ADOF25V ","B6ADOF25WVS","B6ADOF26A ","B6ADOF26ADD","B6ADOF26D ","B6ADOF26HDS", &
+ "B6ADOF26RDT","B6ADOF26V ","B6ADOF26WVS","B6ADOF27A ","B6ADOF27ADD","B6ADOF27D ","B6ADOF27HDS", &
+ "B6ADOF27RDT","B6ADOF27V ","B6ADOF27WVS","B6ADOF28A ","B6ADOF28ADD","B6ADOF28D ","B6ADOF28HDS", &
+ "B6ADOF28RDT","B6ADOF28V ","B6ADOF28WVS","B6ADOF29A ","B6ADOF29ADD","B6ADOF29D ","B6ADOF29HDS", &
+ "B6ADOF29RDT","B6ADOF29V ","B6ADOF29WVS","B6ADOF2A ","B6ADOF2ADD ","B6ADOF2D ","B6ADOF2HDS ", &
+ "B6ADOF2RDT ","B6ADOF2V ","B6ADOF2WVS ","B6ADOF30A ","B6ADOF30ADD","B6ADOF30D ","B6ADOF30HDS", &
+ "B6ADOF30RDT","B6ADOF30V ","B6ADOF30WVS","B6ADOF31A ","B6ADOF31ADD","B6ADOF31D ","B6ADOF31HDS", &
+ "B6ADOF31RDT","B6ADOF31V ","B6ADOF31WVS","B6ADOF32A ","B6ADOF32ADD","B6ADOF32D ","B6ADOF32HDS", &
+ "B6ADOF32RDT","B6ADOF32V ","B6ADOF32WVS","B6ADOF33A ","B6ADOF33ADD","B6ADOF33D ","B6ADOF33HDS", &
+ "B6ADOF33RDT","B6ADOF33V ","B6ADOF33WVS","B6ADOF34A ","B6ADOF34ADD","B6ADOF34D ","B6ADOF34HDS", &
+ "B6ADOF34RDT","B6ADOF34V ","B6ADOF34WVS","B6ADOF35A ","B6ADOF35ADD","B6ADOF35D ","B6ADOF35HDS", &
+ "B6ADOF35RDT","B6ADOF35V ","B6ADOF35WVS","B6ADOF36A ","B6ADOF36ADD","B6ADOF36D ","B6ADOF36HDS", &
+ "B6ADOF36RDT","B6ADOF36V ","B6ADOF36WVS","B6ADOF37A ","B6ADOF37ADD","B6ADOF37D ","B6ADOF37HDS", &
+ "B6ADOF37RDT","B6ADOF37V ","B6ADOF37WVS","B6ADOF38A ","B6ADOF38ADD","B6ADOF38D ","B6ADOF38HDS", &
+ "B6ADOF38RDT","B6ADOF38V ","B6ADOF38WVS","B6ADOF39A ","B6ADOF39ADD","B6ADOF39D ","B6ADOF39HDS", &
+ "B6ADOF39RDT","B6ADOF39V ","B6ADOF39WVS","B6ADOF3A ","B6ADOF3ADD ","B6ADOF3D ","B6ADOF3HDS ", &
+ "B6ADOF3RDT ","B6ADOF3V ","B6ADOF3WVS ","B6ADOF40A ","B6ADOF40ADD","B6ADOF40D ","B6ADOF40HDS", &
+ "B6ADOF40RDT","B6ADOF40V ","B6ADOF40WVS","B6ADOF41A ","B6ADOF41ADD","B6ADOF41D ","B6ADOF41HDS", &
+ "B6ADOF41RDT","B6ADOF41V ","B6ADOF41WVS","B6ADOF42A ","B6ADOF42ADD","B6ADOF42D ","B6ADOF42HDS", &
+ "B6ADOF42RDT","B6ADOF42V ","B6ADOF42WVS","B6ADOF43A ","B6ADOF43ADD","B6ADOF43D ","B6ADOF43HDS", &
+ "B6ADOF43RDT","B6ADOF43V ","B6ADOF43WVS","B6ADOF44A ","B6ADOF44ADD","B6ADOF44D ","B6ADOF44HDS", &
+ "B6ADOF44RDT","B6ADOF44V ","B6ADOF44WVS","B6ADOF45A ","B6ADOF45ADD","B6ADOF45D ","B6ADOF45HDS", &
+ "B6ADOF45RDT","B6ADOF45V ","B6ADOF45WVS","B6ADOF46A ","B6ADOF46ADD","B6ADOF46D ","B6ADOF46HDS", &
+ "B6ADOF46RDT","B6ADOF46V ","B6ADOF46WVS","B6ADOF47A ","B6ADOF47ADD","B6ADOF47D ","B6ADOF47HDS", &
+ "B6ADOF47RDT","B6ADOF47V ","B6ADOF47WVS","B6ADOF48A ","B6ADOF48ADD","B6ADOF48D ","B6ADOF48HDS", &
+ "B6ADOF48RDT","B6ADOF48V ","B6ADOF48WVS","B6ADOF49A ","B6ADOF49ADD","B6ADOF49D ","B6ADOF49HDS", &
+ "B6ADOF49RDT","B6ADOF49V ","B6ADOF49WVS","B6ADOF4A ","B6ADOF4ADD ","B6ADOF4D ","B6ADOF4HDS ", &
+ "B6ADOF4RDT ","B6ADOF4V ","B6ADOF4WVS ","B6ADOF50A ","B6ADOF50ADD","B6ADOF50D ","B6ADOF50HDS", &
+ "B6ADOF50RDT","B6ADOF50V ","B6ADOF50WVS","B6ADOF51A ","B6ADOF51ADD","B6ADOF51D ","B6ADOF51HDS", &
+ "B6ADOF51RDT","B6ADOF51V ","B6ADOF51WVS","B6ADOF52A ","B6ADOF52ADD","B6ADOF52D ","B6ADOF52HDS", &
+ "B6ADOF52RDT","B6ADOF52V ","B6ADOF52WVS","B6ADOF53A ","B6ADOF53ADD","B6ADOF53D ","B6ADOF53HDS", &
+ "B6ADOF53RDT","B6ADOF53V ","B6ADOF53WVS","B6ADOF54A ","B6ADOF54ADD","B6ADOF54D ","B6ADOF54HDS", &
+ "B6ADOF54RDT","B6ADOF54V ","B6ADOF54WVS","B6ADOF55A ","B6ADOF55ADD","B6ADOF55D ","B6ADOF55HDS", &
+ "B6ADOF55RDT","B6ADOF55V ","B6ADOF55WVS","B6ADOF56A ","B6ADOF56ADD","B6ADOF56D ","B6ADOF56HDS", &
+ "B6ADOF56RDT","B6ADOF56V ","B6ADOF56WVS","B6ADOF57A ","B6ADOF57ADD","B6ADOF57D ","B6ADOF57HDS", &
+ "B6ADOF57RDT","B6ADOF57V ","B6ADOF57WVS","B6ADOF58A ","B6ADOF58ADD","B6ADOF58D ","B6ADOF58HDS", &
+ "B6ADOF58RDT","B6ADOF58V ","B6ADOF58WVS","B6ADOF59A ","B6ADOF59ADD","B6ADOF59D ","B6ADOF59HDS", &
+ "B6ADOF59RDT","B6ADOF59V ","B6ADOF59WVS","B6ADOF5A ","B6ADOF5ADD ","B6ADOF5D ","B6ADOF5HDS ", &
+ "B6ADOF5RDT ","B6ADOF5V ","B6ADOF5WVS ","B6ADOF60A ","B6ADOF60ADD","B6ADOF60D ","B6ADOF60HDS", &
+ "B6ADOF60RDT","B6ADOF60V ","B6ADOF60WVS","B6ADOF61A ","B6ADOF61ADD","B6ADOF61D ","B6ADOF61HDS", &
+ "B6ADOF61RDT","B6ADOF61V ","B6ADOF61WVS","B6ADOF62A ","B6ADOF62ADD","B6ADOF62D ","B6ADOF62HDS", &
+ "B6ADOF62RDT","B6ADOF62V ","B6ADOF62WVS","B6ADOF63A ","B6ADOF63ADD","B6ADOF63D ","B6ADOF63HDS", &
+ "B6ADOF63RDT","B6ADOF63V ","B6ADOF63WVS","B6ADOF64A ","B6ADOF64ADD","B6ADOF64D ","B6ADOF64HDS", &
+ "B6ADOF64RDT","B6ADOF64V ","B6ADOF64WVS","B6ADOF65A ","B6ADOF65ADD","B6ADOF65D ","B6ADOF65HDS", &
+ "B6ADOF65RDT","B6ADOF65V ","B6ADOF65WVS","B6ADOF66A ","B6ADOF66ADD","B6ADOF66D ","B6ADOF66HDS", &
+ "B6ADOF66RDT","B6ADOF66V ","B6ADOF66WVS","B6ADOF67A ","B6ADOF67ADD","B6ADOF67D ","B6ADOF67HDS", &
+ "B6ADOF67RDT","B6ADOF67V ","B6ADOF67WVS","B6ADOF68A ","B6ADOF68ADD","B6ADOF68D ","B6ADOF68HDS", &
+ "B6ADOF68RDT","B6ADOF68V ","B6ADOF68WVS","B6ADOF69A ","B6ADOF69ADD","B6ADOF69D ","B6ADOF69HDS", &
+ "B6ADOF69RDT","B6ADOF69V ","B6ADOF69WVS","B6ADOF6A ","B6ADOF6ADD ","B6ADOF6D ","B6ADOF6HDS ", &
+ "B6ADOF6RDT ","B6ADOF6V ","B6ADOF6WVS ","B6ADOF70A ","B6ADOF70ADD","B6ADOF70D ","B6ADOF70HDS", &
+ "B6ADOF70RDT","B6ADOF70V ","B6ADOF70WVS","B6ADOF71A ","B6ADOF71ADD","B6ADOF71D ","B6ADOF71HDS", &
+ "B6ADOF71RDT","B6ADOF71V ","B6ADOF71WVS","B6ADOF72A ","B6ADOF72ADD","B6ADOF72D ","B6ADOF72HDS", &
+ "B6ADOF72RDT","B6ADOF72V ","B6ADOF72WVS","B6ADOF73A ","B6ADOF73ADD","B6ADOF73D ","B6ADOF73HDS", &
+ "B6ADOF73RDT","B6ADOF73V ","B6ADOF73WVS","B6ADOF74A ","B6ADOF74ADD","B6ADOF74D ","B6ADOF74HDS", &
+ "B6ADOF74RDT","B6ADOF74V ","B6ADOF74WVS","B6ADOF75A ","B6ADOF75ADD","B6ADOF75D ","B6ADOF75HDS", &
+ "B6ADOF75RDT","B6ADOF75V ","B6ADOF75WVS","B6ADOF76A ","B6ADOF76ADD","B6ADOF76D ","B6ADOF76HDS", &
+ "B6ADOF76RDT","B6ADOF76V ","B6ADOF76WVS","B6ADOF77A ","B6ADOF77ADD","B6ADOF77D ","B6ADOF77HDS", &
+ "B6ADOF77RDT","B6ADOF77V ","B6ADOF77WVS","B6ADOF78A ","B6ADOF78ADD","B6ADOF78D ","B6ADOF78HDS", &
+ "B6ADOF78RDT","B6ADOF78V ","B6ADOF78WVS","B6ADOF79A ","B6ADOF79ADD","B6ADOF79D ","B6ADOF79HDS", &
+ "B6ADOF79RDT","B6ADOF79V ","B6ADOF79WVS","B6ADOF7A ","B6ADOF7ADD ","B6ADOF7D ","B6ADOF7HDS ", &
+ "B6ADOF7RDT ","B6ADOF7V ","B6ADOF7WVS ","B6ADOF80A ","B6ADOF80ADD","B6ADOF80D ","B6ADOF80HDS", &
+ "B6ADOF80RDT","B6ADOF80V ","B6ADOF80WVS","B6ADOF81A ","B6ADOF81ADD","B6ADOF81D ","B6ADOF81HDS", &
+ "B6ADOF81RDT","B6ADOF81V ","B6ADOF81WVS","B6ADOF82A ","B6ADOF82ADD","B6ADOF82D ","B6ADOF82HDS", &
+ "B6ADOF82RDT","B6ADOF82V ","B6ADOF82WVS","B6ADOF83A ","B6ADOF83ADD","B6ADOF83D ","B6ADOF83HDS", &
+ "B6ADOF83RDT","B6ADOF83V ","B6ADOF83WVS","B6ADOF84A ","B6ADOF84ADD","B6ADOF84D ","B6ADOF84HDS", &
+ "B6ADOF84RDT","B6ADOF84V ","B6ADOF84WVS","B6ADOF85A ","B6ADOF85ADD","B6ADOF85D ","B6ADOF85HDS", &
+ "B6ADOF85RDT","B6ADOF85V ","B6ADOF85WVS","B6ADOF86A ","B6ADOF86ADD","B6ADOF86D ","B6ADOF86HDS", &
+ "B6ADOF86RDT","B6ADOF86V ","B6ADOF86WVS","B6ADOF87A ","B6ADOF87ADD","B6ADOF87D ","B6ADOF87HDS", &
+ "B6ADOF87RDT","B6ADOF87V ","B6ADOF87WVS","B6ADOF88A ","B6ADOF88ADD","B6ADOF88D ","B6ADOF88HDS", &
+ "B6ADOF88RDT","B6ADOF88V ","B6ADOF88WVS","B6ADOF89A ","B6ADOF89ADD","B6ADOF89D ","B6ADOF89HDS", &
+ "B6ADOF89RDT","B6ADOF89V ","B6ADOF89WVS","B6ADOF8A ","B6ADOF8ADD ","B6ADOF8D ","B6ADOF8HDS ", &
+ "B6ADOF8RDT ","B6ADOF8V ","B6ADOF8WVS ","B6ADOF90A ","B6ADOF90ADD","B6ADOF90D ","B6ADOF90HDS", &
+ "B6ADOF90RDT","B6ADOF90V ","B6ADOF90WVS","B6ADOF91A ","B6ADOF91ADD","B6ADOF91D ","B6ADOF91HDS", &
+ "B6ADOF91RDT","B6ADOF91V ","B6ADOF91WVS","B6ADOF92A ","B6ADOF92ADD","B6ADOF92D ","B6ADOF92HDS", &
+ "B6ADOF92RDT","B6ADOF92V ","B6ADOF92WVS","B6ADOF93A ","B6ADOF93ADD","B6ADOF93D ","B6ADOF93HDS", &
+ "B6ADOF93RDT","B6ADOF93V ","B6ADOF93WVS","B6ADOF94A ","B6ADOF94ADD","B6ADOF94D ","B6ADOF94HDS", &
+ "B6ADOF94RDT","B6ADOF94V ","B6ADOF94WVS","B6ADOF95A ","B6ADOF95ADD","B6ADOF95D ","B6ADOF95HDS", &
+ "B6ADOF95RDT","B6ADOF95V ","B6ADOF95WVS","B6ADOF96A ","B6ADOF96ADD","B6ADOF96D ","B6ADOF96HDS", &
+ "B6ADOF96RDT","B6ADOF96V ","B6ADOF96WVS","B6ADOF97A ","B6ADOF97ADD","B6ADOF97D ","B6ADOF97HDS", &
+ "B6ADOF97RDT","B6ADOF97V ","B6ADOF97WVS","B6ADOF98A ","B6ADOF98ADD","B6ADOF98D ","B6ADOF98HDS", &
+ "B6ADOF98RDT","B6ADOF98V ","B6ADOF98WVS","B6ADOF99A ","B6ADOF99ADD","B6ADOF99D ","B6ADOF99HDS", &
+ "B6ADOF99RDT","B6ADOF99V ","B6ADOF99WVS","B6ADOF9A ","B6ADOF9ADD ","B6ADOF9D ","B6ADOF9HDS ", &
+ "B6ADOF9RDT ","B6ADOF9V ","B6ADOF9WVS ","B6HDSFXI ","B6HDSFYI ","B6HDSFZI ","B6HDSMXI ", &
+ "B6HDSMYI ","B6HDSMZI ","B6HEAVE ","B6PITCH ","B6RAXI ","B6RAYI ","B6RAZI ", &
+ "B6RDTFXI ","B6RDTFYI ","B6RDTFZI ","B6RDTMXI ","B6RDTMYI ","B6RDTMZI ","B6ROLL ", &
+ "B6RVXI ","B6RVYI ","B6RVZI ","B6SURGE ","B6SWAY ","B6TAXI ","B6TAYI ", &
+ "B6TAZI ","B6TVXI ","B6TVYI ","B6TVZI ","B6WVSF1XI ","B6WVSF1YI ","B6WVSF1ZI ", &
+ "B6WVSF2XI ","B6WVSF2YI ","B6WVSF2ZI ","B6WVSFXI ","B6WVSFYI ","B6WVSFZI ","B6WVSM1XI ", &
+ "B6WVSM1YI ","B6WVSM1ZI ","B6WVSM2XI ","B6WVSM2YI ","B6WVSM2ZI ","B6WVSMXI ","B6WVSMYI ", &
+ "B6WVSMZI ","B6YAW ","B7ADDFXI ","B7ADDFYI ","B7ADDFZI ","B7ADDMXI ","B7ADDMYI ", &
+ "B7ADDMZI ","B7ADOF10A ","B7ADOF10ADD","B7ADOF10D ","B7ADOF10HDS","B7ADOF10RDT","B7ADOF10V ", &
+ "B7ADOF10WVS","B7ADOF11A ","B7ADOF11ADD","B7ADOF11D ","B7ADOF11HDS","B7ADOF11RDT","B7ADOF11V ", &
+ "B7ADOF11WVS","B7ADOF12A ","B7ADOF12ADD","B7ADOF12D ","B7ADOF12HDS","B7ADOF12RDT","B7ADOF12V ", &
+ "B7ADOF12WVS","B7ADOF13A ","B7ADOF13ADD","B7ADOF13D ","B7ADOF13HDS","B7ADOF13RDT","B7ADOF13V ", &
+ "B7ADOF13WVS","B7ADOF14A ","B7ADOF14ADD","B7ADOF14D ","B7ADOF14HDS","B7ADOF14RDT","B7ADOF14V ", &
+ "B7ADOF14WVS","B7ADOF15A ","B7ADOF15ADD","B7ADOF15D ","B7ADOF15HDS","B7ADOF15RDT","B7ADOF15V ", &
+ "B7ADOF15WVS","B7ADOF16A ","B7ADOF16ADD","B7ADOF16D ","B7ADOF16HDS","B7ADOF16RDT","B7ADOF16V ", &
+ "B7ADOF16WVS","B7ADOF17A ","B7ADOF17ADD","B7ADOF17D ","B7ADOF17HDS","B7ADOF17RDT","B7ADOF17V ", &
+ "B7ADOF17WVS","B7ADOF18A ","B7ADOF18ADD","B7ADOF18D ","B7ADOF18HDS","B7ADOF18RDT","B7ADOF18V ", &
+ "B7ADOF18WVS","B7ADOF19A ","B7ADOF19ADD","B7ADOF19D ","B7ADOF19HDS","B7ADOF19RDT","B7ADOF19V ", &
+ "B7ADOF19WVS","B7ADOF1A ","B7ADOF1ADD ","B7ADOF1D ","B7ADOF1HDS ","B7ADOF1RDT ","B7ADOF1V ", &
+ "B7ADOF1WVS ","B7ADOF20A ","B7ADOF20ADD","B7ADOF20D ","B7ADOF20HDS","B7ADOF20RDT","B7ADOF20V ", &
+ "B7ADOF20WVS","B7ADOF21A ","B7ADOF21ADD","B7ADOF21D ","B7ADOF21HDS","B7ADOF21RDT","B7ADOF21V ", &
+ "B7ADOF21WVS","B7ADOF22A ","B7ADOF22ADD","B7ADOF22D ","B7ADOF22HDS","B7ADOF22RDT","B7ADOF22V ", &
+ "B7ADOF22WVS","B7ADOF23A ","B7ADOF23ADD","B7ADOF23D ","B7ADOF23HDS","B7ADOF23RDT","B7ADOF23V ", &
+ "B7ADOF23WVS","B7ADOF24A ","B7ADOF24ADD","B7ADOF24D ","B7ADOF24HDS","B7ADOF24RDT","B7ADOF24V ", &
+ "B7ADOF24WVS","B7ADOF25A ","B7ADOF25ADD","B7ADOF25D ","B7ADOF25HDS","B7ADOF25RDT","B7ADOF25V ", &
+ "B7ADOF25WVS","B7ADOF26A ","B7ADOF26ADD","B7ADOF26D ","B7ADOF26HDS","B7ADOF26RDT","B7ADOF26V ", &
+ "B7ADOF26WVS","B7ADOF27A ","B7ADOF27ADD","B7ADOF27D ","B7ADOF27HDS","B7ADOF27RDT","B7ADOF27V ", &
+ "B7ADOF27WVS","B7ADOF28A ","B7ADOF28ADD","B7ADOF28D ","B7ADOF28HDS","B7ADOF28RDT","B7ADOF28V ", &
+ "B7ADOF28WVS","B7ADOF29A ","B7ADOF29ADD","B7ADOF29D ","B7ADOF29HDS","B7ADOF29RDT","B7ADOF29V ", &
+ "B7ADOF29WVS","B7ADOF2A ","B7ADOF2ADD ","B7ADOF2D ","B7ADOF2HDS ","B7ADOF2RDT ","B7ADOF2V ", &
+ "B7ADOF2WVS ","B7ADOF30A ","B7ADOF30ADD","B7ADOF30D ","B7ADOF30HDS","B7ADOF30RDT","B7ADOF30V ", &
+ "B7ADOF30WVS","B7ADOF31A ","B7ADOF31ADD","B7ADOF31D ","B7ADOF31HDS","B7ADOF31RDT","B7ADOF31V ", &
+ "B7ADOF31WVS","B7ADOF32A ","B7ADOF32ADD","B7ADOF32D ","B7ADOF32HDS","B7ADOF32RDT","B7ADOF32V ", &
+ "B7ADOF32WVS","B7ADOF33A ","B7ADOF33ADD","B7ADOF33D ","B7ADOF33HDS","B7ADOF33RDT","B7ADOF33V ", &
+ "B7ADOF33WVS","B7ADOF34A ","B7ADOF34ADD","B7ADOF34D ","B7ADOF34HDS","B7ADOF34RDT","B7ADOF34V ", &
+ "B7ADOF34WVS","B7ADOF35A ","B7ADOF35ADD","B7ADOF35D ","B7ADOF35HDS","B7ADOF35RDT","B7ADOF35V ", &
+ "B7ADOF35WVS","B7ADOF36A ","B7ADOF36ADD","B7ADOF36D ","B7ADOF36HDS","B7ADOF36RDT","B7ADOF36V ", &
+ "B7ADOF36WVS","B7ADOF37A ","B7ADOF37ADD","B7ADOF37D ","B7ADOF37HDS","B7ADOF37RDT","B7ADOF37V ", &
+ "B7ADOF37WVS","B7ADOF38A ","B7ADOF38ADD","B7ADOF38D ","B7ADOF38HDS","B7ADOF38RDT","B7ADOF38V ", &
+ "B7ADOF38WVS","B7ADOF39A ","B7ADOF39ADD","B7ADOF39D ","B7ADOF39HDS","B7ADOF39RDT","B7ADOF39V ", &
+ "B7ADOF39WVS","B7ADOF3A ","B7ADOF3ADD ","B7ADOF3D ","B7ADOF3HDS ","B7ADOF3RDT ","B7ADOF3V ", &
+ "B7ADOF3WVS ","B7ADOF40A ","B7ADOF40ADD","B7ADOF40D ","B7ADOF40HDS","B7ADOF40RDT","B7ADOF40V ", &
+ "B7ADOF40WVS","B7ADOF41A ","B7ADOF41ADD","B7ADOF41D ","B7ADOF41HDS","B7ADOF41RDT","B7ADOF41V ", &
+ "B7ADOF41WVS","B7ADOF42A ","B7ADOF42ADD","B7ADOF42D ","B7ADOF42HDS","B7ADOF42RDT","B7ADOF42V ", &
+ "B7ADOF42WVS","B7ADOF43A ","B7ADOF43ADD","B7ADOF43D ","B7ADOF43HDS","B7ADOF43RDT","B7ADOF43V ", &
+ "B7ADOF43WVS","B7ADOF44A ","B7ADOF44ADD","B7ADOF44D ","B7ADOF44HDS","B7ADOF44RDT","B7ADOF44V ", &
+ "B7ADOF44WVS","B7ADOF45A ","B7ADOF45ADD","B7ADOF45D ","B7ADOF45HDS","B7ADOF45RDT","B7ADOF45V ", &
+ "B7ADOF45WVS","B7ADOF46A ","B7ADOF46ADD","B7ADOF46D ","B7ADOF46HDS","B7ADOF46RDT","B7ADOF46V ", &
+ "B7ADOF46WVS","B7ADOF47A ","B7ADOF47ADD","B7ADOF47D ","B7ADOF47HDS","B7ADOF47RDT","B7ADOF47V ", &
+ "B7ADOF47WVS","B7ADOF48A ","B7ADOF48ADD","B7ADOF48D ","B7ADOF48HDS","B7ADOF48RDT","B7ADOF48V ", &
+ "B7ADOF48WVS","B7ADOF49A ","B7ADOF49ADD","B7ADOF49D ","B7ADOF49HDS","B7ADOF49RDT","B7ADOF49V ", &
+ "B7ADOF49WVS","B7ADOF4A ","B7ADOF4ADD ","B7ADOF4D ","B7ADOF4HDS ","B7ADOF4RDT ","B7ADOF4V ", &
+ "B7ADOF4WVS ","B7ADOF50A ","B7ADOF50ADD","B7ADOF50D ","B7ADOF50HDS","B7ADOF50RDT","B7ADOF50V ", &
+ "B7ADOF50WVS","B7ADOF51A ","B7ADOF51ADD","B7ADOF51D ","B7ADOF51HDS","B7ADOF51RDT","B7ADOF51V ", &
+ "B7ADOF51WVS","B7ADOF52A ","B7ADOF52ADD","B7ADOF52D ","B7ADOF52HDS","B7ADOF52RDT","B7ADOF52V ", &
+ "B7ADOF52WVS","B7ADOF53A ","B7ADOF53ADD","B7ADOF53D ","B7ADOF53HDS","B7ADOF53RDT","B7ADOF53V ", &
+ "B7ADOF53WVS","B7ADOF54A ","B7ADOF54ADD","B7ADOF54D ","B7ADOF54HDS","B7ADOF54RDT","B7ADOF54V ", &
+ "B7ADOF54WVS","B7ADOF55A ","B7ADOF55ADD","B7ADOF55D ","B7ADOF55HDS","B7ADOF55RDT","B7ADOF55V ", &
+ "B7ADOF55WVS","B7ADOF56A ","B7ADOF56ADD","B7ADOF56D ","B7ADOF56HDS","B7ADOF56RDT","B7ADOF56V ", &
+ "B7ADOF56WVS","B7ADOF57A ","B7ADOF57ADD","B7ADOF57D ","B7ADOF57HDS","B7ADOF57RDT","B7ADOF57V ", &
+ "B7ADOF57WVS","B7ADOF58A ","B7ADOF58ADD","B7ADOF58D ","B7ADOF58HDS","B7ADOF58RDT","B7ADOF58V ", &
+ "B7ADOF58WVS","B7ADOF59A ","B7ADOF59ADD","B7ADOF59D ","B7ADOF59HDS","B7ADOF59RDT","B7ADOF59V ", &
+ "B7ADOF59WVS","B7ADOF5A ","B7ADOF5ADD ","B7ADOF5D ","B7ADOF5HDS ","B7ADOF5RDT ","B7ADOF5V ", &
+ "B7ADOF5WVS ","B7ADOF60A ","B7ADOF60ADD","B7ADOF60D ","B7ADOF60HDS","B7ADOF60RDT","B7ADOF60V ", &
+ "B7ADOF60WVS","B7ADOF61A ","B7ADOF61ADD","B7ADOF61D ","B7ADOF61HDS","B7ADOF61RDT","B7ADOF61V ", &
+ "B7ADOF61WVS","B7ADOF62A ","B7ADOF62ADD","B7ADOF62D ","B7ADOF62HDS","B7ADOF62RDT","B7ADOF62V ", &
+ "B7ADOF62WVS","B7ADOF63A ","B7ADOF63ADD","B7ADOF63D ","B7ADOF63HDS","B7ADOF63RDT","B7ADOF63V ", &
+ "B7ADOF63WVS","B7ADOF64A ","B7ADOF64ADD","B7ADOF64D ","B7ADOF64HDS","B7ADOF64RDT","B7ADOF64V ", &
+ "B7ADOF64WVS","B7ADOF65A ","B7ADOF65ADD","B7ADOF65D ","B7ADOF65HDS","B7ADOF65RDT","B7ADOF65V ", &
+ "B7ADOF65WVS","B7ADOF66A ","B7ADOF66ADD","B7ADOF66D ","B7ADOF66HDS","B7ADOF66RDT","B7ADOF66V ", &
+ "B7ADOF66WVS","B7ADOF67A ","B7ADOF67ADD","B7ADOF67D ","B7ADOF67HDS","B7ADOF67RDT","B7ADOF67V ", &
+ "B7ADOF67WVS","B7ADOF68A ","B7ADOF68ADD","B7ADOF68D ","B7ADOF68HDS","B7ADOF68RDT","B7ADOF68V ", &
+ "B7ADOF68WVS","B7ADOF69A ","B7ADOF69ADD","B7ADOF69D ","B7ADOF69HDS","B7ADOF69RDT","B7ADOF69V ", &
+ "B7ADOF69WVS","B7ADOF6A ","B7ADOF6ADD ","B7ADOF6D ","B7ADOF6HDS ","B7ADOF6RDT ","B7ADOF6V ", &
+ "B7ADOF6WVS ","B7ADOF70A ","B7ADOF70ADD","B7ADOF70D ","B7ADOF70HDS","B7ADOF70RDT","B7ADOF70V ", &
+ "B7ADOF70WVS","B7ADOF71A ","B7ADOF71ADD","B7ADOF71D ","B7ADOF71HDS","B7ADOF71RDT","B7ADOF71V ", &
+ "B7ADOF71WVS","B7ADOF72A ","B7ADOF72ADD","B7ADOF72D ","B7ADOF72HDS","B7ADOF72RDT","B7ADOF72V ", &
+ "B7ADOF72WVS","B7ADOF73A ","B7ADOF73ADD","B7ADOF73D ","B7ADOF73HDS","B7ADOF73RDT","B7ADOF73V ", &
+ "B7ADOF73WVS","B7ADOF74A ","B7ADOF74ADD","B7ADOF74D ","B7ADOF74HDS","B7ADOF74RDT","B7ADOF74V ", &
+ "B7ADOF74WVS","B7ADOF75A ","B7ADOF75ADD","B7ADOF75D ","B7ADOF75HDS","B7ADOF75RDT","B7ADOF75V ", &
+ "B7ADOF75WVS","B7ADOF76A ","B7ADOF76ADD","B7ADOF76D ","B7ADOF76HDS","B7ADOF76RDT","B7ADOF76V ", &
+ "B7ADOF76WVS","B7ADOF77A ","B7ADOF77ADD","B7ADOF77D ","B7ADOF77HDS","B7ADOF77RDT","B7ADOF77V ", &
+ "B7ADOF77WVS","B7ADOF78A ","B7ADOF78ADD","B7ADOF78D ","B7ADOF78HDS","B7ADOF78RDT","B7ADOF78V ", &
+ "B7ADOF78WVS","B7ADOF79A ","B7ADOF79ADD","B7ADOF79D ","B7ADOF79HDS","B7ADOF79RDT","B7ADOF79V ", &
+ "B7ADOF79WVS","B7ADOF7A ","B7ADOF7ADD ","B7ADOF7D ","B7ADOF7HDS ","B7ADOF7RDT ","B7ADOF7V ", &
+ "B7ADOF7WVS ","B7ADOF80A ","B7ADOF80ADD","B7ADOF80D ","B7ADOF80HDS","B7ADOF80RDT","B7ADOF80V ", &
+ "B7ADOF80WVS","B7ADOF81A ","B7ADOF81ADD","B7ADOF81D ","B7ADOF81HDS","B7ADOF81RDT","B7ADOF81V ", &
+ "B7ADOF81WVS","B7ADOF82A ","B7ADOF82ADD","B7ADOF82D ","B7ADOF82HDS","B7ADOF82RDT","B7ADOF82V ", &
+ "B7ADOF82WVS","B7ADOF83A ","B7ADOF83ADD","B7ADOF83D ","B7ADOF83HDS","B7ADOF83RDT","B7ADOF83V ", &
+ "B7ADOF83WVS","B7ADOF84A ","B7ADOF84ADD","B7ADOF84D ","B7ADOF84HDS","B7ADOF84RDT","B7ADOF84V "/)
+ CHARACTER(OutStrLenM1), PARAMETER :: ValidParamAry4(1686) = (/ & ! This lists the names of the allowed parameters, which must be sorted alphabetically
+ "B7ADOF84WVS","B7ADOF85A ","B7ADOF85ADD","B7ADOF85D ","B7ADOF85HDS","B7ADOF85RDT","B7ADOF85V ", &
+ "B7ADOF85WVS","B7ADOF86A ","B7ADOF86ADD","B7ADOF86D ","B7ADOF86HDS","B7ADOF86RDT","B7ADOF86V ", &
+ "B7ADOF86WVS","B7ADOF87A ","B7ADOF87ADD","B7ADOF87D ","B7ADOF87HDS","B7ADOF87RDT","B7ADOF87V ", &
+ "B7ADOF87WVS","B7ADOF88A ","B7ADOF88ADD","B7ADOF88D ","B7ADOF88HDS","B7ADOF88RDT","B7ADOF88V ", &
+ "B7ADOF88WVS","B7ADOF89A ","B7ADOF89ADD","B7ADOF89D ","B7ADOF89HDS","B7ADOF89RDT","B7ADOF89V ", &
+ "B7ADOF89WVS","B7ADOF8A ","B7ADOF8ADD ","B7ADOF8D ","B7ADOF8HDS ","B7ADOF8RDT ","B7ADOF8V ", &
+ "B7ADOF8WVS ","B7ADOF90A ","B7ADOF90ADD","B7ADOF90D ","B7ADOF90HDS","B7ADOF90RDT","B7ADOF90V ", &
+ "B7ADOF90WVS","B7ADOF91A ","B7ADOF91ADD","B7ADOF91D ","B7ADOF91HDS","B7ADOF91RDT","B7ADOF91V ", &
+ "B7ADOF91WVS","B7ADOF92A ","B7ADOF92ADD","B7ADOF92D ","B7ADOF92HDS","B7ADOF92RDT","B7ADOF92V ", &
+ "B7ADOF92WVS","B7ADOF93A ","B7ADOF93ADD","B7ADOF93D ","B7ADOF93HDS","B7ADOF93RDT","B7ADOF93V ", &
+ "B7ADOF93WVS","B7ADOF94A ","B7ADOF94ADD","B7ADOF94D ","B7ADOF94HDS","B7ADOF94RDT","B7ADOF94V ", &
+ "B7ADOF94WVS","B7ADOF95A ","B7ADOF95ADD","B7ADOF95D ","B7ADOF95HDS","B7ADOF95RDT","B7ADOF95V ", &
+ "B7ADOF95WVS","B7ADOF96A ","B7ADOF96ADD","B7ADOF96D ","B7ADOF96HDS","B7ADOF96RDT","B7ADOF96V ", &
+ "B7ADOF96WVS","B7ADOF97A ","B7ADOF97ADD","B7ADOF97D ","B7ADOF97HDS","B7ADOF97RDT","B7ADOF97V ", &
+ "B7ADOF97WVS","B7ADOF98A ","B7ADOF98ADD","B7ADOF98D ","B7ADOF98HDS","B7ADOF98RDT","B7ADOF98V ", &
+ "B7ADOF98WVS","B7ADOF99A ","B7ADOF99ADD","B7ADOF99D ","B7ADOF99HDS","B7ADOF99RDT","B7ADOF99V ", &
+ "B7ADOF99WVS","B7ADOF9A ","B7ADOF9ADD ","B7ADOF9D ","B7ADOF9HDS ","B7ADOF9RDT ","B7ADOF9V ", &
+ "B7ADOF9WVS ","B7HDSFXI ","B7HDSFYI ","B7HDSFZI ","B7HDSMXI ","B7HDSMYI ","B7HDSMZI ", &
+ "B7HEAVE ","B7PITCH ","B7RAXI ","B7RAYI ","B7RAZI ","B7RDTFXI ","B7RDTFYI ", &
+ "B7RDTFZI ","B7RDTMXI ","B7RDTMYI ","B7RDTMZI ","B7ROLL ","B7RVXI ","B7RVYI ", &
+ "B7RVZI ","B7SURGE ","B7SWAY ","B7TAXI ","B7TAYI ","B7TAZI ","B7TVXI ", &
+ "B7TVYI ","B7TVZI ","B7WVSF1XI ","B7WVSF1YI ","B7WVSF1ZI ","B7WVSF2XI ","B7WVSF2YI ", &
+ "B7WVSF2ZI ","B7WVSFXI ","B7WVSFYI ","B7WVSFZI ","B7WVSM1XI ","B7WVSM1YI ","B7WVSM1ZI ", &
+ "B7WVSM2XI ","B7WVSM2YI ","B7WVSM2ZI ","B7WVSMXI ","B7WVSMYI ","B7WVSMZI ","B7YAW ", &
+ "B8ADDFXI ","B8ADDFYI ","B8ADDFZI ","B8ADDMXI ","B8ADDMYI ","B8ADDMZI ","B8ADOF10A ", &
+ "B8ADOF10ADD","B8ADOF10D ","B8ADOF10HDS","B8ADOF10RDT","B8ADOF10V ","B8ADOF10WVS","B8ADOF11A ", &
+ "B8ADOF11ADD","B8ADOF11D ","B8ADOF11HDS","B8ADOF11RDT","B8ADOF11V ","B8ADOF11WVS","B8ADOF12A ", &
+ "B8ADOF12ADD","B8ADOF12D ","B8ADOF12HDS","B8ADOF12RDT","B8ADOF12V ","B8ADOF12WVS","B8ADOF13A ", &
+ "B8ADOF13ADD","B8ADOF13D ","B8ADOF13HDS","B8ADOF13RDT","B8ADOF13V ","B8ADOF13WVS","B8ADOF14A ", &
+ "B8ADOF14ADD","B8ADOF14D ","B8ADOF14HDS","B8ADOF14RDT","B8ADOF14V ","B8ADOF14WVS","B8ADOF15A ", &
+ "B8ADOF15ADD","B8ADOF15D ","B8ADOF15HDS","B8ADOF15RDT","B8ADOF15V ","B8ADOF15WVS","B8ADOF16A ", &
+ "B8ADOF16ADD","B8ADOF16D ","B8ADOF16HDS","B8ADOF16RDT","B8ADOF16V ","B8ADOF16WVS","B8ADOF17A ", &
+ "B8ADOF17ADD","B8ADOF17D ","B8ADOF17HDS","B8ADOF17RDT","B8ADOF17V ","B8ADOF17WVS","B8ADOF18A ", &
+ "B8ADOF18ADD","B8ADOF18D ","B8ADOF18HDS","B8ADOF18RDT","B8ADOF18V ","B8ADOF18WVS","B8ADOF19A ", &
+ "B8ADOF19ADD","B8ADOF19D ","B8ADOF19HDS","B8ADOF19RDT","B8ADOF19V ","B8ADOF19WVS","B8ADOF1A ", &
+ "B8ADOF1ADD ","B8ADOF1D ","B8ADOF1HDS ","B8ADOF1RDT ","B8ADOF1V ","B8ADOF1WVS ","B8ADOF20A ", &
+ "B8ADOF20ADD","B8ADOF20D ","B8ADOF20HDS","B8ADOF20RDT","B8ADOF20V ","B8ADOF20WVS","B8ADOF21A ", &
+ "B8ADOF21ADD","B8ADOF21D ","B8ADOF21HDS","B8ADOF21RDT","B8ADOF21V ","B8ADOF21WVS","B8ADOF22A ", &
+ "B8ADOF22ADD","B8ADOF22D ","B8ADOF22HDS","B8ADOF22RDT","B8ADOF22V ","B8ADOF22WVS","B8ADOF23A ", &
+ "B8ADOF23ADD","B8ADOF23D ","B8ADOF23HDS","B8ADOF23RDT","B8ADOF23V ","B8ADOF23WVS","B8ADOF24A ", &
+ "B8ADOF24ADD","B8ADOF24D ","B8ADOF24HDS","B8ADOF24RDT","B8ADOF24V ","B8ADOF24WVS","B8ADOF25A ", &
+ "B8ADOF25ADD","B8ADOF25D ","B8ADOF25HDS","B8ADOF25RDT","B8ADOF25V ","B8ADOF25WVS","B8ADOF26A ", &
+ "B8ADOF26ADD","B8ADOF26D ","B8ADOF26HDS","B8ADOF26RDT","B8ADOF26V ","B8ADOF26WVS","B8ADOF27A ", &
+ "B8ADOF27ADD","B8ADOF27D ","B8ADOF27HDS","B8ADOF27RDT","B8ADOF27V ","B8ADOF27WVS","B8ADOF28A ", &
+ "B8ADOF28ADD","B8ADOF28D ","B8ADOF28HDS","B8ADOF28RDT","B8ADOF28V ","B8ADOF28WVS","B8ADOF29A ", &
+ "B8ADOF29ADD","B8ADOF29D ","B8ADOF29HDS","B8ADOF29RDT","B8ADOF29V ","B8ADOF29WVS","B8ADOF2A ", &
+ "B8ADOF2ADD ","B8ADOF2D ","B8ADOF2HDS ","B8ADOF2RDT ","B8ADOF2V ","B8ADOF2WVS ","B8ADOF30A ", &
+ "B8ADOF30ADD","B8ADOF30D ","B8ADOF30HDS","B8ADOF30RDT","B8ADOF30V ","B8ADOF30WVS","B8ADOF31A ", &
+ "B8ADOF31ADD","B8ADOF31D ","B8ADOF31HDS","B8ADOF31RDT","B8ADOF31V ","B8ADOF31WVS","B8ADOF32A ", &
+ "B8ADOF32ADD","B8ADOF32D ","B8ADOF32HDS","B8ADOF32RDT","B8ADOF32V ","B8ADOF32WVS","B8ADOF33A ", &
+ "B8ADOF33ADD","B8ADOF33D ","B8ADOF33HDS","B8ADOF33RDT","B8ADOF33V ","B8ADOF33WVS","B8ADOF34A ", &
+ "B8ADOF34ADD","B8ADOF34D ","B8ADOF34HDS","B8ADOF34RDT","B8ADOF34V ","B8ADOF34WVS","B8ADOF35A ", &
+ "B8ADOF35ADD","B8ADOF35D ","B8ADOF35HDS","B8ADOF35RDT","B8ADOF35V ","B8ADOF35WVS","B8ADOF36A ", &
+ "B8ADOF36ADD","B8ADOF36D ","B8ADOF36HDS","B8ADOF36RDT","B8ADOF36V ","B8ADOF36WVS","B8ADOF37A ", &
+ "B8ADOF37ADD","B8ADOF37D ","B8ADOF37HDS","B8ADOF37RDT","B8ADOF37V ","B8ADOF37WVS","B8ADOF38A ", &
+ "B8ADOF38ADD","B8ADOF38D ","B8ADOF38HDS","B8ADOF38RDT","B8ADOF38V ","B8ADOF38WVS","B8ADOF39A ", &
+ "B8ADOF39ADD","B8ADOF39D ","B8ADOF39HDS","B8ADOF39RDT","B8ADOF39V ","B8ADOF39WVS","B8ADOF3A ", &
+ "B8ADOF3ADD ","B8ADOF3D ","B8ADOF3HDS ","B8ADOF3RDT ","B8ADOF3V ","B8ADOF3WVS ","B8ADOF40A ", &
+ "B8ADOF40ADD","B8ADOF40D ","B8ADOF40HDS","B8ADOF40RDT","B8ADOF40V ","B8ADOF40WVS","B8ADOF41A ", &
+ "B8ADOF41ADD","B8ADOF41D ","B8ADOF41HDS","B8ADOF41RDT","B8ADOF41V ","B8ADOF41WVS","B8ADOF42A ", &
+ "B8ADOF42ADD","B8ADOF42D ","B8ADOF42HDS","B8ADOF42RDT","B8ADOF42V ","B8ADOF42WVS","B8ADOF43A ", &
+ "B8ADOF43ADD","B8ADOF43D ","B8ADOF43HDS","B8ADOF43RDT","B8ADOF43V ","B8ADOF43WVS","B8ADOF44A ", &
+ "B8ADOF44ADD","B8ADOF44D ","B8ADOF44HDS","B8ADOF44RDT","B8ADOF44V ","B8ADOF44WVS","B8ADOF45A ", &
+ "B8ADOF45ADD","B8ADOF45D ","B8ADOF45HDS","B8ADOF45RDT","B8ADOF45V ","B8ADOF45WVS","B8ADOF46A ", &
+ "B8ADOF46ADD","B8ADOF46D ","B8ADOF46HDS","B8ADOF46RDT","B8ADOF46V ","B8ADOF46WVS","B8ADOF47A ", &
+ "B8ADOF47ADD","B8ADOF47D ","B8ADOF47HDS","B8ADOF47RDT","B8ADOF47V ","B8ADOF47WVS","B8ADOF48A ", &
+ "B8ADOF48ADD","B8ADOF48D ","B8ADOF48HDS","B8ADOF48RDT","B8ADOF48V ","B8ADOF48WVS","B8ADOF49A ", &
+ "B8ADOF49ADD","B8ADOF49D ","B8ADOF49HDS","B8ADOF49RDT","B8ADOF49V ","B8ADOF49WVS","B8ADOF4A ", &
+ "B8ADOF4ADD ","B8ADOF4D ","B8ADOF4HDS ","B8ADOF4RDT ","B8ADOF4V ","B8ADOF4WVS ","B8ADOF50A ", &
+ "B8ADOF50ADD","B8ADOF50D ","B8ADOF50HDS","B8ADOF50RDT","B8ADOF50V ","B8ADOF50WVS","B8ADOF51A ", &
+ "B8ADOF51ADD","B8ADOF51D ","B8ADOF51HDS","B8ADOF51RDT","B8ADOF51V ","B8ADOF51WVS","B8ADOF52A ", &
+ "B8ADOF52ADD","B8ADOF52D ","B8ADOF52HDS","B8ADOF52RDT","B8ADOF52V ","B8ADOF52WVS","B8ADOF53A ", &
+ "B8ADOF53ADD","B8ADOF53D ","B8ADOF53HDS","B8ADOF53RDT","B8ADOF53V ","B8ADOF53WVS","B8ADOF54A ", &
+ "B8ADOF54ADD","B8ADOF54D ","B8ADOF54HDS","B8ADOF54RDT","B8ADOF54V ","B8ADOF54WVS","B8ADOF55A ", &
+ "B8ADOF55ADD","B8ADOF55D ","B8ADOF55HDS","B8ADOF55RDT","B8ADOF55V ","B8ADOF55WVS","B8ADOF56A ", &
+ "B8ADOF56ADD","B8ADOF56D ","B8ADOF56HDS","B8ADOF56RDT","B8ADOF56V ","B8ADOF56WVS","B8ADOF57A ", &
+ "B8ADOF57ADD","B8ADOF57D ","B8ADOF57HDS","B8ADOF57RDT","B8ADOF57V ","B8ADOF57WVS","B8ADOF58A ", &
+ "B8ADOF58ADD","B8ADOF58D ","B8ADOF58HDS","B8ADOF58RDT","B8ADOF58V ","B8ADOF58WVS","B8ADOF59A ", &
+ "B8ADOF59ADD","B8ADOF59D ","B8ADOF59HDS","B8ADOF59RDT","B8ADOF59V ","B8ADOF59WVS","B8ADOF5A ", &
+ "B8ADOF5ADD ","B8ADOF5D ","B8ADOF5HDS ","B8ADOF5RDT ","B8ADOF5V ","B8ADOF5WVS ","B8ADOF60A ", &
+ "B8ADOF60ADD","B8ADOF60D ","B8ADOF60HDS","B8ADOF60RDT","B8ADOF60V ","B8ADOF60WVS","B8ADOF61A ", &
+ "B8ADOF61ADD","B8ADOF61D ","B8ADOF61HDS","B8ADOF61RDT","B8ADOF61V ","B8ADOF61WVS","B8ADOF62A ", &
+ "B8ADOF62ADD","B8ADOF62D ","B8ADOF62HDS","B8ADOF62RDT","B8ADOF62V ","B8ADOF62WVS","B8ADOF63A ", &
+ "B8ADOF63ADD","B8ADOF63D ","B8ADOF63HDS","B8ADOF63RDT","B8ADOF63V ","B8ADOF63WVS","B8ADOF64A ", &
+ "B8ADOF64ADD","B8ADOF64D ","B8ADOF64HDS","B8ADOF64RDT","B8ADOF64V ","B8ADOF64WVS","B8ADOF65A ", &
+ "B8ADOF65ADD","B8ADOF65D ","B8ADOF65HDS","B8ADOF65RDT","B8ADOF65V ","B8ADOF65WVS","B8ADOF66A ", &
+ "B8ADOF66ADD","B8ADOF66D ","B8ADOF66HDS","B8ADOF66RDT","B8ADOF66V ","B8ADOF66WVS","B8ADOF67A ", &
+ "B8ADOF67ADD","B8ADOF67D ","B8ADOF67HDS","B8ADOF67RDT","B8ADOF67V ","B8ADOF67WVS","B8ADOF68A ", &
+ "B8ADOF68ADD","B8ADOF68D ","B8ADOF68HDS","B8ADOF68RDT","B8ADOF68V ","B8ADOF68WVS","B8ADOF69A ", &
+ "B8ADOF69ADD","B8ADOF69D ","B8ADOF69HDS","B8ADOF69RDT","B8ADOF69V ","B8ADOF69WVS","B8ADOF6A ", &
+ "B8ADOF6ADD ","B8ADOF6D ","B8ADOF6HDS ","B8ADOF6RDT ","B8ADOF6V ","B8ADOF6WVS ","B8ADOF70A ", &
+ "B8ADOF70ADD","B8ADOF70D ","B8ADOF70HDS","B8ADOF70RDT","B8ADOF70V ","B8ADOF70WVS","B8ADOF71A ", &
+ "B8ADOF71ADD","B8ADOF71D ","B8ADOF71HDS","B8ADOF71RDT","B8ADOF71V ","B8ADOF71WVS","B8ADOF72A ", &
+ "B8ADOF72ADD","B8ADOF72D ","B8ADOF72HDS","B8ADOF72RDT","B8ADOF72V ","B8ADOF72WVS","B8ADOF73A ", &
+ "B8ADOF73ADD","B8ADOF73D ","B8ADOF73HDS","B8ADOF73RDT","B8ADOF73V ","B8ADOF73WVS","B8ADOF74A ", &
+ "B8ADOF74ADD","B8ADOF74D ","B8ADOF74HDS","B8ADOF74RDT","B8ADOF74V ","B8ADOF74WVS","B8ADOF75A ", &
+ "B8ADOF75ADD","B8ADOF75D ","B8ADOF75HDS","B8ADOF75RDT","B8ADOF75V ","B8ADOF75WVS","B8ADOF76A ", &
+ "B8ADOF76ADD","B8ADOF76D ","B8ADOF76HDS","B8ADOF76RDT","B8ADOF76V ","B8ADOF76WVS","B8ADOF77A ", &
+ "B8ADOF77ADD","B8ADOF77D ","B8ADOF77HDS","B8ADOF77RDT","B8ADOF77V ","B8ADOF77WVS","B8ADOF78A ", &
+ "B8ADOF78ADD","B8ADOF78D ","B8ADOF78HDS","B8ADOF78RDT","B8ADOF78V ","B8ADOF78WVS","B8ADOF79A ", &
+ "B8ADOF79ADD","B8ADOF79D ","B8ADOF79HDS","B8ADOF79RDT","B8ADOF79V ","B8ADOF79WVS","B8ADOF7A ", &
+ "B8ADOF7ADD ","B8ADOF7D ","B8ADOF7HDS ","B8ADOF7RDT ","B8ADOF7V ","B8ADOF7WVS ","B8ADOF80A ", &
+ "B8ADOF80ADD","B8ADOF80D ","B8ADOF80HDS","B8ADOF80RDT","B8ADOF80V ","B8ADOF80WVS","B8ADOF81A ", &
+ "B8ADOF81ADD","B8ADOF81D ","B8ADOF81HDS","B8ADOF81RDT","B8ADOF81V ","B8ADOF81WVS","B8ADOF82A ", &
+ "B8ADOF82ADD","B8ADOF82D ","B8ADOF82HDS","B8ADOF82RDT","B8ADOF82V ","B8ADOF82WVS","B8ADOF83A ", &
+ "B8ADOF83ADD","B8ADOF83D ","B8ADOF83HDS","B8ADOF83RDT","B8ADOF83V ","B8ADOF83WVS","B8ADOF84A ", &
+ "B8ADOF84ADD","B8ADOF84D ","B8ADOF84HDS","B8ADOF84RDT","B8ADOF84V ","B8ADOF84WVS","B8ADOF85A ", &
+ "B8ADOF85ADD","B8ADOF85D ","B8ADOF85HDS","B8ADOF85RDT","B8ADOF85V ","B8ADOF85WVS","B8ADOF86A ", &
+ "B8ADOF86ADD","B8ADOF86D ","B8ADOF86HDS","B8ADOF86RDT","B8ADOF86V ","B8ADOF86WVS","B8ADOF87A ", &
+ "B8ADOF87ADD","B8ADOF87D ","B8ADOF87HDS","B8ADOF87RDT","B8ADOF87V ","B8ADOF87WVS","B8ADOF88A ", &
+ "B8ADOF88ADD","B8ADOF88D ","B8ADOF88HDS","B8ADOF88RDT","B8ADOF88V ","B8ADOF88WVS","B8ADOF89A ", &
+ "B8ADOF89ADD","B8ADOF89D ","B8ADOF89HDS","B8ADOF89RDT","B8ADOF89V ","B8ADOF89WVS","B8ADOF8A ", &
+ "B8ADOF8ADD ","B8ADOF8D ","B8ADOF8HDS ","B8ADOF8RDT ","B8ADOF8V ","B8ADOF8WVS ","B8ADOF90A ", &
+ "B8ADOF90ADD","B8ADOF90D ","B8ADOF90HDS","B8ADOF90RDT","B8ADOF90V ","B8ADOF90WVS","B8ADOF91A ", &
+ "B8ADOF91ADD","B8ADOF91D ","B8ADOF91HDS","B8ADOF91RDT","B8ADOF91V ","B8ADOF91WVS","B8ADOF92A ", &
+ "B8ADOF92ADD","B8ADOF92D ","B8ADOF92HDS","B8ADOF92RDT","B8ADOF92V ","B8ADOF92WVS","B8ADOF93A ", &
+ "B8ADOF93ADD","B8ADOF93D ","B8ADOF93HDS","B8ADOF93RDT","B8ADOF93V ","B8ADOF93WVS","B8ADOF94A ", &
+ "B8ADOF94ADD","B8ADOF94D ","B8ADOF94HDS","B8ADOF94RDT","B8ADOF94V ","B8ADOF94WVS","B8ADOF95A ", &
+ "B8ADOF95ADD","B8ADOF95D ","B8ADOF95HDS","B8ADOF95RDT","B8ADOF95V ","B8ADOF95WVS","B8ADOF96A ", &
+ "B8ADOF96ADD","B8ADOF96D ","B8ADOF96HDS","B8ADOF96RDT","B8ADOF96V ","B8ADOF96WVS","B8ADOF97A ", &
+ "B8ADOF97ADD","B8ADOF97D ","B8ADOF97HDS","B8ADOF97RDT","B8ADOF97V ","B8ADOF97WVS","B8ADOF98A ", &
+ "B8ADOF98ADD","B8ADOF98D ","B8ADOF98HDS","B8ADOF98RDT","B8ADOF98V ","B8ADOF98WVS","B8ADOF99A ", &
+ "B8ADOF99ADD","B8ADOF99D ","B8ADOF99HDS","B8ADOF99RDT","B8ADOF99V ","B8ADOF99WVS","B8ADOF9A ", &
+ "B8ADOF9ADD ","B8ADOF9D ","B8ADOF9HDS ","B8ADOF9RDT ","B8ADOF9V ","B8ADOF9WVS ","B8HDSFXI ", &
+ "B8HDSFYI ","B8HDSFZI ","B8HDSMXI ","B8HDSMYI ","B8HDSMZI ","B8HEAVE ","B8PITCH ", &
+ "B8RAXI ","B8RAYI ","B8RAZI ","B8RDTFXI ","B8RDTFYI ","B8RDTFZI ","B8RDTMXI ", &
+ "B8RDTMYI ","B8RDTMZI ","B8ROLL ","B8RVXI ","B8RVYI ","B8RVZI ","B8SURGE ", &
+ "B8SWAY ","B8TAXI ","B8TAYI ","B8TAZI ","B8TVXI ","B8TVYI ","B8TVZI ", &
+ "B8WVSF1XI ","B8WVSF1YI ","B8WVSF1ZI ","B8WVSF2XI ","B8WVSF2YI ","B8WVSF2ZI ","B8WVSFXI ", &
+ "B8WVSFYI ","B8WVSFZI ","B8WVSM1XI ","B8WVSM1YI ","B8WVSM1ZI ","B8WVSM2XI ","B8WVSM2YI ", &
+ "B8WVSM2ZI ","B8WVSMXI ","B8WVSMYI ","B8WVSMZI ","B8YAW ","B9ADDFXI ","B9ADDFYI ", &
+ "B9ADDFZI ","B9ADDMXI ","B9ADDMYI ","B9ADDMZI ","B9ADOF10A ","B9ADOF10ADD","B9ADOF10D ", &
+ "B9ADOF10HDS","B9ADOF10RDT","B9ADOF10V ","B9ADOF10WVS","B9ADOF11A ","B9ADOF11ADD","B9ADOF11D ", &
+ "B9ADOF11HDS","B9ADOF11RDT","B9ADOF11V ","B9ADOF11WVS","B9ADOF12A ","B9ADOF12ADD","B9ADOF12D ", &
+ "B9ADOF12HDS","B9ADOF12RDT","B9ADOF12V ","B9ADOF12WVS","B9ADOF13A ","B9ADOF13ADD","B9ADOF13D ", &
+ "B9ADOF13HDS","B9ADOF13RDT","B9ADOF13V ","B9ADOF13WVS","B9ADOF14A ","B9ADOF14ADD","B9ADOF14D ", &
+ "B9ADOF14HDS","B9ADOF14RDT","B9ADOF14V ","B9ADOF14WVS","B9ADOF15A ","B9ADOF15ADD","B9ADOF15D ", &
+ "B9ADOF15HDS","B9ADOF15RDT","B9ADOF15V ","B9ADOF15WVS","B9ADOF16A ","B9ADOF16ADD","B9ADOF16D ", &
+ "B9ADOF16HDS","B9ADOF16RDT","B9ADOF16V ","B9ADOF16WVS","B9ADOF17A ","B9ADOF17ADD","B9ADOF17D ", &
+ "B9ADOF17HDS","B9ADOF17RDT","B9ADOF17V ","B9ADOF17WVS","B9ADOF18A ","B9ADOF18ADD","B9ADOF18D ", &
+ "B9ADOF18HDS","B9ADOF18RDT","B9ADOF18V ","B9ADOF18WVS","B9ADOF19A ","B9ADOF19ADD","B9ADOF19D ", &
+ "B9ADOF19HDS","B9ADOF19RDT","B9ADOF19V ","B9ADOF19WVS","B9ADOF1A ","B9ADOF1ADD ","B9ADOF1D ", &
+ "B9ADOF1HDS ","B9ADOF1RDT ","B9ADOF1V ","B9ADOF1WVS ","B9ADOF20A ","B9ADOF20ADD","B9ADOF20D ", &
+ "B9ADOF20HDS","B9ADOF20RDT","B9ADOF20V ","B9ADOF20WVS","B9ADOF21A ","B9ADOF21ADD","B9ADOF21D ", &
+ "B9ADOF21HDS","B9ADOF21RDT","B9ADOF21V ","B9ADOF21WVS","B9ADOF22A ","B9ADOF22ADD","B9ADOF22D ", &
+ "B9ADOF22HDS","B9ADOF22RDT","B9ADOF22V ","B9ADOF22WVS","B9ADOF23A ","B9ADOF23ADD","B9ADOF23D ", &
+ "B9ADOF23HDS","B9ADOF23RDT","B9ADOF23V ","B9ADOF23WVS","B9ADOF24A ","B9ADOF24ADD","B9ADOF24D ", &
+ "B9ADOF24HDS","B9ADOF24RDT","B9ADOF24V ","B9ADOF24WVS","B9ADOF25A ","B9ADOF25ADD","B9ADOF25D ", &
+ "B9ADOF25HDS","B9ADOF25RDT","B9ADOF25V ","B9ADOF25WVS","B9ADOF26A ","B9ADOF26ADD","B9ADOF26D ", &
+ "B9ADOF26HDS","B9ADOF26RDT","B9ADOF26V ","B9ADOF26WVS","B9ADOF27A ","B9ADOF27ADD","B9ADOF27D ", &
+ "B9ADOF27HDS","B9ADOF27RDT","B9ADOF27V ","B9ADOF27WVS","B9ADOF28A ","B9ADOF28ADD","B9ADOF28D ", &
+ "B9ADOF28HDS","B9ADOF28RDT","B9ADOF28V ","B9ADOF28WVS","B9ADOF29A ","B9ADOF29ADD","B9ADOF29D ", &
+ "B9ADOF29HDS","B9ADOF29RDT","B9ADOF29V ","B9ADOF29WVS","B9ADOF2A ","B9ADOF2ADD ","B9ADOF2D ", &
+ "B9ADOF2HDS ","B9ADOF2RDT ","B9ADOF2V ","B9ADOF2WVS ","B9ADOF30A ","B9ADOF30ADD","B9ADOF30D ", &
+ "B9ADOF30HDS","B9ADOF30RDT","B9ADOF30V ","B9ADOF30WVS","B9ADOF31A ","B9ADOF31ADD","B9ADOF31D ", &
+ "B9ADOF31HDS","B9ADOF31RDT","B9ADOF31V ","B9ADOF31WVS","B9ADOF32A ","B9ADOF32ADD","B9ADOF32D ", &
+ "B9ADOF32HDS","B9ADOF32RDT","B9ADOF32V ","B9ADOF32WVS","B9ADOF33A ","B9ADOF33ADD","B9ADOF33D ", &
+ "B9ADOF33HDS","B9ADOF33RDT","B9ADOF33V ","B9ADOF33WVS","B9ADOF34A ","B9ADOF34ADD","B9ADOF34D ", &
+ "B9ADOF34HDS","B9ADOF34RDT","B9ADOF34V ","B9ADOF34WVS","B9ADOF35A ","B9ADOF35ADD","B9ADOF35D ", &
+ "B9ADOF35HDS","B9ADOF35RDT","B9ADOF35V ","B9ADOF35WVS","B9ADOF36A ","B9ADOF36ADD","B9ADOF36D ", &
+ "B9ADOF36HDS","B9ADOF36RDT","B9ADOF36V ","B9ADOF36WVS","B9ADOF37A ","B9ADOF37ADD","B9ADOF37D ", &
+ "B9ADOF37HDS","B9ADOF37RDT","B9ADOF37V ","B9ADOF37WVS","B9ADOF38A ","B9ADOF38ADD","B9ADOF38D ", &
+ "B9ADOF38HDS","B9ADOF38RDT","B9ADOF38V ","B9ADOF38WVS","B9ADOF39A ","B9ADOF39ADD","B9ADOF39D ", &
+ "B9ADOF39HDS","B9ADOF39RDT","B9ADOF39V ","B9ADOF39WVS","B9ADOF3A ","B9ADOF3ADD ","B9ADOF3D ", &
+ "B9ADOF3HDS ","B9ADOF3RDT ","B9ADOF3V ","B9ADOF3WVS ","B9ADOF40A ","B9ADOF40ADD","B9ADOF40D ", &
+ "B9ADOF40HDS","B9ADOF40RDT","B9ADOF40V ","B9ADOF40WVS","B9ADOF41A ","B9ADOF41ADD","B9ADOF41D ", &
+ "B9ADOF41HDS","B9ADOF41RDT","B9ADOF41V ","B9ADOF41WVS","B9ADOF42A ","B9ADOF42ADD","B9ADOF42D ", &
+ "B9ADOF42HDS","B9ADOF42RDT","B9ADOF42V ","B9ADOF42WVS","B9ADOF43A ","B9ADOF43ADD","B9ADOF43D ", &
+ "B9ADOF43HDS","B9ADOF43RDT","B9ADOF43V ","B9ADOF43WVS","B9ADOF44A ","B9ADOF44ADD","B9ADOF44D ", &
+ "B9ADOF44HDS","B9ADOF44RDT","B9ADOF44V ","B9ADOF44WVS","B9ADOF45A ","B9ADOF45ADD","B9ADOF45D ", &
+ "B9ADOF45HDS","B9ADOF45RDT","B9ADOF45V ","B9ADOF45WVS","B9ADOF46A ","B9ADOF46ADD","B9ADOF46D ", &
+ "B9ADOF46HDS","B9ADOF46RDT","B9ADOF46V ","B9ADOF46WVS","B9ADOF47A ","B9ADOF47ADD","B9ADOF47D ", &
+ "B9ADOF47HDS","B9ADOF47RDT","B9ADOF47V ","B9ADOF47WVS","B9ADOF48A ","B9ADOF48ADD","B9ADOF48D ", &
+ "B9ADOF48HDS","B9ADOF48RDT","B9ADOF48V ","B9ADOF48WVS","B9ADOF49A ","B9ADOF49ADD","B9ADOF49D ", &
+ "B9ADOF49HDS","B9ADOF49RDT","B9ADOF49V ","B9ADOF49WVS","B9ADOF4A ","B9ADOF4ADD ","B9ADOF4D ", &
+ "B9ADOF4HDS ","B9ADOF4RDT ","B9ADOF4V ","B9ADOF4WVS ","B9ADOF50A ","B9ADOF50ADD","B9ADOF50D ", &
+ "B9ADOF50HDS","B9ADOF50RDT","B9ADOF50V ","B9ADOF50WVS","B9ADOF51A ","B9ADOF51ADD","B9ADOF51D ", &
+ "B9ADOF51HDS","B9ADOF51RDT","B9ADOF51V ","B9ADOF51WVS","B9ADOF52A ","B9ADOF52ADD","B9ADOF52D ", &
+ "B9ADOF52HDS","B9ADOF52RDT","B9ADOF52V ","B9ADOF52WVS","B9ADOF53A ","B9ADOF53ADD","B9ADOF53D ", &
+ "B9ADOF53HDS","B9ADOF53RDT","B9ADOF53V ","B9ADOF53WVS","B9ADOF54A ","B9ADOF54ADD","B9ADOF54D ", &
+ "B9ADOF54HDS","B9ADOF54RDT","B9ADOF54V ","B9ADOF54WVS","B9ADOF55A ","B9ADOF55ADD","B9ADOF55D ", &
+ "B9ADOF55HDS","B9ADOF55RDT","B9ADOF55V ","B9ADOF55WVS","B9ADOF56A ","B9ADOF56ADD","B9ADOF56D ", &
+ "B9ADOF56HDS","B9ADOF56RDT","B9ADOF56V ","B9ADOF56WVS","B9ADOF57A ","B9ADOF57ADD","B9ADOF57D ", &
+ "B9ADOF57HDS","B9ADOF57RDT","B9ADOF57V ","B9ADOF57WVS","B9ADOF58A ","B9ADOF58ADD","B9ADOF58D ", &
+ "B9ADOF58HDS","B9ADOF58RDT","B9ADOF58V ","B9ADOF58WVS","B9ADOF59A ","B9ADOF59ADD","B9ADOF59D ", &
+ "B9ADOF59HDS","B9ADOF59RDT","B9ADOF59V ","B9ADOF59WVS","B9ADOF5A ","B9ADOF5ADD ","B9ADOF5D ", &
+ "B9ADOF5HDS ","B9ADOF5RDT ","B9ADOF5V ","B9ADOF5WVS ","B9ADOF60A ","B9ADOF60ADD","B9ADOF60D ", &
+ "B9ADOF60HDS","B9ADOF60RDT","B9ADOF60V ","B9ADOF60WVS","B9ADOF61A ","B9ADOF61ADD","B9ADOF61D ", &
+ "B9ADOF61HDS","B9ADOF61RDT","B9ADOF61V ","B9ADOF61WVS","B9ADOF62A ","B9ADOF62ADD","B9ADOF62D ", &
+ "B9ADOF62HDS","B9ADOF62RDT","B9ADOF62V ","B9ADOF62WVS","B9ADOF63A ","B9ADOF63ADD","B9ADOF63D ", &
+ "B9ADOF63HDS","B9ADOF63RDT","B9ADOF63V ","B9ADOF63WVS","B9ADOF64A ","B9ADOF64ADD","B9ADOF64D ", &
+ "B9ADOF64HDS","B9ADOF64RDT","B9ADOF64V ","B9ADOF64WVS","B9ADOF65A ","B9ADOF65ADD","B9ADOF65D ", &
+ "B9ADOF65HDS","B9ADOF65RDT","B9ADOF65V ","B9ADOF65WVS","B9ADOF66A ","B9ADOF66ADD","B9ADOF66D ", &
+ "B9ADOF66HDS","B9ADOF66RDT","B9ADOF66V ","B9ADOF66WVS","B9ADOF67A ","B9ADOF67ADD","B9ADOF67D ", &
+ "B9ADOF67HDS","B9ADOF67RDT","B9ADOF67V ","B9ADOF67WVS","B9ADOF68A ","B9ADOF68ADD","B9ADOF68D ", &
+ "B9ADOF68HDS","B9ADOF68RDT","B9ADOF68V ","B9ADOF68WVS","B9ADOF69A ","B9ADOF69ADD","B9ADOF69D ", &
+ "B9ADOF69HDS","B9ADOF69RDT","B9ADOF69V ","B9ADOF69WVS","B9ADOF6A ","B9ADOF6ADD ","B9ADOF6D ", &
+ "B9ADOF6HDS ","B9ADOF6RDT ","B9ADOF6V ","B9ADOF6WVS ","B9ADOF70A ","B9ADOF70ADD","B9ADOF70D ", &
+ "B9ADOF70HDS","B9ADOF70RDT","B9ADOF70V ","B9ADOF70WVS","B9ADOF71A ","B9ADOF71ADD","B9ADOF71D ", &
+ "B9ADOF71HDS","B9ADOF71RDT","B9ADOF71V ","B9ADOF71WVS","B9ADOF72A ","B9ADOF72ADD","B9ADOF72D ", &
+ "B9ADOF72HDS","B9ADOF72RDT","B9ADOF72V ","B9ADOF72WVS","B9ADOF73A ","B9ADOF73ADD","B9ADOF73D ", &
+ "B9ADOF73HDS","B9ADOF73RDT","B9ADOF73V ","B9ADOF73WVS","B9ADOF74A ","B9ADOF74ADD","B9ADOF74D ", &
+ "B9ADOF74HDS","B9ADOF74RDT","B9ADOF74V ","B9ADOF74WVS","B9ADOF75A ","B9ADOF75ADD","B9ADOF75D ", &
+ "B9ADOF75HDS","B9ADOF75RDT","B9ADOF75V ","B9ADOF75WVS","B9ADOF76A ","B9ADOF76ADD","B9ADOF76D ", &
+ "B9ADOF76HDS","B9ADOF76RDT","B9ADOF76V ","B9ADOF76WVS","B9ADOF77A ","B9ADOF77ADD","B9ADOF77D ", &
+ "B9ADOF77HDS","B9ADOF77RDT","B9ADOF77V ","B9ADOF77WVS","B9ADOF78A ","B9ADOF78ADD","B9ADOF78D ", &
+ "B9ADOF78HDS","B9ADOF78RDT","B9ADOF78V ","B9ADOF78WVS","B9ADOF79A ","B9ADOF79ADD","B9ADOF79D ", &
+ "B9ADOF79HDS","B9ADOF79RDT","B9ADOF79V ","B9ADOF79WVS","B9ADOF7A ","B9ADOF7ADD ","B9ADOF7D ", &
+ "B9ADOF7HDS ","B9ADOF7RDT ","B9ADOF7V ","B9ADOF7WVS ","B9ADOF80A ","B9ADOF80ADD","B9ADOF80D ", &
+ "B9ADOF80HDS","B9ADOF80RDT","B9ADOF80V ","B9ADOF80WVS","B9ADOF81A ","B9ADOF81ADD","B9ADOF81D ", &
+ "B9ADOF81HDS","B9ADOF81RDT","B9ADOF81V ","B9ADOF81WVS","B9ADOF82A ","B9ADOF82ADD","B9ADOF82D ", &
+ "B9ADOF82HDS","B9ADOF82RDT","B9ADOF82V ","B9ADOF82WVS","B9ADOF83A ","B9ADOF83ADD","B9ADOF83D ", &
+ "B9ADOF83HDS","B9ADOF83RDT","B9ADOF83V ","B9ADOF83WVS","B9ADOF84A ","B9ADOF84ADD","B9ADOF84D ", &
+ "B9ADOF84HDS","B9ADOF84RDT","B9ADOF84V ","B9ADOF84WVS","B9ADOF85A ","B9ADOF85ADD","B9ADOF85D ", &
+ "B9ADOF85HDS","B9ADOF85RDT","B9ADOF85V ","B9ADOF85WVS","B9ADOF86A ","B9ADOF86ADD","B9ADOF86D ", &
+ "B9ADOF86HDS","B9ADOF86RDT","B9ADOF86V ","B9ADOF86WVS","B9ADOF87A ","B9ADOF87ADD","B9ADOF87D ", &
+ "B9ADOF87HDS","B9ADOF87RDT","B9ADOF87V ","B9ADOF87WVS","B9ADOF88A ","B9ADOF88ADD","B9ADOF88D ", &
+ "B9ADOF88HDS","B9ADOF88RDT","B9ADOF88V ","B9ADOF88WVS","B9ADOF89A ","B9ADOF89ADD","B9ADOF89D ", &
+ "B9ADOF89HDS","B9ADOF89RDT","B9ADOF89V ","B9ADOF89WVS","B9ADOF8A ","B9ADOF8ADD ","B9ADOF8D ", &
+ "B9ADOF8HDS ","B9ADOF8RDT ","B9ADOF8V ","B9ADOF8WVS ","B9ADOF90A ","B9ADOF90ADD","B9ADOF90D ", &
+ "B9ADOF90HDS","B9ADOF90RDT","B9ADOF90V ","B9ADOF90WVS","B9ADOF91A ","B9ADOF91ADD","B9ADOF91D ", &
+ "B9ADOF91HDS","B9ADOF91RDT","B9ADOF91V ","B9ADOF91WVS","B9ADOF92A ","B9ADOF92ADD","B9ADOF92D ", &
+ "B9ADOF92HDS","B9ADOF92RDT","B9ADOF92V ","B9ADOF92WVS","B9ADOF93A ","B9ADOF93ADD","B9ADOF93D ", &
+ "B9ADOF93HDS","B9ADOF93RDT","B9ADOF93V ","B9ADOF93WVS","B9ADOF94A ","B9ADOF94ADD","B9ADOF94D ", &
+ "B9ADOF94HDS","B9ADOF94RDT","B9ADOF94V ","B9ADOF94WVS","B9ADOF95A ","B9ADOF95ADD","B9ADOF95D ", &
+ "B9ADOF95HDS","B9ADOF95RDT","B9ADOF95V ","B9ADOF95WVS","B9ADOF96A ","B9ADOF96ADD","B9ADOF96D ", &
+ "B9ADOF96HDS","B9ADOF96RDT","B9ADOF96V ","B9ADOF96WVS","B9ADOF97A ","B9ADOF97ADD","B9ADOF97D ", &
+ "B9ADOF97HDS","B9ADOF97RDT","B9ADOF97V ","B9ADOF97WVS","B9ADOF98A ","B9ADOF98ADD","B9ADOF98D ", &
+ "B9ADOF98HDS","B9ADOF98RDT","B9ADOF98V ","B9ADOF98WVS","B9ADOF99A ","B9ADOF99ADD","B9ADOF99D ", &
+ "B9ADOF99HDS","B9ADOF99RDT","B9ADOF99V ","B9ADOF99WVS","B9ADOF9A ","B9ADOF9ADD ","B9ADOF9D ", &
+ "B9ADOF9HDS ","B9ADOF9RDT ","B9ADOF9V ","B9ADOF9WVS ","B9HDSFXI ","B9HDSFYI ","B9HDSFZI ", &
+ "B9HDSMXI ","B9HDSMYI ","B9HDSMZI ","B9HEAVE ","B9PITCH ","B9RAXI ","B9RAYI ", &
+ "B9RAZI ","B9RDTFXI ","B9RDTFYI ","B9RDTFZI ","B9RDTMXI ","B9RDTMYI ","B9RDTMZI ", &
+ "B9ROLL ","B9RVXI ","B9RVYI ","B9RVZI ","B9SURGE ","B9SWAY ","B9TAXI ", &
+ "B9TAYI ","B9TAZI ","B9TVXI ","B9TVYI ","B9TVZI ","B9WVSF1XI ","B9WVSF1YI ", &
+ "B9WVSF1ZI ","B9WVSF2XI ","B9WVSF2YI ","B9WVSF2ZI ","B9WVSFXI ","B9WVSFYI ","B9WVSFZI ", &
+ "B9WVSM1XI ","B9WVSM1YI ","B9WVSM1ZI ","B9WVSM2XI ","B9WVSM2YI ","B9WVSM2ZI ","B9WVSMXI ", &
+ "B9WVSMYI ","B9WVSMZI ","B9YAW ","HYDROFXI ","HYDROFYI ","HYDROFZI ","HYDROMXI ", &
+ "HYDROMYI ","HYDROMZI ","PRPHEAVE ","PRPPITCH ","PRPRAXI ","PRPRAYI ","PRPRAZI ", &
+ "PRPROLL ","PRPRVXI ","PRPRVYI ","PRPRVZI ","PRPSURGE ","PRPSWAY ","PRPTAXI ", &
+ "PRPTAYI ","PRPTAZI ","PRPTVXI ","PRPTVYI ","PRPTVZI ","PRPYAW "/)
+ CHARACTER(OutStrLenM1), PARAMETER :: ValidParamAry(6747) = (/ & ! This lists the names of the allowed parameters, which must be sorted alphabetically
+ ValidParamAry1, ValidParamAry2, ValidParamAry3, ValidParamAry4/)
! ..... Public Subroutines ...................................................................................................
PUBLIC :: HDOut_CloseSum
@@ -833,7 +8676,7 @@ SUBROUTINE HDOut_MapOutputs( p, y, m_WAMIT, m_WAMIT2, F_Add, F_Waves, F_Hydro, P
INTEGER(IntKi), INTENT( OUT ) :: ErrStat ! Error status of the operation
CHARACTER(*), INTENT( OUT ) :: ErrMsg ! Error message if ErrStat /= ErrID_None
- INTEGER :: i, iBody, startIndx, endIndx
+ INTEGER :: i, iBody, startIndx, endIndx, NAddDOFOut
integer(IntKi) :: ErrStat2
character(ErrMsgLen) :: ErrMsg2
real(ReKi) :: rotdisp(3)
@@ -845,8 +8688,6 @@ SUBROUTINE HDOut_MapOutputs( p, y, m_WAMIT, m_WAMIT2, F_Add, F_Waves, F_Hydro, P
! Initialize all unused channels to zero (in case they don't get set, but are still requested)
AllOuts = 0.0_ReKi
- ! rotdisp = GetRotAngs ( PtfmRefY, PRPMesh%Orientation(:,:,1), ErrStat2, ErrMsg2 )
- ! CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, 'HDOut_MapOutputs' )
rotdisp = EulerExtractZYX(PRPMesh%Orientation(:,:,1))
AllOuts(PRPMotions) = reshape((/real(PRPMesh%TranslationDisp(:,1),ReKi),rotdisp(:)/),(/6/))
AllOuts(PRPVel) = reshape((/PRPMesh%TranslationVel(:,1),PRPMesh%RotationVel(:,1)/),(/6/))
@@ -855,36 +8696,58 @@ SUBROUTINE HDOut_MapOutputs( p, y, m_WAMIT, m_WAMIT2, F_Add, F_Waves, F_Hydro, P
! Need to use individual components of force for output reporting, the y%mesh data has total forces from all contributions
if ( p%potMod == 1 ) then
if ( p%NBodyMod == 1 .or. p%NBody == 1 ) then
- do iBody = 1,min(p%NBody,9) ! Can only output the first 9 bodies for now
- startIndx = 6*(iBody-1) + 1
- endIndx = startIndx + 5
+ do iBody = 1,min(p%NBody,9) ! Can only output the first 9 bodies for now; rigid-body modes only for now
+ startIndx = p%BDOFStrt(iBody)
+ endIndx = p%BDOFStrt(iBody) + 5
AllOuts(FWaves1 (:,iBody)) = m_WAMIT(1)%F_Waves1(startIndx:endIndx)
AllOuts(FHdrSttc (:,iBody)) = m_WAMIT(1)%F_HS(startIndx:endIndx)
AllOuts(FRdtn (:,iBody)) = m_WAMIT(1)%F_Rdtn(startIndx:endIndx) + m_WAMIT(1)%F_PtfmAM(startIndx:endIndx)
- if (p%WAMIT2used) AllOuts(FWaves2 (:,iBody)) = m_WAMIT2(1)%F_Waves2(startIndx:endIndx) ! These are reported by the WAMIT2 module
+ if (p%WAMIT2used) AllOuts(FWaves2 (:,iBody)) = m_WAMIT2(1)%F_Waves2(6*(iBody-1)+1:6*(iBody-1)+6) ! These are reported by the WAMIT2 module
AllOuts(FAdd (:,iBody)) = F_Add(startIndx:endIndx)
AllOuts(FWavesTot(:,iBody)) = F_Waves(startIndx:endIndx)
AllOuts(WBMotions(:,iBody)) = q(startIndx:endIndx)
AllOuts(WBVel (:,iBody)) = qdot(startIndx:endIndx)
- AllOuts(WBAcc (:,iBody)) = qdotdot(startIndx:endIndx)
+ AllOuts(WBAcc (:,iBody)) = qdotdot(startIndx:endIndx)
+ if ( p%NAddDOF(iBody) > 0_IntKi ) then
+ NAddDOFOut = min( p%NAddDOF(iBody) , 99_IntKi )
+ startIndx = p%BDOFStrt(iBody) + 6
+ endIndx = p%BDOFStrt(iBody) + 5 + NAddDOFOut
+ AllOuts(FADOFWvs(1:NAddDOFOut,iBody)) = m_WAMIT(1)%F_Waves1(startIndx:endIndx)
+ AllOuts(FADOFHds(1:NAddDOFOut,iBody)) = m_WAMIT(1)%F_HS(startIndx:endIndx)
+ AllOuts(FADOFRdt(1:NAddDOFOut,iBody)) = m_WAMIT(1)%F_Rdtn(startIndx:endIndx) + m_WAMIT(1)%F_PtfmAM(startIndx:endIndx)
+ AllOuts(FADOFAdd(1:NAddDOFOut,iBody)) = F_Add(startIndx:endIndx)
+ AllOuts( ADOFDsp(1:NAddDOFOut,iBody)) = q (startIndx:endIndx)
+ AllOuts( ADOFVel(1:NAddDOFOut,iBody)) = qdot (startIndx:endIndx)
+ AllOuts( ADOFAcc(1:NAddDOFOut,iBody)) = qdotdot(startIndx:endIndx)
+ end if
end do
else
-
! This happens when NBodyMod > 1, in which case, each WAMIT object is for a single body, but there may be multiple bodies in the HydroDyn model,
! so we need to use BodyID to determine the index into the complete HydroDyn list of WAMIT bodies
-
- do iBody = 1,min(p%NBody,9) ! Can only output the first 9 bodies for now
- startIndx = 6*(iBody-1) + 1
- endIndx = startIndx + 5
- AllOuts(FWaves1 (:,iBody)) = m_WAMIT(iBody)%F_Waves1
- AllOuts(FHdrSttc (:,iBody)) = m_WAMIT(iBody)%F_HS
- AllOuts(FRdtn (:,iBody)) = m_WAMIT(iBody)%F_Rdtn + m_WAMIT(iBody)%F_PtfmAM
+ do iBody = 1,min(p%NBody,9) ! Can only output the first 9 bodies for now; rigid-body modes only for now
+ startIndx = p%BDOFStrt(iBody)
+ endIndx = p%BDOFStrt(iBody) + 5
+ AllOuts(FWaves1 (:,iBody)) = m_WAMIT(iBody)%F_Waves1(1:6)
+ AllOuts(FHdrSttc (:,iBody)) = m_WAMIT(iBody)%F_HS(1:6)
+ AllOuts(FRdtn (:,iBody)) = m_WAMIT(iBody)%F_Rdtn(1:6) + m_WAMIT(iBody)%F_PtfmAM(1:6)
if (p%WAMIT2used) AllOuts(FWaves2 (:,iBody)) = m_WAMIT2(iBody)%F_Waves2
AllOuts(FAdd (:,iBody)) = F_Add(startIndx:endIndx)
AllOuts(FWavesTot(:,iBody)) = F_Waves(startIndx:endIndx)
AllOuts(WBMotions(:,iBody)) = q(startIndx:endIndx)
AllOuts(WBVel (:,iBody)) = qdot(startIndx:endIndx)
- AllOuts(WBAcc (:,iBody)) = qdotdot(startIndx:endIndx)
+ AllOuts(WBAcc (:,iBody)) = qdotdot(startIndx:endIndx)
+ if ( p%WAMIT(iBody)%NAddDOF(1) > 0_IntKi ) then
+ NAddDOFOut = min( p%WAMIT(iBody)%NAddDOF(1) , 99_IntKi )
+ AllOuts(FADOFWvs(1:NAddDOFOut,iBody)) = m_WAMIT(iBody)%F_Waves1(7:6+NAddDOFOut)
+ AllOuts(FADOFHds(1:NAddDOFOut,iBody)) = m_WAMIT(iBody)%F_HS(7:6+NAddDOFOut)
+ AllOuts(FADOFRdt(1:NAddDOFOut,iBody)) = m_WAMIT(iBody)%F_Rdtn(7:6+NAddDOFOut) + m_WAMIT(iBody)%F_PtfmAM(7:6+NAddDOFOut)
+ AllOuts(FADOFAdd(1:NAddDOFOut,iBody)) = F_Add(endIndx+1:endIndx+NAddDOFOut)
+ startIndx = p%BDOFStrt(iBody) + 6
+ endIndx = p%BDOFStrt(iBody) + 5 + NAddDOFOut
+ AllOuts( ADOFDsp(1:NAddDOFOut,iBody)) = q (startIndx:endIndx)
+ AllOuts( ADOFVel(1:NAddDOFOut,iBody)) = qdot (startIndx:endIndx)
+ AllOuts( ADOFAcc(1:NAddDOFOut,iBody)) = qdotdot(startIndx:endIndx)
+ end if
end do
end if
end if
@@ -1281,136 +9144,1947 @@ SUBROUTINE SetOutParam(OutList, p, ErrStat, ErrMsg )
LOGICAL :: InvalidOutput(0:MaxOutPts) ! This array determines if the output channel is valid for this configuration
CHARACTER(*), PARAMETER :: RoutineName = "SetOutParam"
- INTEGER(IntKi), PARAMETER :: ParamIndxAry(510) = (/ & ! This lists the index into AllOuts(:) of the allowed parameters ValidParamAry(:)
- B1AddFxi , B1AddFyi , B1AddFzi , B1AddMxi , B1AddMyi , B1AddMzi , B1HdSFxi , B1HdSFyi , &
- B1HdSFzi , B1HdSMxi , B1HdSMyi , B1HdSMzi , B1Heave , B1Pitch , B1RAxi , B1RAyi , &
- B1RAzi , B1RdtFxi , B1RdtFyi , B1RdtFzi , B1RdtMxi , B1RdtMyi , B1RdtMzi , B1Roll , &
- B1RVxi , B1RVyi , B1RVzi , B1Surge , B1Sway , B1TAxi , B1TAyi , B1TAzi , &
- B1TVxi , B1TVyi , B1TVzi , B1WvsF1xi , B1WvsF1yi , B1WvsF1zi , B1WvsF2xi , B1WvsF2yi , &
- B1WvsF2zi , B1WvsFxi , B1WvsFyi , B1WvsFzi , B1WvsM1xi , B1WvsM1yi , B1WvsM1zi , B1WvsM2xi , &
- B1WvsM2yi , B1WvsM2zi , B1WvsMxi , B1WvsMyi , B1WvsMzi , B1Yaw , B2AddFxi , B2AddFyi , &
- B2AddFzi , B2AddMxi , B2AddMyi , B2AddMzi , B2HdSFxi , B2HdSFyi , B2HdSFzi , B2HdSMxi , &
- B2HdSMyi , B2HdSMzi , B2Heave , B2Pitch , B2RAxi , B2RAyi , B2RAzi , B2RdtFxi , &
- B2RdtFyi , B2RdtFzi , B2RdtMxi , B2RdtMyi , B2RdtMzi , B2Roll , B2RVxi , B2RVyi , &
- B2RVzi , B2Surge , B2Sway , B2TAxi , B2TAyi , B2TAzi , B2TVxi , B2TVyi , &
- B2TVzi , B2WvsF1xi , B2WvsF1yi , B2WvsF1zi , B2WvsF2xi , B2WvsF2yi , B2WvsF2zi , B2WvsFxi , &
- B2WvsFyi , B2WvsFzi , B2WvsM1xi , B2WvsM1yi , B2WvsM1zi , B2WvsM2xi , B2WvsM2yi , B2WvsM2zi , &
- B2WvsMxi , B2WvsMyi , B2WvsMzi , B2Yaw , B3AddFxi , B3AddFyi , B3AddFzi , B3AddMxi , &
- B3AddMyi , B3AddMzi , B3HdSFxi , B3HdSFyi , B3HdSFzi , B3HdSMxi , B3HdSMyi , B3HdSMzi , &
- B3Heave , B3Pitch , B3RAxi , B3RAyi , B3RAzi , B3RdtFxi , B3RdtFyi , B3RdtFzi , &
- B3RdtMxi , B3RdtMyi , B3RdtMzi , B3Roll , B3RVxi , B3RVyi , B3RVzi , B3Surge , &
- B3Sway , B3TAxi , B3TAyi , B3TAzi , B3TVxi , B3TVyi , B3TVzi , B3WvsF1xi , &
- B3WvsF1yi , B3WvsF1zi , B3WvsF2xi , B3WvsF2yi , B3WvsF2zi , B3WvsFxi , B3WvsFyi , B3WvsFzi , &
- B3WvsM1xi , B3WvsM1yi , B3WvsM1zi , B3WvsM2xi , B3WvsM2yi , B3WvsM2zi , B3WvsMxi , B3WvsMyi , &
- B3WvsMzi , B3Yaw , B4AddFxi , B4AddFyi , B4AddFzi , B4AddMxi , B4AddMyi , B4AddMzi , &
- B4HdSFxi , B4HdSFyi , B4HdSFzi , B4HdSMxi , B4HdSMyi , B4HdSMzi , B4Heave , B4Pitch , &
- B4RAxi , B4RAyi , B4RAzi , B4RdtFxi , B4RdtFyi , B4RdtFzi , B4RdtMxi , B4RdtMyi , &
- B4RdtMzi , B4Roll , B4RVxi , B4RVyi , B4RVzi , B4Surge , B4Sway , B4TAxi , &
- B4TAyi , B4TAzi , B4TVxi , B4TVyi , B4TVzi , B4WvsF1xi , B4WvsF1yi , B4WvsF1zi , &
- B4WvsF2xi , B4WvsF2yi , B4WvsF2zi , B4WvsFxi , B4WvsFyi , B4WvsFzi , B4WvsM1xi , B4WvsM1yi , &
- B4WvsM1zi , B4WvsM2xi , B4WvsM2yi , B4WvsM2zi , B4WvsMxi , B4WvsMyi , B4WvsMzi , B4Yaw , &
- B5AddFxi , B5AddFyi , B5AddFzi , B5AddMxi , B5AddMyi , B5AddMzi , B5HdSFxi , B5HdSFyi , &
- B5HdSFzi , B5HdSMxi , B5HdSMyi , B5HdSMzi , B5Heave , B5Pitch , B5RAxi , B5RAyi , &
- B5RAzi , B5RdtFxi , B5RdtFyi , B5RdtFzi , B5RdtMxi , B5RdtMyi , B5RdtMzi , B5Roll , &
- B5RVxi , B5RVyi , B5RVzi , B5Surge , B5Sway , B5TAxi , B5TAyi , B5TAzi , &
- B5TVxi , B5TVyi , B5TVzi , B5WvsF1xi , B5WvsF1yi , B5WvsF1zi , B5WvsF2xi , B5WvsF2yi , &
- B5WvsF2zi , B5WvsFxi , B5WvsFyi , B5WvsFzi , B5WvsM1xi , B5WvsM1yi , B5WvsM1zi , B5WvsM2xi , &
- B5WvsM2yi , B5WvsM2zi , B5WvsMxi , B5WvsMyi , B5WvsMzi , B5Yaw , B6AddFxi , B6AddFyi , &
- B6AddFzi , B6AddMxi , B6AddMyi , B6AddMzi , B6HdSFxi , B6HdSFyi , B6HdSFzi , B6HdSMxi , &
- B6HdSMyi , B6HdSMzi , B6Heave , B6Pitch , B6RAxi , B6RAyi , B6RAzi , B6RdtFxi , &
- B6RdtFyi , B6RdtFzi , B6RdtMxi , B6RdtMyi , B6RdtMzi , B6Roll , B6RVxi , B6RVyi , &
- B6RVzi , B6Surge , B6Sway , B6TAxi , B6TAyi , B6TAzi , B6TVxi , B6TVyi , &
- B6TVzi , B6WvsF1xi , B6WvsF1yi , B6WvsF1zi , B6WvsF2xi , B6WvsF2yi , B6WvsF2zi , B6WvsFxi , &
- B6WvsFyi , B6WvsFzi , B6WvsM1xi , B6WvsM1yi , B6WvsM1zi , B6WvsM2xi , B6WvsM2yi , B6WvsM2zi , &
- B6WvsMxi , B6WvsMyi , B6WvsMzi , B6Yaw , B7AddFxi , B7AddFyi , B7AddFzi , B7AddMxi , &
- B7AddMyi , B7AddMzi , B7HdSFxi , B7HdSFyi , B7HdSFzi , B7HdSMxi , B7HdSMyi , B7HdSMzi , &
- B7Heave , B7Pitch , B7RAxi , B7RAyi , B7RAzi , B7RdtFxi , B7RdtFyi , B7RdtFzi , &
- B7RdtMxi , B7RdtMyi , B7RdtMzi , B7Roll , B7RVxi , B7RVyi , B7RVzi , B7Surge , &
- B7Sway , B7TAxi , B7TAyi , B7TAzi , B7TVxi , B7TVyi , B7TVzi , B7WvsF1xi , &
- B7WvsF1yi , B7WvsF1zi , B7WvsF2xi , B7WvsF2yi , B7WvsF2zi , B7WvsFxi , B7WvsFyi , B7WvsFzi , &
- B7WvsM1xi , B7WvsM1yi , B7WvsM1zi , B7WvsM2xi , B7WvsM2yi , B7WvsM2zi , B7WvsMxi , B7WvsMyi , &
- B7WvsMzi , B7Yaw , B8AddFxi , B8AddFyi , B8AddFzi , B8AddMxi , B8AddMyi , B8AddMzi , &
- B8HdSFxi , B8HdSFyi , B8HdSFzi , B8HdSMxi , B8HdSMyi , B8HdSMzi , B8Heave , B8Pitch , &
- B8RAxi , B8RAyi , B8RAzi , B8RdtFxi , B8RdtFyi , B8RdtFzi , B8RdtMxi , B8RdtMyi , &
- B8RdtMzi , B8Roll , B8RVxi , B8RVyi , B8RVzi , B8Surge , B8Sway , B8TAxi , &
- B8TAyi , B8TAzi , B8TVxi , B8TVyi , B8TVzi , B8WvsF1xi , B8WvsF1yi , B8WvsF1zi , &
- B8WvsF2xi , B8WvsF2yi , B8WvsF2zi , B8WvsFxi , B8WvsFyi , B8WvsFzi , B8WvsM1xi , B8WvsM1yi , &
- B8WvsM1zi , B8WvsM2xi , B8WvsM2yi , B8WvsM2zi , B8WvsMxi , B8WvsMyi , B8WvsMzi , B8Yaw , &
- B9AddFxi , B9AddFyi , B9AddFzi , B9AddMxi , B9AddMyi , B9AddMzi , B9HdSFxi , B9HdSFyi , &
- B9HdSFzi , B9HdSMxi , B9HdSMyi , B9HdSMzi , B9Heave , B9Pitch , B9RAxi , B9RAyi , &
- B9RAzi , B9RdtFxi , B9RdtFyi , B9RdtFzi , B9RdtMxi , B9RdtMyi , B9RdtMzi , B9Roll , &
- B9RVxi , B9RVyi , B9RVzi , B9Surge , B9Sway , B9TAxi , B9TAyi , B9TAzi , &
- B9TVxi , B9TVyi , B9TVzi , B9WvsF1xi , B9WvsF1yi , B9WvsF1zi , B9WvsF2xi , B9WvsF2yi , &
- B9WvsF2zi , B9WvsFxi , B9WvsFyi , B9WvsFzi , B9WvsM1xi , B9WvsM1yi , B9WvsM1zi , B9WvsM2xi , &
- B9WvsM2yi , B9WvsM2zi , B9WvsMxi , B9WvsMyi , B9WvsMzi , B9Yaw , HydroFxi , HydroFyi , &
- HydroFzi , HydroMxi , HydroMyi , HydroMzi , PRPHeave , PRPPitch , PRPRAxi , PRPRAyi , &
- PRPRAzi , PRPRoll , PRPRVxi , PRPRVyi , PRPRVzi , PRPSurge , PRPSway , PRPTAxi , &
- PRPTAyi , PRPTAzi , PRPTVxi , PRPTVyi , PRPTVzi , PRPYaw /)
- CHARACTER(ChanLen), PARAMETER :: ParamUnitsAry(510) = (/ character(ChanLen) :: & ! This lists the units corresponding to the allowed parameters
- "(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(N) ","(N) ", &
- "(N) ","(N-m) ","(N-m) ","(N-m) ","(m) ","(rad) ","(rad/s^2)","(rad/s^2)", &
- "(rad/s^2)","(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(rad) ", &
- "(rad/s) ","(rad/s) ","(rad/s) ","(m) ","(m) ","(m/s^2) ","(m/s^2) ","(m/s^2) ", &
- "(m/s) ","(m/s) ","(m/s) ","(N) ","(N) ","(N) ","(N) ","(N) ", &
- "(N) ","(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ", &
- "(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(rad) ","(N) ","(N) ", &
- "(N) ","(N-m) ","(N-m) ","(N-m) ","(N) ","(N) ","(N) ","(N-m) ", &
- "(N-m) ","(N-m) ","(m) ","(rad) ","(rad/s^2)","(rad/s^2)","(rad/s^2)","(N) ", &
- "(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(rad) ","(rad/s) ","(rad/s) ", &
- "(rad/s) ","(m) ","(m) ","(m/s^2) ","(m/s^2) ","(m/s^2) ","(m/s) ","(m/s) ", &
- "(m/s) ","(N) ","(N) ","(N) ","(N) ","(N) ","(N) ","(N) ", &
- "(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ", &
- "(N-m) ","(N-m) ","(N-m) ","(rad) ","(N) ","(N) ","(N) ","(N-m) ", &
- "(N-m) ","(N-m) ","(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ", &
- "(m) ","(rad) ","(rad/s^2)","(rad/s^2)","(rad/s^2)","(N) ","(N) ","(N) ", &
- "(N-m) ","(N-m) ","(N-m) ","(rad) ","(rad/s) ","(rad/s) ","(rad/s) ","(m) ", &
- "(m) ","(m/s^2) ","(m/s^2) ","(m/s^2) ","(m/s) ","(m/s) ","(m/s) ","(N) ", &
- "(N) ","(N) ","(N) ","(N) ","(N) ","(N) ","(N) ","(N) ", &
- "(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ", &
- "(N-m) ","(rad) ","(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ", &
- "(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(m) ","(rad) ", &
- "(rad/s^2)","(rad/s^2)","(rad/s^2)","(N) ","(N) ","(N) ","(N-m) ","(N-m) ", &
- "(N-m) ","(rad) ","(rad/s) ","(rad/s) ","(rad/s) ","(m) ","(m) ","(m/s^2) ", &
- "(m/s^2) ","(m/s^2) ","(m/s) ","(m/s) ","(m/s) ","(N) ","(N) ","(N) ", &
- "(N) ","(N) ","(N) ","(N) ","(N) ","(N) ","(N-m) ","(N-m) ", &
- "(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(rad) ", &
- "(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(N) ","(N) ", &
- "(N) ","(N-m) ","(N-m) ","(N-m) ","(m) ","(rad) ","(rad/s^2)","(rad/s^2)", &
- "(rad/s^2)","(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(rad) ", &
- "(rad/s) ","(rad/s) ","(rad/s) ","(m) ","(m) ","(m/s^2) ","(m/s^2) ","(m/s^2) ", &
- "(m/s) ","(m/s) ","(m/s) ","(N) ","(N) ","(N) ","(N) ","(N) ", &
- "(N) ","(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ", &
- "(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(rad) ","(N) ","(N) ", &
- "(N) ","(N-m) ","(N-m) ","(N-m) ","(N) ","(N) ","(N) ","(N-m) ", &
- "(N-m) ","(N-m) ","(m) ","(rad) ","(rad/s^2)","(rad/s^2)","(rad/s^2)","(N) ", &
- "(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(rad) ","(rad/s) ","(rad/s) ", &
- "(rad/s) ","(m) ","(m) ","(m/s^2) ","(m/s^2) ","(m/s^2) ","(m/s) ","(m/s) ", &
- "(m/s) ","(N) ","(N) ","(N) ","(N) ","(N) ","(N) ","(N) ", &
- "(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ", &
- "(N-m) ","(N-m) ","(N-m) ","(rad) ","(N) ","(N) ","(N) ","(N-m) ", &
- "(N-m) ","(N-m) ","(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ", &
- "(m) ","(rad) ","(rad/s^2)","(rad/s^2)","(rad/s^2)","(N) ","(N) ","(N) ", &
- "(N-m) ","(N-m) ","(N-m) ","(rad) ","(rad/s) ","(rad/s) ","(rad/s) ","(m) ", &
- "(m) ","(m/s^2) ","(m/s^2) ","(m/s^2) ","(m/s) ","(m/s) ","(m/s) ","(N) ", &
- "(N) ","(N) ","(N) ","(N) ","(N) ","(N) ","(N) ","(N) ", &
- "(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ", &
- "(N-m) ","(rad) ","(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ", &
- "(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(m) ","(rad) ", &
- "(rad/s^2)","(rad/s^2)","(rad/s^2)","(N) ","(N) ","(N) ","(N-m) ","(N-m) ", &
- "(N-m) ","(rad) ","(rad/s) ","(rad/s) ","(rad/s) ","(m) ","(m) ","(m/s^2) ", &
- "(m/s^2) ","(m/s^2) ","(m/s) ","(m/s) ","(m/s) ","(N) ","(N) ","(N) ", &
- "(N) ","(N) ","(N) ","(N) ","(N) ","(N) ","(N-m) ","(N-m) ", &
- "(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(rad) ", &
- "(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(N) ","(N) ", &
- "(N) ","(N-m) ","(N-m) ","(N-m) ","(m) ","(rad) ","(rad/s^2)","(rad/s^2)", &
- "(rad/s^2)","(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(rad) ", &
- "(rad/s) ","(rad/s) ","(rad/s) ","(m) ","(m) ","(m/s^2) ","(m/s^2) ","(m/s^2) ", &
- "(m/s) ","(m/s) ","(m/s) ","(N) ","(N) ","(N) ","(N) ","(N) ", &
- "(N) ","(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ", &
- "(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(rad) ","(N) ","(N) ", &
- "(N) ","(N-m) ","(N-m) ","(N-m) ","(m) ","(rad) ","(rad/s^2)","(rad/s^2)", &
- "(rad/s^2)","(rad) ","(rad/s) ","(rad/s) ","(rad/s) ","(m) ","(m) ","(m/s^2) ", &
+ INTEGER(IntKi), PARAMETER :: ParamIndxAry1(1687) = (/ & ! This lists the index into AllOuts(:) of the allowed parameters ValidParamAry(:)
+ B1AddFxi , B1AddFyi , B1AddFzi , B1AddMxi , B1AddMyi , B1AddMzi , B1ADOF10A , &
+ B1ADOF10Add , B1ADOF10D , B1ADOF10Hds , B1ADOF10Rdt , B1ADOF10V , B1ADOF10Wvs , B1ADOF11A , &
+ B1ADOF11Add , B1ADOF11D , B1ADOF11Hds , B1ADOF11Rdt , B1ADOF11V , B1ADOF11Wvs , B1ADOF12A , &
+ B1ADOF12Add , B1ADOF12D , B1ADOF12Hds , B1ADOF12Rdt , B1ADOF12V , B1ADOF12Wvs , B1ADOF13A , &
+ B1ADOF13Add , B1ADOF13D , B1ADOF13Hds , B1ADOF13Rdt , B1ADOF13V , B1ADOF13Wvs , B1ADOF14A , &
+ B1ADOF14Add , B1ADOF14D , B1ADOF14Hds , B1ADOF14Rdt , B1ADOF14V , B1ADOF14Wvs , B1ADOF15A , &
+ B1ADOF15Add , B1ADOF15D , B1ADOF15Hds , B1ADOF15Rdt , B1ADOF15V , B1ADOF15Wvs , B1ADOF16A , &
+ B1ADOF16Add , B1ADOF16D , B1ADOF16Hds , B1ADOF16Rdt , B1ADOF16V , B1ADOF16Wvs , B1ADOF17A , &
+ B1ADOF17Add , B1ADOF17D , B1ADOF17Hds , B1ADOF17Rdt , B1ADOF17V , B1ADOF17Wvs , B1ADOF18A , &
+ B1ADOF18Add , B1ADOF18D , B1ADOF18Hds , B1ADOF18Rdt , B1ADOF18V , B1ADOF18Wvs , B1ADOF19A , &
+ B1ADOF19Add , B1ADOF19D , B1ADOF19Hds , B1ADOF19Rdt , B1ADOF19V , B1ADOF19Wvs , B1ADOF1A , &
+ B1ADOF1Add , B1ADOF1D , B1ADOF1Hds , B1ADOF1Rdt , B1ADOF1V , B1ADOF1Wvs , B1ADOF20A , &
+ B1ADOF20Add , B1ADOF20D , B1ADOF20Hds , B1ADOF20Rdt , B1ADOF20V , B1ADOF20Wvs , B1ADOF21A , &
+ B1ADOF21Add , B1ADOF21D , B1ADOF21Hds , B1ADOF21Rdt , B1ADOF21V , B1ADOF21Wvs , B1ADOF22A , &
+ B1ADOF22Add , B1ADOF22D , B1ADOF22Hds , B1ADOF22Rdt , B1ADOF22V , B1ADOF22Wvs , B1ADOF23A , &
+ B1ADOF23Add , B1ADOF23D , B1ADOF23Hds , B1ADOF23Rdt , B1ADOF23V , B1ADOF23Wvs , B1ADOF24A , &
+ B1ADOF24Add , B1ADOF24D , B1ADOF24Hds , B1ADOF24Rdt , B1ADOF24V , B1ADOF24Wvs , B1ADOF25A , &
+ B1ADOF25Add , B1ADOF25D , B1ADOF25Hds , B1ADOF25Rdt , B1ADOF25V , B1ADOF25Wvs , B1ADOF26A , &
+ B1ADOF26Add , B1ADOF26D , B1ADOF26Hds , B1ADOF26Rdt , B1ADOF26V , B1ADOF26Wvs , B1ADOF27A , &
+ B1ADOF27Add , B1ADOF27D , B1ADOF27Hds , B1ADOF27Rdt , B1ADOF27V , B1ADOF27Wvs , B1ADOF28A , &
+ B1ADOF28Add , B1ADOF28D , B1ADOF28Hds , B1ADOF28Rdt , B1ADOF28V , B1ADOF28Wvs , B1ADOF29A , &
+ B1ADOF29Add , B1ADOF29D , B1ADOF29Hds , B1ADOF29Rdt , B1ADOF29V , B1ADOF29Wvs , B1ADOF2A , &
+ B1ADOF2Add , B1ADOF2D , B1ADOF2Hds , B1ADOF2Rdt , B1ADOF2V , B1ADOF2Wvs , B1ADOF30A , &
+ B1ADOF30Add , B1ADOF30D , B1ADOF30Hds , B1ADOF30Rdt , B1ADOF30V , B1ADOF30Wvs , B1ADOF31A , &
+ B1ADOF31Add , B1ADOF31D , B1ADOF31Hds , B1ADOF31Rdt , B1ADOF31V , B1ADOF31Wvs , B1ADOF32A , &
+ B1ADOF32Add , B1ADOF32D , B1ADOF32Hds , B1ADOF32Rdt , B1ADOF32V , B1ADOF32Wvs , B1ADOF33A , &
+ B1ADOF33Add , B1ADOF33D , B1ADOF33Hds , B1ADOF33Rdt , B1ADOF33V , B1ADOF33Wvs , B1ADOF34A , &
+ B1ADOF34Add , B1ADOF34D , B1ADOF34Hds , B1ADOF34Rdt , B1ADOF34V , B1ADOF34Wvs , B1ADOF35A , &
+ B1ADOF35Add , B1ADOF35D , B1ADOF35Hds , B1ADOF35Rdt , B1ADOF35V , B1ADOF35Wvs , B1ADOF36A , &
+ B1ADOF36Add , B1ADOF36D , B1ADOF36Hds , B1ADOF36Rdt , B1ADOF36V , B1ADOF36Wvs , B1ADOF37A , &
+ B1ADOF37Add , B1ADOF37D , B1ADOF37Hds , B1ADOF37Rdt , B1ADOF37V , B1ADOF37Wvs , B1ADOF38A , &
+ B1ADOF38Add , B1ADOF38D , B1ADOF38Hds , B1ADOF38Rdt , B1ADOF38V , B1ADOF38Wvs , B1ADOF39A , &
+ B1ADOF39Add , B1ADOF39D , B1ADOF39Hds , B1ADOF39Rdt , B1ADOF39V , B1ADOF39Wvs , B1ADOF3A , &
+ B1ADOF3Add , B1ADOF3D , B1ADOF3Hds , B1ADOF3Rdt , B1ADOF3V , B1ADOF3Wvs , B1ADOF40A , &
+ B1ADOF40Add , B1ADOF40D , B1ADOF40Hds , B1ADOF40Rdt , B1ADOF40V , B1ADOF40Wvs , B1ADOF41A , &
+ B1ADOF41Add , B1ADOF41D , B1ADOF41Hds , B1ADOF41Rdt , B1ADOF41V , B1ADOF41Wvs , B1ADOF42A , &
+ B1ADOF42Add , B1ADOF42D , B1ADOF42Hds , B1ADOF42Rdt , B1ADOF42V , B1ADOF42Wvs , B1ADOF43A , &
+ B1ADOF43Add , B1ADOF43D , B1ADOF43Hds , B1ADOF43Rdt , B1ADOF43V , B1ADOF43Wvs , B1ADOF44A , &
+ B1ADOF44Add , B1ADOF44D , B1ADOF44Hds , B1ADOF44Rdt , B1ADOF44V , B1ADOF44Wvs , B1ADOF45A , &
+ B1ADOF45Add , B1ADOF45D , B1ADOF45Hds , B1ADOF45Rdt , B1ADOF45V , B1ADOF45Wvs , B1ADOF46A , &
+ B1ADOF46Add , B1ADOF46D , B1ADOF46Hds , B1ADOF46Rdt , B1ADOF46V , B1ADOF46Wvs , B1ADOF47A , &
+ B1ADOF47Add , B1ADOF47D , B1ADOF47Hds , B1ADOF47Rdt , B1ADOF47V , B1ADOF47Wvs , B1ADOF48A , &
+ B1ADOF48Add , B1ADOF48D , B1ADOF48Hds , B1ADOF48Rdt , B1ADOF48V , B1ADOF48Wvs , B1ADOF49A , &
+ B1ADOF49Add , B1ADOF49D , B1ADOF49Hds , B1ADOF49Rdt , B1ADOF49V , B1ADOF49Wvs , B1ADOF4A , &
+ B1ADOF4Add , B1ADOF4D , B1ADOF4Hds , B1ADOF4Rdt , B1ADOF4V , B1ADOF4Wvs , B1ADOF50A , &
+ B1ADOF50Add , B1ADOF50D , B1ADOF50Hds , B1ADOF50Rdt , B1ADOF50V , B1ADOF50Wvs , B1ADOF51A , &
+ B1ADOF51Add , B1ADOF51D , B1ADOF51Hds , B1ADOF51Rdt , B1ADOF51V , B1ADOF51Wvs , B1ADOF52A , &
+ B1ADOF52Add , B1ADOF52D , B1ADOF52Hds , B1ADOF52Rdt , B1ADOF52V , B1ADOF52Wvs , B1ADOF53A , &
+ B1ADOF53Add , B1ADOF53D , B1ADOF53Hds , B1ADOF53Rdt , B1ADOF53V , B1ADOF53Wvs , B1ADOF54A , &
+ B1ADOF54Add , B1ADOF54D , B1ADOF54Hds , B1ADOF54Rdt , B1ADOF54V , B1ADOF54Wvs , B1ADOF55A , &
+ B1ADOF55Add , B1ADOF55D , B1ADOF55Hds , B1ADOF55Rdt , B1ADOF55V , B1ADOF55Wvs , B1ADOF56A , &
+ B1ADOF56Add , B1ADOF56D , B1ADOF56Hds , B1ADOF56Rdt , B1ADOF56V , B1ADOF56Wvs , B1ADOF57A , &
+ B1ADOF57Add , B1ADOF57D , B1ADOF57Hds , B1ADOF57Rdt , B1ADOF57V , B1ADOF57Wvs , B1ADOF58A , &
+ B1ADOF58Add , B1ADOF58D , B1ADOF58Hds , B1ADOF58Rdt , B1ADOF58V , B1ADOF58Wvs , B1ADOF59A , &
+ B1ADOF59Add , B1ADOF59D , B1ADOF59Hds , B1ADOF59Rdt , B1ADOF59V , B1ADOF59Wvs , B1ADOF5A , &
+ B1ADOF5Add , B1ADOF5D , B1ADOF5Hds , B1ADOF5Rdt , B1ADOF5V , B1ADOF5Wvs , B1ADOF60A , &
+ B1ADOF60Add , B1ADOF60D , B1ADOF60Hds , B1ADOF60Rdt , B1ADOF60V , B1ADOF60Wvs , B1ADOF61A , &
+ B1ADOF61Add , B1ADOF61D , B1ADOF61Hds , B1ADOF61Rdt , B1ADOF61V , B1ADOF61Wvs , B1ADOF62A , &
+ B1ADOF62Add , B1ADOF62D , B1ADOF62Hds , B1ADOF62Rdt , B1ADOF62V , B1ADOF62Wvs , B1ADOF63A , &
+ B1ADOF63Add , B1ADOF63D , B1ADOF63Hds , B1ADOF63Rdt , B1ADOF63V , B1ADOF63Wvs , B1ADOF64A , &
+ B1ADOF64Add , B1ADOF64D , B1ADOF64Hds , B1ADOF64Rdt , B1ADOF64V , B1ADOF64Wvs , B1ADOF65A , &
+ B1ADOF65Add , B1ADOF65D , B1ADOF65Hds , B1ADOF65Rdt , B1ADOF65V , B1ADOF65Wvs , B1ADOF66A , &
+ B1ADOF66Add , B1ADOF66D , B1ADOF66Hds , B1ADOF66Rdt , B1ADOF66V , B1ADOF66Wvs , B1ADOF67A , &
+ B1ADOF67Add , B1ADOF67D , B1ADOF67Hds , B1ADOF67Rdt , B1ADOF67V , B1ADOF67Wvs , B1ADOF68A , &
+ B1ADOF68Add , B1ADOF68D , B1ADOF68Hds , B1ADOF68Rdt , B1ADOF68V , B1ADOF68Wvs , B1ADOF69A , &
+ B1ADOF69Add , B1ADOF69D , B1ADOF69Hds , B1ADOF69Rdt , B1ADOF69V , B1ADOF69Wvs , B1ADOF6A , &
+ B1ADOF6Add , B1ADOF6D , B1ADOF6Hds , B1ADOF6Rdt , B1ADOF6V , B1ADOF6Wvs , B1ADOF70A , &
+ B1ADOF70Add , B1ADOF70D , B1ADOF70Hds , B1ADOF70Rdt , B1ADOF70V , B1ADOF70Wvs , B1ADOF71A , &
+ B1ADOF71Add , B1ADOF71D , B1ADOF71Hds , B1ADOF71Rdt , B1ADOF71V , B1ADOF71Wvs , B1ADOF72A , &
+ B1ADOF72Add , B1ADOF72D , B1ADOF72Hds , B1ADOF72Rdt , B1ADOF72V , B1ADOF72Wvs , B1ADOF73A , &
+ B1ADOF73Add , B1ADOF73D , B1ADOF73Hds , B1ADOF73Rdt , B1ADOF73V , B1ADOF73Wvs , B1ADOF74A , &
+ B1ADOF74Add , B1ADOF74D , B1ADOF74Hds , B1ADOF74Rdt , B1ADOF74V , B1ADOF74Wvs , B1ADOF75A , &
+ B1ADOF75Add , B1ADOF75D , B1ADOF75Hds , B1ADOF75Rdt , B1ADOF75V , B1ADOF75Wvs , B1ADOF76A , &
+ B1ADOF76Add , B1ADOF76D , B1ADOF76Hds , B1ADOF76Rdt , B1ADOF76V , B1ADOF76Wvs , B1ADOF77A , &
+ B1ADOF77Add , B1ADOF77D , B1ADOF77Hds , B1ADOF77Rdt , B1ADOF77V , B1ADOF77Wvs , B1ADOF78A , &
+ B1ADOF78Add , B1ADOF78D , B1ADOF78Hds , B1ADOF78Rdt , B1ADOF78V , B1ADOF78Wvs , B1ADOF79A , &
+ B1ADOF79Add , B1ADOF79D , B1ADOF79Hds , B1ADOF79Rdt , B1ADOF79V , B1ADOF79Wvs , B1ADOF7A , &
+ B1ADOF7Add , B1ADOF7D , B1ADOF7Hds , B1ADOF7Rdt , B1ADOF7V , B1ADOF7Wvs , B1ADOF80A , &
+ B1ADOF80Add , B1ADOF80D , B1ADOF80Hds , B1ADOF80Rdt , B1ADOF80V , B1ADOF80Wvs , B1ADOF81A , &
+ B1ADOF81Add , B1ADOF81D , B1ADOF81Hds , B1ADOF81Rdt , B1ADOF81V , B1ADOF81Wvs , B1ADOF82A , &
+ B1ADOF82Add , B1ADOF82D , B1ADOF82Hds , B1ADOF82Rdt , B1ADOF82V , B1ADOF82Wvs , B1ADOF83A , &
+ B1ADOF83Add , B1ADOF83D , B1ADOF83Hds , B1ADOF83Rdt , B1ADOF83V , B1ADOF83Wvs , B1ADOF84A , &
+ B1ADOF84Add , B1ADOF84D , B1ADOF84Hds , B1ADOF84Rdt , B1ADOF84V , B1ADOF84Wvs , B1ADOF85A , &
+ B1ADOF85Add , B1ADOF85D , B1ADOF85Hds , B1ADOF85Rdt , B1ADOF85V , B1ADOF85Wvs , B1ADOF86A , &
+ B1ADOF86Add , B1ADOF86D , B1ADOF86Hds , B1ADOF86Rdt , B1ADOF86V , B1ADOF86Wvs , B1ADOF87A , &
+ B1ADOF87Add , B1ADOF87D , B1ADOF87Hds , B1ADOF87Rdt , B1ADOF87V , B1ADOF87Wvs , B1ADOF88A , &
+ B1ADOF88Add , B1ADOF88D , B1ADOF88Hds , B1ADOF88Rdt , B1ADOF88V , B1ADOF88Wvs , B1ADOF89A , &
+ B1ADOF89Add , B1ADOF89D , B1ADOF89Hds , B1ADOF89Rdt , B1ADOF89V , B1ADOF89Wvs , B1ADOF8A , &
+ B1ADOF8Add , B1ADOF8D , B1ADOF8Hds , B1ADOF8Rdt , B1ADOF8V , B1ADOF8Wvs , B1ADOF90A , &
+ B1ADOF90Add , B1ADOF90D , B1ADOF90Hds , B1ADOF90Rdt , B1ADOF90V , B1ADOF90Wvs , B1ADOF91A , &
+ B1ADOF91Add , B1ADOF91D , B1ADOF91Hds , B1ADOF91Rdt , B1ADOF91V , B1ADOF91Wvs , B1ADOF92A , &
+ B1ADOF92Add , B1ADOF92D , B1ADOF92Hds , B1ADOF92Rdt , B1ADOF92V , B1ADOF92Wvs , B1ADOF93A , &
+ B1ADOF93Add , B1ADOF93D , B1ADOF93Hds , B1ADOF93Rdt , B1ADOF93V , B1ADOF93Wvs , B1ADOF94A , &
+ B1ADOF94Add , B1ADOF94D , B1ADOF94Hds , B1ADOF94Rdt , B1ADOF94V , B1ADOF94Wvs , B1ADOF95A , &
+ B1ADOF95Add , B1ADOF95D , B1ADOF95Hds , B1ADOF95Rdt , B1ADOF95V , B1ADOF95Wvs , B1ADOF96A , &
+ B1ADOF96Add , B1ADOF96D , B1ADOF96Hds , B1ADOF96Rdt , B1ADOF96V , B1ADOF96Wvs , B1ADOF97A , &
+ B1ADOF97Add , B1ADOF97D , B1ADOF97Hds , B1ADOF97Rdt , B1ADOF97V , B1ADOF97Wvs , B1ADOF98A , &
+ B1ADOF98Add , B1ADOF98D , B1ADOF98Hds , B1ADOF98Rdt , B1ADOF98V , B1ADOF98Wvs , B1ADOF99A , &
+ B1ADOF99Add , B1ADOF99D , B1ADOF99Hds , B1ADOF99Rdt , B1ADOF99V , B1ADOF99Wvs , B1ADOF9A , &
+ B1ADOF9Add , B1ADOF9D , B1ADOF9Hds , B1ADOF9Rdt , B1ADOF9V , B1ADOF9Wvs , B1HdSFxi , &
+ B1HdSFyi , B1HdSFzi , B1HdSMxi , B1HdSMyi , B1HdSMzi , B1Heave , B1Pitch , &
+ B1RAxi , B1RAyi , B1RAzi , B1RdtFxi , B1RdtFyi , B1RdtFzi , B1RdtMxi , &
+ B1RdtMyi , B1RdtMzi , B1Roll , B1RVxi , B1RVyi , B1RVzi , B1Surge , &
+ B1Sway , B1TAxi , B1TAyi , B1TAzi , B1TVxi , B1TVyi , B1TVzi , &
+ B1WvsF1xi , B1WvsF1yi , B1WvsF1zi , B1WvsF2xi , B1WvsF2yi , B1WvsF2zi , B1WvsFxi , &
+ B1WvsFyi , B1WvsFzi , B1WvsM1xi , B1WvsM1yi , B1WvsM1zi , B1WvsM2xi , B1WvsM2yi , &
+ B1WvsM2zi , B1WvsMxi , B1WvsMyi , B1WvsMzi , B1Yaw , B2AddFxi , B2AddFyi , &
+ B2AddFzi , B2AddMxi , B2AddMyi , B2AddMzi , B2ADOF10A , B2ADOF10Add , B2ADOF10D , &
+ B2ADOF10Hds , B2ADOF10Rdt , B2ADOF10V , B2ADOF10Wvs , B2ADOF11A , B2ADOF11Add , B2ADOF11D , &
+ B2ADOF11Hds , B2ADOF11Rdt , B2ADOF11V , B2ADOF11Wvs , B2ADOF12A , B2ADOF12Add , B2ADOF12D , &
+ B2ADOF12Hds , B2ADOF12Rdt , B2ADOF12V , B2ADOF12Wvs , B2ADOF13A , B2ADOF13Add , B2ADOF13D , &
+ B2ADOF13Hds , B2ADOF13Rdt , B2ADOF13V , B2ADOF13Wvs , B2ADOF14A , B2ADOF14Add , B2ADOF14D , &
+ B2ADOF14Hds , B2ADOF14Rdt , B2ADOF14V , B2ADOF14Wvs , B2ADOF15A , B2ADOF15Add , B2ADOF15D , &
+ B2ADOF15Hds , B2ADOF15Rdt , B2ADOF15V , B2ADOF15Wvs , B2ADOF16A , B2ADOF16Add , B2ADOF16D , &
+ B2ADOF16Hds , B2ADOF16Rdt , B2ADOF16V , B2ADOF16Wvs , B2ADOF17A , B2ADOF17Add , B2ADOF17D , &
+ B2ADOF17Hds , B2ADOF17Rdt , B2ADOF17V , B2ADOF17Wvs , B2ADOF18A , B2ADOF18Add , B2ADOF18D , &
+ B2ADOF18Hds , B2ADOF18Rdt , B2ADOF18V , B2ADOF18Wvs , B2ADOF19A , B2ADOF19Add , B2ADOF19D , &
+ B2ADOF19Hds , B2ADOF19Rdt , B2ADOF19V , B2ADOF19Wvs , B2ADOF1A , B2ADOF1Add , B2ADOF1D , &
+ B2ADOF1Hds , B2ADOF1Rdt , B2ADOF1V , B2ADOF1Wvs , B2ADOF20A , B2ADOF20Add , B2ADOF20D , &
+ B2ADOF20Hds , B2ADOF20Rdt , B2ADOF20V , B2ADOF20Wvs , B2ADOF21A , B2ADOF21Add , B2ADOF21D , &
+ B2ADOF21Hds , B2ADOF21Rdt , B2ADOF21V , B2ADOF21Wvs , B2ADOF22A , B2ADOF22Add , B2ADOF22D , &
+ B2ADOF22Hds , B2ADOF22Rdt , B2ADOF22V , B2ADOF22Wvs , B2ADOF23A , B2ADOF23Add , B2ADOF23D , &
+ B2ADOF23Hds , B2ADOF23Rdt , B2ADOF23V , B2ADOF23Wvs , B2ADOF24A , B2ADOF24Add , B2ADOF24D , &
+ B2ADOF24Hds , B2ADOF24Rdt , B2ADOF24V , B2ADOF24Wvs , B2ADOF25A , B2ADOF25Add , B2ADOF25D , &
+ B2ADOF25Hds , B2ADOF25Rdt , B2ADOF25V , B2ADOF25Wvs , B2ADOF26A , B2ADOF26Add , B2ADOF26D , &
+ B2ADOF26Hds , B2ADOF26Rdt , B2ADOF26V , B2ADOF26Wvs , B2ADOF27A , B2ADOF27Add , B2ADOF27D , &
+ B2ADOF27Hds , B2ADOF27Rdt , B2ADOF27V , B2ADOF27Wvs , B2ADOF28A , B2ADOF28Add , B2ADOF28D , &
+ B2ADOF28Hds , B2ADOF28Rdt , B2ADOF28V , B2ADOF28Wvs , B2ADOF29A , B2ADOF29Add , B2ADOF29D , &
+ B2ADOF29Hds , B2ADOF29Rdt , B2ADOF29V , B2ADOF29Wvs , B2ADOF2A , B2ADOF2Add , B2ADOF2D , &
+ B2ADOF2Hds , B2ADOF2Rdt , B2ADOF2V , B2ADOF2Wvs , B2ADOF30A , B2ADOF30Add , B2ADOF30D , &
+ B2ADOF30Hds , B2ADOF30Rdt , B2ADOF30V , B2ADOF30Wvs , B2ADOF31A , B2ADOF31Add , B2ADOF31D , &
+ B2ADOF31Hds , B2ADOF31Rdt , B2ADOF31V , B2ADOF31Wvs , B2ADOF32A , B2ADOF32Add , B2ADOF32D , &
+ B2ADOF32Hds , B2ADOF32Rdt , B2ADOF32V , B2ADOF32Wvs , B2ADOF33A , B2ADOF33Add , B2ADOF33D , &
+ B2ADOF33Hds , B2ADOF33Rdt , B2ADOF33V , B2ADOF33Wvs , B2ADOF34A , B2ADOF34Add , B2ADOF34D , &
+ B2ADOF34Hds , B2ADOF34Rdt , B2ADOF34V , B2ADOF34Wvs , B2ADOF35A , B2ADOF35Add , B2ADOF35D , &
+ B2ADOF35Hds , B2ADOF35Rdt , B2ADOF35V , B2ADOF35Wvs , B2ADOF36A , B2ADOF36Add , B2ADOF36D , &
+ B2ADOF36Hds , B2ADOF36Rdt , B2ADOF36V , B2ADOF36Wvs , B2ADOF37A , B2ADOF37Add , B2ADOF37D , &
+ B2ADOF37Hds , B2ADOF37Rdt , B2ADOF37V , B2ADOF37Wvs , B2ADOF38A , B2ADOF38Add , B2ADOF38D , &
+ B2ADOF38Hds , B2ADOF38Rdt , B2ADOF38V , B2ADOF38Wvs , B2ADOF39A , B2ADOF39Add , B2ADOF39D , &
+ B2ADOF39Hds , B2ADOF39Rdt , B2ADOF39V , B2ADOF39Wvs , B2ADOF3A , B2ADOF3Add , B2ADOF3D , &
+ B2ADOF3Hds , B2ADOF3Rdt , B2ADOF3V , B2ADOF3Wvs , B2ADOF40A , B2ADOF40Add , B2ADOF40D , &
+ B2ADOF40Hds , B2ADOF40Rdt , B2ADOF40V , B2ADOF40Wvs , B2ADOF41A , B2ADOF41Add , B2ADOF41D , &
+ B2ADOF41Hds , B2ADOF41Rdt , B2ADOF41V , B2ADOF41Wvs , B2ADOF42A , B2ADOF42Add , B2ADOF42D , &
+ B2ADOF42Hds , B2ADOF42Rdt , B2ADOF42V , B2ADOF42Wvs , B2ADOF43A , B2ADOF43Add , B2ADOF43D , &
+ B2ADOF43Hds , B2ADOF43Rdt , B2ADOF43V , B2ADOF43Wvs , B2ADOF44A , B2ADOF44Add , B2ADOF44D , &
+ B2ADOF44Hds , B2ADOF44Rdt , B2ADOF44V , B2ADOF44Wvs , B2ADOF45A , B2ADOF45Add , B2ADOF45D , &
+ B2ADOF45Hds , B2ADOF45Rdt , B2ADOF45V , B2ADOF45Wvs , B2ADOF46A , B2ADOF46Add , B2ADOF46D , &
+ B2ADOF46Hds , B2ADOF46Rdt , B2ADOF46V , B2ADOF46Wvs , B2ADOF47A , B2ADOF47Add , B2ADOF47D , &
+ B2ADOF47Hds , B2ADOF47Rdt , B2ADOF47V , B2ADOF47Wvs , B2ADOF48A , B2ADOF48Add , B2ADOF48D , &
+ B2ADOF48Hds , B2ADOF48Rdt , B2ADOF48V , B2ADOF48Wvs , B2ADOF49A , B2ADOF49Add , B2ADOF49D , &
+ B2ADOF49Hds , B2ADOF49Rdt , B2ADOF49V , B2ADOF49Wvs , B2ADOF4A , B2ADOF4Add , B2ADOF4D , &
+ B2ADOF4Hds , B2ADOF4Rdt , B2ADOF4V , B2ADOF4Wvs , B2ADOF50A , B2ADOF50Add , B2ADOF50D , &
+ B2ADOF50Hds , B2ADOF50Rdt , B2ADOF50V , B2ADOF50Wvs , B2ADOF51A , B2ADOF51Add , B2ADOF51D , &
+ B2ADOF51Hds , B2ADOF51Rdt , B2ADOF51V , B2ADOF51Wvs , B2ADOF52A , B2ADOF52Add , B2ADOF52D , &
+ B2ADOF52Hds , B2ADOF52Rdt , B2ADOF52V , B2ADOF52Wvs , B2ADOF53A , B2ADOF53Add , B2ADOF53D , &
+ B2ADOF53Hds , B2ADOF53Rdt , B2ADOF53V , B2ADOF53Wvs , B2ADOF54A , B2ADOF54Add , B2ADOF54D , &
+ B2ADOF54Hds , B2ADOF54Rdt , B2ADOF54V , B2ADOF54Wvs , B2ADOF55A , B2ADOF55Add , B2ADOF55D , &
+ B2ADOF55Hds , B2ADOF55Rdt , B2ADOF55V , B2ADOF55Wvs , B2ADOF56A , B2ADOF56Add , B2ADOF56D , &
+ B2ADOF56Hds , B2ADOF56Rdt , B2ADOF56V , B2ADOF56Wvs , B2ADOF57A , B2ADOF57Add , B2ADOF57D , &
+ B2ADOF57Hds , B2ADOF57Rdt , B2ADOF57V , B2ADOF57Wvs , B2ADOF58A , B2ADOF58Add , B2ADOF58D , &
+ B2ADOF58Hds , B2ADOF58Rdt , B2ADOF58V , B2ADOF58Wvs , B2ADOF59A , B2ADOF59Add , B2ADOF59D , &
+ B2ADOF59Hds , B2ADOF59Rdt , B2ADOF59V , B2ADOF59Wvs , B2ADOF5A , B2ADOF5Add , B2ADOF5D , &
+ B2ADOF5Hds , B2ADOF5Rdt , B2ADOF5V , B2ADOF5Wvs , B2ADOF60A , B2ADOF60Add , B2ADOF60D , &
+ B2ADOF60Hds , B2ADOF60Rdt , B2ADOF60V , B2ADOF60Wvs , B2ADOF61A , B2ADOF61Add , B2ADOF61D , &
+ B2ADOF61Hds , B2ADOF61Rdt , B2ADOF61V , B2ADOF61Wvs , B2ADOF62A , B2ADOF62Add , B2ADOF62D , &
+ B2ADOF62Hds , B2ADOF62Rdt , B2ADOF62V , B2ADOF62Wvs , B2ADOF63A , B2ADOF63Add , B2ADOF63D , &
+ B2ADOF63Hds , B2ADOF63Rdt , B2ADOF63V , B2ADOF63Wvs , B2ADOF64A , B2ADOF64Add , B2ADOF64D , &
+ B2ADOF64Hds , B2ADOF64Rdt , B2ADOF64V , B2ADOF64Wvs , B2ADOF65A , B2ADOF65Add , B2ADOF65D , &
+ B2ADOF65Hds , B2ADOF65Rdt , B2ADOF65V , B2ADOF65Wvs , B2ADOF66A , B2ADOF66Add , B2ADOF66D , &
+ B2ADOF66Hds , B2ADOF66Rdt , B2ADOF66V , B2ADOF66Wvs , B2ADOF67A , B2ADOF67Add , B2ADOF67D , &
+ B2ADOF67Hds , B2ADOF67Rdt , B2ADOF67V , B2ADOF67Wvs , B2ADOF68A , B2ADOF68Add , B2ADOF68D , &
+ B2ADOF68Hds , B2ADOF68Rdt , B2ADOF68V , B2ADOF68Wvs , B2ADOF69A , B2ADOF69Add , B2ADOF69D , &
+ B2ADOF69Hds , B2ADOF69Rdt , B2ADOF69V , B2ADOF69Wvs , B2ADOF6A , B2ADOF6Add , B2ADOF6D , &
+ B2ADOF6Hds , B2ADOF6Rdt , B2ADOF6V , B2ADOF6Wvs , B2ADOF70A , B2ADOF70Add , B2ADOF70D , &
+ B2ADOF70Hds , B2ADOF70Rdt , B2ADOF70V , B2ADOF70Wvs , B2ADOF71A , B2ADOF71Add , B2ADOF71D , &
+ B2ADOF71Hds , B2ADOF71Rdt , B2ADOF71V , B2ADOF71Wvs , B2ADOF72A , B2ADOF72Add , B2ADOF72D , &
+ B2ADOF72Hds , B2ADOF72Rdt , B2ADOF72V , B2ADOF72Wvs , B2ADOF73A , B2ADOF73Add , B2ADOF73D , &
+ B2ADOF73Hds , B2ADOF73Rdt , B2ADOF73V , B2ADOF73Wvs , B2ADOF74A , B2ADOF74Add , B2ADOF74D , &
+ B2ADOF74Hds , B2ADOF74Rdt , B2ADOF74V , B2ADOF74Wvs , B2ADOF75A , B2ADOF75Add , B2ADOF75D , &
+ B2ADOF75Hds , B2ADOF75Rdt , B2ADOF75V , B2ADOF75Wvs , B2ADOF76A , B2ADOF76Add , B2ADOF76D , &
+ B2ADOF76Hds , B2ADOF76Rdt , B2ADOF76V , B2ADOF76Wvs , B2ADOF77A , B2ADOF77Add , B2ADOF77D , &
+ B2ADOF77Hds , B2ADOF77Rdt , B2ADOF77V , B2ADOF77Wvs , B2ADOF78A , B2ADOF78Add , B2ADOF78D , &
+ B2ADOF78Hds , B2ADOF78Rdt , B2ADOF78V , B2ADOF78Wvs , B2ADOF79A , B2ADOF79Add , B2ADOF79D , &
+ B2ADOF79Hds , B2ADOF79Rdt , B2ADOF79V , B2ADOF79Wvs , B2ADOF7A , B2ADOF7Add , B2ADOF7D , &
+ B2ADOF7Hds , B2ADOF7Rdt , B2ADOF7V , B2ADOF7Wvs , B2ADOF80A , B2ADOF80Add , B2ADOF80D , &
+ B2ADOF80Hds , B2ADOF80Rdt , B2ADOF80V , B2ADOF80Wvs , B2ADOF81A , B2ADOF81Add , B2ADOF81D , &
+ B2ADOF81Hds , B2ADOF81Rdt , B2ADOF81V , B2ADOF81Wvs , B2ADOF82A , B2ADOF82Add , B2ADOF82D , &
+ B2ADOF82Hds , B2ADOF82Rdt , B2ADOF82V , B2ADOF82Wvs , B2ADOF83A , B2ADOF83Add , B2ADOF83D , &
+ B2ADOF83Hds , B2ADOF83Rdt , B2ADOF83V , B2ADOF83Wvs , B2ADOF84A , B2ADOF84Add , B2ADOF84D , &
+ B2ADOF84Hds , B2ADOF84Rdt , B2ADOF84V , B2ADOF84Wvs , B2ADOF85A , B2ADOF85Add , B2ADOF85D , &
+ B2ADOF85Hds , B2ADOF85Rdt , B2ADOF85V , B2ADOF85Wvs , B2ADOF86A , B2ADOF86Add , B2ADOF86D , &
+ B2ADOF86Hds , B2ADOF86Rdt , B2ADOF86V , B2ADOF86Wvs , B2ADOF87A , B2ADOF87Add , B2ADOF87D , &
+ B2ADOF87Hds , B2ADOF87Rdt , B2ADOF87V , B2ADOF87Wvs , B2ADOF88A , B2ADOF88Add , B2ADOF88D , &
+ B2ADOF88Hds , B2ADOF88Rdt , B2ADOF88V , B2ADOF88Wvs , B2ADOF89A , B2ADOF89Add , B2ADOF89D , &
+ B2ADOF89Hds , B2ADOF89Rdt , B2ADOF89V , B2ADOF89Wvs , B2ADOF8A , B2ADOF8Add , B2ADOF8D , &
+ B2ADOF8Hds , B2ADOF8Rdt , B2ADOF8V , B2ADOF8Wvs , B2ADOF90A , B2ADOF90Add , B2ADOF90D , &
+ B2ADOF90Hds , B2ADOF90Rdt , B2ADOF90V , B2ADOF90Wvs , B2ADOF91A , B2ADOF91Add , B2ADOF91D , &
+ B2ADOF91Hds , B2ADOF91Rdt , B2ADOF91V , B2ADOF91Wvs , B2ADOF92A , B2ADOF92Add , B2ADOF92D , &
+ B2ADOF92Hds , B2ADOF92Rdt , B2ADOF92V , B2ADOF92Wvs , B2ADOF93A , B2ADOF93Add , B2ADOF93D , &
+ B2ADOF93Hds , B2ADOF93Rdt , B2ADOF93V , B2ADOF93Wvs , B2ADOF94A , B2ADOF94Add , B2ADOF94D , &
+ B2ADOF94Hds , B2ADOF94Rdt , B2ADOF94V , B2ADOF94Wvs , B2ADOF95A , B2ADOF95Add , B2ADOF95D , &
+ B2ADOF95Hds , B2ADOF95Rdt , B2ADOF95V , B2ADOF95Wvs , B2ADOF96A , B2ADOF96Add , B2ADOF96D , &
+ B2ADOF96Hds , B2ADOF96Rdt , B2ADOF96V , B2ADOF96Wvs , B2ADOF97A , B2ADOF97Add , B2ADOF97D , &
+ B2ADOF97Hds , B2ADOF97Rdt , B2ADOF97V , B2ADOF97Wvs , B2ADOF98A , B2ADOF98Add , B2ADOF98D , &
+ B2ADOF98Hds , B2ADOF98Rdt , B2ADOF98V , B2ADOF98Wvs , B2ADOF99A , B2ADOF99Add , B2ADOF99D , &
+ B2ADOF99Hds , B2ADOF99Rdt , B2ADOF99V , B2ADOF99Wvs , B2ADOF9A , B2ADOF9Add , B2ADOF9D , &
+ B2ADOF9Hds , B2ADOF9Rdt , B2ADOF9V , B2ADOF9Wvs , B2HdSFxi , B2HdSFyi , B2HdSFzi , &
+ B2HdSMxi , B2HdSMyi , B2HdSMzi , B2Heave , B2Pitch , B2RAxi , B2RAyi , &
+ B2RAzi , B2RdtFxi , B2RdtFyi , B2RdtFzi , B2RdtMxi , B2RdtMyi , B2RdtMzi , &
+ B2Roll , B2RVxi , B2RVyi , B2RVzi , B2Surge , B2Sway , B2TAxi , &
+ B2TAyi , B2TAzi , B2TVxi , B2TVyi , B2TVzi , B2WvsF1xi , B2WvsF1yi , &
+ B2WvsF1zi , B2WvsF2xi , B2WvsF2yi , B2WvsF2zi , B2WvsFxi , B2WvsFyi , B2WvsFzi , &
+ B2WvsM1xi , B2WvsM1yi , B2WvsM1zi , B2WvsM2xi , B2WvsM2yi , B2WvsM2zi , B2WvsMxi , &
+ B2WvsMyi , B2WvsMzi , B2Yaw , B3AddFxi , B3AddFyi , B3AddFzi , B3AddMxi , &
+ B3AddMyi , B3AddMzi , B3ADOF10A , B3ADOF10Add , B3ADOF10D , B3ADOF10Hds , B3ADOF10Rdt , &
+ B3ADOF10V , B3ADOF10Wvs , B3ADOF11A , B3ADOF11Add , B3ADOF11D , B3ADOF11Hds , B3ADOF11Rdt , &
+ B3ADOF11V , B3ADOF11Wvs , B3ADOF12A , B3ADOF12Add , B3ADOF12D , B3ADOF12Hds , B3ADOF12Rdt , &
+ B3ADOF12V , B3ADOF12Wvs , B3ADOF13A , B3ADOF13Add , B3ADOF13D , B3ADOF13Hds , B3ADOF13Rdt , &
+ B3ADOF13V , B3ADOF13Wvs , B3ADOF14A , B3ADOF14Add , B3ADOF14D , B3ADOF14Hds , B3ADOF14Rdt , &
+ B3ADOF14V , B3ADOF14Wvs , B3ADOF15A , B3ADOF15Add , B3ADOF15D , B3ADOF15Hds , B3ADOF15Rdt , &
+ B3ADOF15V , B3ADOF15Wvs , B3ADOF16A , B3ADOF16Add , B3ADOF16D , B3ADOF16Hds , B3ADOF16Rdt , &
+ B3ADOF16V , B3ADOF16Wvs , B3ADOF17A , B3ADOF17Add , B3ADOF17D , B3ADOF17Hds , B3ADOF17Rdt , &
+ B3ADOF17V , B3ADOF17Wvs , B3ADOF18A , B3ADOF18Add , B3ADOF18D , B3ADOF18Hds , B3ADOF18Rdt , &
+ B3ADOF18V , B3ADOF18Wvs , B3ADOF19A , B3ADOF19Add , B3ADOF19D , B3ADOF19Hds , B3ADOF19Rdt , &
+ B3ADOF19V , B3ADOF19Wvs , B3ADOF1A , B3ADOF1Add , B3ADOF1D , B3ADOF1Hds , B3ADOF1Rdt , &
+ B3ADOF1V , B3ADOF1Wvs , B3ADOF20A , B3ADOF20Add , B3ADOF20D , B3ADOF20Hds , B3ADOF20Rdt , &
+ B3ADOF20V , B3ADOF20Wvs , B3ADOF21A , B3ADOF21Add , B3ADOF21D , B3ADOF21Hds , B3ADOF21Rdt , &
+ B3ADOF21V , B3ADOF21Wvs , B3ADOF22A , B3ADOF22Add , B3ADOF22D , B3ADOF22Hds , B3ADOF22Rdt , &
+ B3ADOF22V , B3ADOF22Wvs , B3ADOF23A , B3ADOF23Add , B3ADOF23D , B3ADOF23Hds , B3ADOF23Rdt , &
+ B3ADOF23V , B3ADOF23Wvs , B3ADOF24A , B3ADOF24Add , B3ADOF24D , B3ADOF24Hds , B3ADOF24Rdt , &
+ B3ADOF24V , B3ADOF24Wvs , B3ADOF25A , B3ADOF25Add , B3ADOF25D , B3ADOF25Hds , B3ADOF25Rdt , &
+ B3ADOF25V , B3ADOF25Wvs , B3ADOF26A , B3ADOF26Add , B3ADOF26D , B3ADOF26Hds , B3ADOF26Rdt , &
+ B3ADOF26V , B3ADOF26Wvs , B3ADOF27A , B3ADOF27Add , B3ADOF27D , B3ADOF27Hds , B3ADOF27Rdt , &
+ B3ADOF27V , B3ADOF27Wvs , B3ADOF28A , B3ADOF28Add , B3ADOF28D , B3ADOF28Hds , B3ADOF28Rdt , &
+ B3ADOF28V , B3ADOF28Wvs , B3ADOF29A , B3ADOF29Add , B3ADOF29D , B3ADOF29Hds , B3ADOF29Rdt , &
+ B3ADOF29V , B3ADOF29Wvs , B3ADOF2A , B3ADOF2Add , B3ADOF2D , B3ADOF2Hds , B3ADOF2Rdt , &
+ B3ADOF2V , B3ADOF2Wvs , B3ADOF30A , B3ADOF30Add , B3ADOF30D , B3ADOF30Hds , B3ADOF30Rdt , &
+ B3ADOF30V , B3ADOF30Wvs , B3ADOF31A , B3ADOF31Add , B3ADOF31D , B3ADOF31Hds , B3ADOF31Rdt , &
+ B3ADOF31V , B3ADOF31Wvs , B3ADOF32A , B3ADOF32Add , B3ADOF32D , B3ADOF32Hds , B3ADOF32Rdt , &
+ B3ADOF32V , B3ADOF32Wvs , B3ADOF33A , B3ADOF33Add , B3ADOF33D , B3ADOF33Hds , B3ADOF33Rdt , &
+ B3ADOF33V , B3ADOF33Wvs , B3ADOF34A , B3ADOF34Add , B3ADOF34D , B3ADOF34Hds , B3ADOF34Rdt /)
+ INTEGER(IntKi), PARAMETER :: ParamIndxAry2(1687) = (/ & ! This lists the index into AllOuts(:) of the allowed parameters ValidParamAry(:)
+ B3ADOF34V , B3ADOF34Wvs , B3ADOF35A , B3ADOF35Add , B3ADOF35D , B3ADOF35Hds , B3ADOF35Rdt , &
+ B3ADOF35V , B3ADOF35Wvs , B3ADOF36A , B3ADOF36Add , B3ADOF36D , B3ADOF36Hds , B3ADOF36Rdt , &
+ B3ADOF36V , B3ADOF36Wvs , B3ADOF37A , B3ADOF37Add , B3ADOF37D , B3ADOF37Hds , B3ADOF37Rdt , &
+ B3ADOF37V , B3ADOF37Wvs , B3ADOF38A , B3ADOF38Add , B3ADOF38D , B3ADOF38Hds , B3ADOF38Rdt , &
+ B3ADOF38V , B3ADOF38Wvs , B3ADOF39A , B3ADOF39Add , B3ADOF39D , B3ADOF39Hds , B3ADOF39Rdt , &
+ B3ADOF39V , B3ADOF39Wvs , B3ADOF3A , B3ADOF3Add , B3ADOF3D , B3ADOF3Hds , B3ADOF3Rdt , &
+ B3ADOF3V , B3ADOF3Wvs , B3ADOF40A , B3ADOF40Add , B3ADOF40D , B3ADOF40Hds , B3ADOF40Rdt , &
+ B3ADOF40V , B3ADOF40Wvs , B3ADOF41A , B3ADOF41Add , B3ADOF41D , B3ADOF41Hds , B3ADOF41Rdt , &
+ B3ADOF41V , B3ADOF41Wvs , B3ADOF42A , B3ADOF42Add , B3ADOF42D , B3ADOF42Hds , B3ADOF42Rdt , &
+ B3ADOF42V , B3ADOF42Wvs , B3ADOF43A , B3ADOF43Add , B3ADOF43D , B3ADOF43Hds , B3ADOF43Rdt , &
+ B3ADOF43V , B3ADOF43Wvs , B3ADOF44A , B3ADOF44Add , B3ADOF44D , B3ADOF44Hds , B3ADOF44Rdt , &
+ B3ADOF44V , B3ADOF44Wvs , B3ADOF45A , B3ADOF45Add , B3ADOF45D , B3ADOF45Hds , B3ADOF45Rdt , &
+ B3ADOF45V , B3ADOF45Wvs , B3ADOF46A , B3ADOF46Add , B3ADOF46D , B3ADOF46Hds , B3ADOF46Rdt , &
+ B3ADOF46V , B3ADOF46Wvs , B3ADOF47A , B3ADOF47Add , B3ADOF47D , B3ADOF47Hds , B3ADOF47Rdt , &
+ B3ADOF47V , B3ADOF47Wvs , B3ADOF48A , B3ADOF48Add , B3ADOF48D , B3ADOF48Hds , B3ADOF48Rdt , &
+ B3ADOF48V , B3ADOF48Wvs , B3ADOF49A , B3ADOF49Add , B3ADOF49D , B3ADOF49Hds , B3ADOF49Rdt , &
+ B3ADOF49V , B3ADOF49Wvs , B3ADOF4A , B3ADOF4Add , B3ADOF4D , B3ADOF4Hds , B3ADOF4Rdt , &
+ B3ADOF4V , B3ADOF4Wvs , B3ADOF50A , B3ADOF50Add , B3ADOF50D , B3ADOF50Hds , B3ADOF50Rdt , &
+ B3ADOF50V , B3ADOF50Wvs , B3ADOF51A , B3ADOF51Add , B3ADOF51D , B3ADOF51Hds , B3ADOF51Rdt , &
+ B3ADOF51V , B3ADOF51Wvs , B3ADOF52A , B3ADOF52Add , B3ADOF52D , B3ADOF52Hds , B3ADOF52Rdt , &
+ B3ADOF52V , B3ADOF52Wvs , B3ADOF53A , B3ADOF53Add , B3ADOF53D , B3ADOF53Hds , B3ADOF53Rdt , &
+ B3ADOF53V , B3ADOF53Wvs , B3ADOF54A , B3ADOF54Add , B3ADOF54D , B3ADOF54Hds , B3ADOF54Rdt , &
+ B3ADOF54V , B3ADOF54Wvs , B3ADOF55A , B3ADOF55Add , B3ADOF55D , B3ADOF55Hds , B3ADOF55Rdt , &
+ B3ADOF55V , B3ADOF55Wvs , B3ADOF56A , B3ADOF56Add , B3ADOF56D , B3ADOF56Hds , B3ADOF56Rdt , &
+ B3ADOF56V , B3ADOF56Wvs , B3ADOF57A , B3ADOF57Add , B3ADOF57D , B3ADOF57Hds , B3ADOF57Rdt , &
+ B3ADOF57V , B3ADOF57Wvs , B3ADOF58A , B3ADOF58Add , B3ADOF58D , B3ADOF58Hds , B3ADOF58Rdt , &
+ B3ADOF58V , B3ADOF58Wvs , B3ADOF59A , B3ADOF59Add , B3ADOF59D , B3ADOF59Hds , B3ADOF59Rdt , &
+ B3ADOF59V , B3ADOF59Wvs , B3ADOF5A , B3ADOF5Add , B3ADOF5D , B3ADOF5Hds , B3ADOF5Rdt , &
+ B3ADOF5V , B3ADOF5Wvs , B3ADOF60A , B3ADOF60Add , B3ADOF60D , B3ADOF60Hds , B3ADOF60Rdt , &
+ B3ADOF60V , B3ADOF60Wvs , B3ADOF61A , B3ADOF61Add , B3ADOF61D , B3ADOF61Hds , B3ADOF61Rdt , &
+ B3ADOF61V , B3ADOF61Wvs , B3ADOF62A , B3ADOF62Add , B3ADOF62D , B3ADOF62Hds , B3ADOF62Rdt , &
+ B3ADOF62V , B3ADOF62Wvs , B3ADOF63A , B3ADOF63Add , B3ADOF63D , B3ADOF63Hds , B3ADOF63Rdt , &
+ B3ADOF63V , B3ADOF63Wvs , B3ADOF64A , B3ADOF64Add , B3ADOF64D , B3ADOF64Hds , B3ADOF64Rdt , &
+ B3ADOF64V , B3ADOF64Wvs , B3ADOF65A , B3ADOF65Add , B3ADOF65D , B3ADOF65Hds , B3ADOF65Rdt , &
+ B3ADOF65V , B3ADOF65Wvs , B3ADOF66A , B3ADOF66Add , B3ADOF66D , B3ADOF66Hds , B3ADOF66Rdt , &
+ B3ADOF66V , B3ADOF66Wvs , B3ADOF67A , B3ADOF67Add , B3ADOF67D , B3ADOF67Hds , B3ADOF67Rdt , &
+ B3ADOF67V , B3ADOF67Wvs , B3ADOF68A , B3ADOF68Add , B3ADOF68D , B3ADOF68Hds , B3ADOF68Rdt , &
+ B3ADOF68V , B3ADOF68Wvs , B3ADOF69A , B3ADOF69Add , B3ADOF69D , B3ADOF69Hds , B3ADOF69Rdt , &
+ B3ADOF69V , B3ADOF69Wvs , B3ADOF6A , B3ADOF6Add , B3ADOF6D , B3ADOF6Hds , B3ADOF6Rdt , &
+ B3ADOF6V , B3ADOF6Wvs , B3ADOF70A , B3ADOF70Add , B3ADOF70D , B3ADOF70Hds , B3ADOF70Rdt , &
+ B3ADOF70V , B3ADOF70Wvs , B3ADOF71A , B3ADOF71Add , B3ADOF71D , B3ADOF71Hds , B3ADOF71Rdt , &
+ B3ADOF71V , B3ADOF71Wvs , B3ADOF72A , B3ADOF72Add , B3ADOF72D , B3ADOF72Hds , B3ADOF72Rdt , &
+ B3ADOF72V , B3ADOF72Wvs , B3ADOF73A , B3ADOF73Add , B3ADOF73D , B3ADOF73Hds , B3ADOF73Rdt , &
+ B3ADOF73V , B3ADOF73Wvs , B3ADOF74A , B3ADOF74Add , B3ADOF74D , B3ADOF74Hds , B3ADOF74Rdt , &
+ B3ADOF74V , B3ADOF74Wvs , B3ADOF75A , B3ADOF75Add , B3ADOF75D , B3ADOF75Hds , B3ADOF75Rdt , &
+ B3ADOF75V , B3ADOF75Wvs , B3ADOF76A , B3ADOF76Add , B3ADOF76D , B3ADOF76Hds , B3ADOF76Rdt , &
+ B3ADOF76V , B3ADOF76Wvs , B3ADOF77A , B3ADOF77Add , B3ADOF77D , B3ADOF77Hds , B3ADOF77Rdt , &
+ B3ADOF77V , B3ADOF77Wvs , B3ADOF78A , B3ADOF78Add , B3ADOF78D , B3ADOF78Hds , B3ADOF78Rdt , &
+ B3ADOF78V , B3ADOF78Wvs , B3ADOF79A , B3ADOF79Add , B3ADOF79D , B3ADOF79Hds , B3ADOF79Rdt , &
+ B3ADOF79V , B3ADOF79Wvs , B3ADOF7A , B3ADOF7Add , B3ADOF7D , B3ADOF7Hds , B3ADOF7Rdt , &
+ B3ADOF7V , B3ADOF7Wvs , B3ADOF80A , B3ADOF80Add , B3ADOF80D , B3ADOF80Hds , B3ADOF80Rdt , &
+ B3ADOF80V , B3ADOF80Wvs , B3ADOF81A , B3ADOF81Add , B3ADOF81D , B3ADOF81Hds , B3ADOF81Rdt , &
+ B3ADOF81V , B3ADOF81Wvs , B3ADOF82A , B3ADOF82Add , B3ADOF82D , B3ADOF82Hds , B3ADOF82Rdt , &
+ B3ADOF82V , B3ADOF82Wvs , B3ADOF83A , B3ADOF83Add , B3ADOF83D , B3ADOF83Hds , B3ADOF83Rdt , &
+ B3ADOF83V , B3ADOF83Wvs , B3ADOF84A , B3ADOF84Add , B3ADOF84D , B3ADOF84Hds , B3ADOF84Rdt , &
+ B3ADOF84V , B3ADOF84Wvs , B3ADOF85A , B3ADOF85Add , B3ADOF85D , B3ADOF85Hds , B3ADOF85Rdt , &
+ B3ADOF85V , B3ADOF85Wvs , B3ADOF86A , B3ADOF86Add , B3ADOF86D , B3ADOF86Hds , B3ADOF86Rdt , &
+ B3ADOF86V , B3ADOF86Wvs , B3ADOF87A , B3ADOF87Add , B3ADOF87D , B3ADOF87Hds , B3ADOF87Rdt , &
+ B3ADOF87V , B3ADOF87Wvs , B3ADOF88A , B3ADOF88Add , B3ADOF88D , B3ADOF88Hds , B3ADOF88Rdt , &
+ B3ADOF88V , B3ADOF88Wvs , B3ADOF89A , B3ADOF89Add , B3ADOF89D , B3ADOF89Hds , B3ADOF89Rdt , &
+ B3ADOF89V , B3ADOF89Wvs , B3ADOF8A , B3ADOF8Add , B3ADOF8D , B3ADOF8Hds , B3ADOF8Rdt , &
+ B3ADOF8V , B3ADOF8Wvs , B3ADOF90A , B3ADOF90Add , B3ADOF90D , B3ADOF90Hds , B3ADOF90Rdt , &
+ B3ADOF90V , B3ADOF90Wvs , B3ADOF91A , B3ADOF91Add , B3ADOF91D , B3ADOF91Hds , B3ADOF91Rdt , &
+ B3ADOF91V , B3ADOF91Wvs , B3ADOF92A , B3ADOF92Add , B3ADOF92D , B3ADOF92Hds , B3ADOF92Rdt , &
+ B3ADOF92V , B3ADOF92Wvs , B3ADOF93A , B3ADOF93Add , B3ADOF93D , B3ADOF93Hds , B3ADOF93Rdt , &
+ B3ADOF93V , B3ADOF93Wvs , B3ADOF94A , B3ADOF94Add , B3ADOF94D , B3ADOF94Hds , B3ADOF94Rdt , &
+ B3ADOF94V , B3ADOF94Wvs , B3ADOF95A , B3ADOF95Add , B3ADOF95D , B3ADOF95Hds , B3ADOF95Rdt , &
+ B3ADOF95V , B3ADOF95Wvs , B3ADOF96A , B3ADOF96Add , B3ADOF96D , B3ADOF96Hds , B3ADOF96Rdt , &
+ B3ADOF96V , B3ADOF96Wvs , B3ADOF97A , B3ADOF97Add , B3ADOF97D , B3ADOF97Hds , B3ADOF97Rdt , &
+ B3ADOF97V , B3ADOF97Wvs , B3ADOF98A , B3ADOF98Add , B3ADOF98D , B3ADOF98Hds , B3ADOF98Rdt , &
+ B3ADOF98V , B3ADOF98Wvs , B3ADOF99A , B3ADOF99Add , B3ADOF99D , B3ADOF99Hds , B3ADOF99Rdt , &
+ B3ADOF99V , B3ADOF99Wvs , B3ADOF9A , B3ADOF9Add , B3ADOF9D , B3ADOF9Hds , B3ADOF9Rdt , &
+ B3ADOF9V , B3ADOF9Wvs , B3HdSFxi , B3HdSFyi , B3HdSFzi , B3HdSMxi , B3HdSMyi , &
+ B3HdSMzi , B3Heave , B3Pitch , B3RAxi , B3RAyi , B3RAzi , B3RdtFxi , &
+ B3RdtFyi , B3RdtFzi , B3RdtMxi , B3RdtMyi , B3RdtMzi , B3Roll , B3RVxi , &
+ B3RVyi , B3RVzi , B3Surge , B3Sway , B3TAxi , B3TAyi , B3TAzi , &
+ B3TVxi , B3TVyi , B3TVzi , B3WvsF1xi , B3WvsF1yi , B3WvsF1zi , B3WvsF2xi , &
+ B3WvsF2yi , B3WvsF2zi , B3WvsFxi , B3WvsFyi , B3WvsFzi , B3WvsM1xi , B3WvsM1yi , &
+ B3WvsM1zi , B3WvsM2xi , B3WvsM2yi , B3WvsM2zi , B3WvsMxi , B3WvsMyi , B3WvsMzi , &
+ B3Yaw , B4AddFxi , B4AddFyi , B4AddFzi , B4AddMxi , B4AddMyi , B4AddMzi , &
+ B4ADOF10A , B4ADOF10Add , B4ADOF10D , B4ADOF10Hds , B4ADOF10Rdt , B4ADOF10V , B4ADOF10Wvs , &
+ B4ADOF11A , B4ADOF11Add , B4ADOF11D , B4ADOF11Hds , B4ADOF11Rdt , B4ADOF11V , B4ADOF11Wvs , &
+ B4ADOF12A , B4ADOF12Add , B4ADOF12D , B4ADOF12Hds , B4ADOF12Rdt , B4ADOF12V , B4ADOF12Wvs , &
+ B4ADOF13A , B4ADOF13Add , B4ADOF13D , B4ADOF13Hds , B4ADOF13Rdt , B4ADOF13V , B4ADOF13Wvs , &
+ B4ADOF14A , B4ADOF14Add , B4ADOF14D , B4ADOF14Hds , B4ADOF14Rdt , B4ADOF14V , B4ADOF14Wvs , &
+ B4ADOF15A , B4ADOF15Add , B4ADOF15D , B4ADOF15Hds , B4ADOF15Rdt , B4ADOF15V , B4ADOF15Wvs , &
+ B4ADOF16A , B4ADOF16Add , B4ADOF16D , B4ADOF16Hds , B4ADOF16Rdt , B4ADOF16V , B4ADOF16Wvs , &
+ B4ADOF17A , B4ADOF17Add , B4ADOF17D , B4ADOF17Hds , B4ADOF17Rdt , B4ADOF17V , B4ADOF17Wvs , &
+ B4ADOF18A , B4ADOF18Add , B4ADOF18D , B4ADOF18Hds , B4ADOF18Rdt , B4ADOF18V , B4ADOF18Wvs , &
+ B4ADOF19A , B4ADOF19Add , B4ADOF19D , B4ADOF19Hds , B4ADOF19Rdt , B4ADOF19V , B4ADOF19Wvs , &
+ B4ADOF1A , B4ADOF1Add , B4ADOF1D , B4ADOF1Hds , B4ADOF1Rdt , B4ADOF1V , B4ADOF1Wvs , &
+ B4ADOF20A , B4ADOF20Add , B4ADOF20D , B4ADOF20Hds , B4ADOF20Rdt , B4ADOF20V , B4ADOF20Wvs , &
+ B4ADOF21A , B4ADOF21Add , B4ADOF21D , B4ADOF21Hds , B4ADOF21Rdt , B4ADOF21V , B4ADOF21Wvs , &
+ B4ADOF22A , B4ADOF22Add , B4ADOF22D , B4ADOF22Hds , B4ADOF22Rdt , B4ADOF22V , B4ADOF22Wvs , &
+ B4ADOF23A , B4ADOF23Add , B4ADOF23D , B4ADOF23Hds , B4ADOF23Rdt , B4ADOF23V , B4ADOF23Wvs , &
+ B4ADOF24A , B4ADOF24Add , B4ADOF24D , B4ADOF24Hds , B4ADOF24Rdt , B4ADOF24V , B4ADOF24Wvs , &
+ B4ADOF25A , B4ADOF25Add , B4ADOF25D , B4ADOF25Hds , B4ADOF25Rdt , B4ADOF25V , B4ADOF25Wvs , &
+ B4ADOF26A , B4ADOF26Add , B4ADOF26D , B4ADOF26Hds , B4ADOF26Rdt , B4ADOF26V , B4ADOF26Wvs , &
+ B4ADOF27A , B4ADOF27Add , B4ADOF27D , B4ADOF27Hds , B4ADOF27Rdt , B4ADOF27V , B4ADOF27Wvs , &
+ B4ADOF28A , B4ADOF28Add , B4ADOF28D , B4ADOF28Hds , B4ADOF28Rdt , B4ADOF28V , B4ADOF28Wvs , &
+ B4ADOF29A , B4ADOF29Add , B4ADOF29D , B4ADOF29Hds , B4ADOF29Rdt , B4ADOF29V , B4ADOF29Wvs , &
+ B4ADOF2A , B4ADOF2Add , B4ADOF2D , B4ADOF2Hds , B4ADOF2Rdt , B4ADOF2V , B4ADOF2Wvs , &
+ B4ADOF30A , B4ADOF30Add , B4ADOF30D , B4ADOF30Hds , B4ADOF30Rdt , B4ADOF30V , B4ADOF30Wvs , &
+ B4ADOF31A , B4ADOF31Add , B4ADOF31D , B4ADOF31Hds , B4ADOF31Rdt , B4ADOF31V , B4ADOF31Wvs , &
+ B4ADOF32A , B4ADOF32Add , B4ADOF32D , B4ADOF32Hds , B4ADOF32Rdt , B4ADOF32V , B4ADOF32Wvs , &
+ B4ADOF33A , B4ADOF33Add , B4ADOF33D , B4ADOF33Hds , B4ADOF33Rdt , B4ADOF33V , B4ADOF33Wvs , &
+ B4ADOF34A , B4ADOF34Add , B4ADOF34D , B4ADOF34Hds , B4ADOF34Rdt , B4ADOF34V , B4ADOF34Wvs , &
+ B4ADOF35A , B4ADOF35Add , B4ADOF35D , B4ADOF35Hds , B4ADOF35Rdt , B4ADOF35V , B4ADOF35Wvs , &
+ B4ADOF36A , B4ADOF36Add , B4ADOF36D , B4ADOF36Hds , B4ADOF36Rdt , B4ADOF36V , B4ADOF36Wvs , &
+ B4ADOF37A , B4ADOF37Add , B4ADOF37D , B4ADOF37Hds , B4ADOF37Rdt , B4ADOF37V , B4ADOF37Wvs , &
+ B4ADOF38A , B4ADOF38Add , B4ADOF38D , B4ADOF38Hds , B4ADOF38Rdt , B4ADOF38V , B4ADOF38Wvs , &
+ B4ADOF39A , B4ADOF39Add , B4ADOF39D , B4ADOF39Hds , B4ADOF39Rdt , B4ADOF39V , B4ADOF39Wvs , &
+ B4ADOF3A , B4ADOF3Add , B4ADOF3D , B4ADOF3Hds , B4ADOF3Rdt , B4ADOF3V , B4ADOF3Wvs , &
+ B4ADOF40A , B4ADOF40Add , B4ADOF40D , B4ADOF40Hds , B4ADOF40Rdt , B4ADOF40V , B4ADOF40Wvs , &
+ B4ADOF41A , B4ADOF41Add , B4ADOF41D , B4ADOF41Hds , B4ADOF41Rdt , B4ADOF41V , B4ADOF41Wvs , &
+ B4ADOF42A , B4ADOF42Add , B4ADOF42D , B4ADOF42Hds , B4ADOF42Rdt , B4ADOF42V , B4ADOF42Wvs , &
+ B4ADOF43A , B4ADOF43Add , B4ADOF43D , B4ADOF43Hds , B4ADOF43Rdt , B4ADOF43V , B4ADOF43Wvs , &
+ B4ADOF44A , B4ADOF44Add , B4ADOF44D , B4ADOF44Hds , B4ADOF44Rdt , B4ADOF44V , B4ADOF44Wvs , &
+ B4ADOF45A , B4ADOF45Add , B4ADOF45D , B4ADOF45Hds , B4ADOF45Rdt , B4ADOF45V , B4ADOF45Wvs , &
+ B4ADOF46A , B4ADOF46Add , B4ADOF46D , B4ADOF46Hds , B4ADOF46Rdt , B4ADOF46V , B4ADOF46Wvs , &
+ B4ADOF47A , B4ADOF47Add , B4ADOF47D , B4ADOF47Hds , B4ADOF47Rdt , B4ADOF47V , B4ADOF47Wvs , &
+ B4ADOF48A , B4ADOF48Add , B4ADOF48D , B4ADOF48Hds , B4ADOF48Rdt , B4ADOF48V , B4ADOF48Wvs , &
+ B4ADOF49A , B4ADOF49Add , B4ADOF49D , B4ADOF49Hds , B4ADOF49Rdt , B4ADOF49V , B4ADOF49Wvs , &
+ B4ADOF4A , B4ADOF4Add , B4ADOF4D , B4ADOF4Hds , B4ADOF4Rdt , B4ADOF4V , B4ADOF4Wvs , &
+ B4ADOF50A , B4ADOF50Add , B4ADOF50D , B4ADOF50Hds , B4ADOF50Rdt , B4ADOF50V , B4ADOF50Wvs , &
+ B4ADOF51A , B4ADOF51Add , B4ADOF51D , B4ADOF51Hds , B4ADOF51Rdt , B4ADOF51V , B4ADOF51Wvs , &
+ B4ADOF52A , B4ADOF52Add , B4ADOF52D , B4ADOF52Hds , B4ADOF52Rdt , B4ADOF52V , B4ADOF52Wvs , &
+ B4ADOF53A , B4ADOF53Add , B4ADOF53D , B4ADOF53Hds , B4ADOF53Rdt , B4ADOF53V , B4ADOF53Wvs , &
+ B4ADOF54A , B4ADOF54Add , B4ADOF54D , B4ADOF54Hds , B4ADOF54Rdt , B4ADOF54V , B4ADOF54Wvs , &
+ B4ADOF55A , B4ADOF55Add , B4ADOF55D , B4ADOF55Hds , B4ADOF55Rdt , B4ADOF55V , B4ADOF55Wvs , &
+ B4ADOF56A , B4ADOF56Add , B4ADOF56D , B4ADOF56Hds , B4ADOF56Rdt , B4ADOF56V , B4ADOF56Wvs , &
+ B4ADOF57A , B4ADOF57Add , B4ADOF57D , B4ADOF57Hds , B4ADOF57Rdt , B4ADOF57V , B4ADOF57Wvs , &
+ B4ADOF58A , B4ADOF58Add , B4ADOF58D , B4ADOF58Hds , B4ADOF58Rdt , B4ADOF58V , B4ADOF58Wvs , &
+ B4ADOF59A , B4ADOF59Add , B4ADOF59D , B4ADOF59Hds , B4ADOF59Rdt , B4ADOF59V , B4ADOF59Wvs , &
+ B4ADOF5A , B4ADOF5Add , B4ADOF5D , B4ADOF5Hds , B4ADOF5Rdt , B4ADOF5V , B4ADOF5Wvs , &
+ B4ADOF60A , B4ADOF60Add , B4ADOF60D , B4ADOF60Hds , B4ADOF60Rdt , B4ADOF60V , B4ADOF60Wvs , &
+ B4ADOF61A , B4ADOF61Add , B4ADOF61D , B4ADOF61Hds , B4ADOF61Rdt , B4ADOF61V , B4ADOF61Wvs , &
+ B4ADOF62A , B4ADOF62Add , B4ADOF62D , B4ADOF62Hds , B4ADOF62Rdt , B4ADOF62V , B4ADOF62Wvs , &
+ B4ADOF63A , B4ADOF63Add , B4ADOF63D , B4ADOF63Hds , B4ADOF63Rdt , B4ADOF63V , B4ADOF63Wvs , &
+ B4ADOF64A , B4ADOF64Add , B4ADOF64D , B4ADOF64Hds , B4ADOF64Rdt , B4ADOF64V , B4ADOF64Wvs , &
+ B4ADOF65A , B4ADOF65Add , B4ADOF65D , B4ADOF65Hds , B4ADOF65Rdt , B4ADOF65V , B4ADOF65Wvs , &
+ B4ADOF66A , B4ADOF66Add , B4ADOF66D , B4ADOF66Hds , B4ADOF66Rdt , B4ADOF66V , B4ADOF66Wvs , &
+ B4ADOF67A , B4ADOF67Add , B4ADOF67D , B4ADOF67Hds , B4ADOF67Rdt , B4ADOF67V , B4ADOF67Wvs , &
+ B4ADOF68A , B4ADOF68Add , B4ADOF68D , B4ADOF68Hds , B4ADOF68Rdt , B4ADOF68V , B4ADOF68Wvs , &
+ B4ADOF69A , B4ADOF69Add , B4ADOF69D , B4ADOF69Hds , B4ADOF69Rdt , B4ADOF69V , B4ADOF69Wvs , &
+ B4ADOF6A , B4ADOF6Add , B4ADOF6D , B4ADOF6Hds , B4ADOF6Rdt , B4ADOF6V , B4ADOF6Wvs , &
+ B4ADOF70A , B4ADOF70Add , B4ADOF70D , B4ADOF70Hds , B4ADOF70Rdt , B4ADOF70V , B4ADOF70Wvs , &
+ B4ADOF71A , B4ADOF71Add , B4ADOF71D , B4ADOF71Hds , B4ADOF71Rdt , B4ADOF71V , B4ADOF71Wvs , &
+ B4ADOF72A , B4ADOF72Add , B4ADOF72D , B4ADOF72Hds , B4ADOF72Rdt , B4ADOF72V , B4ADOF72Wvs , &
+ B4ADOF73A , B4ADOF73Add , B4ADOF73D , B4ADOF73Hds , B4ADOF73Rdt , B4ADOF73V , B4ADOF73Wvs , &
+ B4ADOF74A , B4ADOF74Add , B4ADOF74D , B4ADOF74Hds , B4ADOF74Rdt , B4ADOF74V , B4ADOF74Wvs , &
+ B4ADOF75A , B4ADOF75Add , B4ADOF75D , B4ADOF75Hds , B4ADOF75Rdt , B4ADOF75V , B4ADOF75Wvs , &
+ B4ADOF76A , B4ADOF76Add , B4ADOF76D , B4ADOF76Hds , B4ADOF76Rdt , B4ADOF76V , B4ADOF76Wvs , &
+ B4ADOF77A , B4ADOF77Add , B4ADOF77D , B4ADOF77Hds , B4ADOF77Rdt , B4ADOF77V , B4ADOF77Wvs , &
+ B4ADOF78A , B4ADOF78Add , B4ADOF78D , B4ADOF78Hds , B4ADOF78Rdt , B4ADOF78V , B4ADOF78Wvs , &
+ B4ADOF79A , B4ADOF79Add , B4ADOF79D , B4ADOF79Hds , B4ADOF79Rdt , B4ADOF79V , B4ADOF79Wvs , &
+ B4ADOF7A , B4ADOF7Add , B4ADOF7D , B4ADOF7Hds , B4ADOF7Rdt , B4ADOF7V , B4ADOF7Wvs , &
+ B4ADOF80A , B4ADOF80Add , B4ADOF80D , B4ADOF80Hds , B4ADOF80Rdt , B4ADOF80V , B4ADOF80Wvs , &
+ B4ADOF81A , B4ADOF81Add , B4ADOF81D , B4ADOF81Hds , B4ADOF81Rdt , B4ADOF81V , B4ADOF81Wvs , &
+ B4ADOF82A , B4ADOF82Add , B4ADOF82D , B4ADOF82Hds , B4ADOF82Rdt , B4ADOF82V , B4ADOF82Wvs , &
+ B4ADOF83A , B4ADOF83Add , B4ADOF83D , B4ADOF83Hds , B4ADOF83Rdt , B4ADOF83V , B4ADOF83Wvs , &
+ B4ADOF84A , B4ADOF84Add , B4ADOF84D , B4ADOF84Hds , B4ADOF84Rdt , B4ADOF84V , B4ADOF84Wvs , &
+ B4ADOF85A , B4ADOF85Add , B4ADOF85D , B4ADOF85Hds , B4ADOF85Rdt , B4ADOF85V , B4ADOF85Wvs , &
+ B4ADOF86A , B4ADOF86Add , B4ADOF86D , B4ADOF86Hds , B4ADOF86Rdt , B4ADOF86V , B4ADOF86Wvs , &
+ B4ADOF87A , B4ADOF87Add , B4ADOF87D , B4ADOF87Hds , B4ADOF87Rdt , B4ADOF87V , B4ADOF87Wvs , &
+ B4ADOF88A , B4ADOF88Add , B4ADOF88D , B4ADOF88Hds , B4ADOF88Rdt , B4ADOF88V , B4ADOF88Wvs , &
+ B4ADOF89A , B4ADOF89Add , B4ADOF89D , B4ADOF89Hds , B4ADOF89Rdt , B4ADOF89V , B4ADOF89Wvs , &
+ B4ADOF8A , B4ADOF8Add , B4ADOF8D , B4ADOF8Hds , B4ADOF8Rdt , B4ADOF8V , B4ADOF8Wvs , &
+ B4ADOF90A , B4ADOF90Add , B4ADOF90D , B4ADOF90Hds , B4ADOF90Rdt , B4ADOF90V , B4ADOF90Wvs , &
+ B4ADOF91A , B4ADOF91Add , B4ADOF91D , B4ADOF91Hds , B4ADOF91Rdt , B4ADOF91V , B4ADOF91Wvs , &
+ B4ADOF92A , B4ADOF92Add , B4ADOF92D , B4ADOF92Hds , B4ADOF92Rdt , B4ADOF92V , B4ADOF92Wvs , &
+ B4ADOF93A , B4ADOF93Add , B4ADOF93D , B4ADOF93Hds , B4ADOF93Rdt , B4ADOF93V , B4ADOF93Wvs , &
+ B4ADOF94A , B4ADOF94Add , B4ADOF94D , B4ADOF94Hds , B4ADOF94Rdt , B4ADOF94V , B4ADOF94Wvs , &
+ B4ADOF95A , B4ADOF95Add , B4ADOF95D , B4ADOF95Hds , B4ADOF95Rdt , B4ADOF95V , B4ADOF95Wvs , &
+ B4ADOF96A , B4ADOF96Add , B4ADOF96D , B4ADOF96Hds , B4ADOF96Rdt , B4ADOF96V , B4ADOF96Wvs , &
+ B4ADOF97A , B4ADOF97Add , B4ADOF97D , B4ADOF97Hds , B4ADOF97Rdt , B4ADOF97V , B4ADOF97Wvs , &
+ B4ADOF98A , B4ADOF98Add , B4ADOF98D , B4ADOF98Hds , B4ADOF98Rdt , B4ADOF98V , B4ADOF98Wvs , &
+ B4ADOF99A , B4ADOF99Add , B4ADOF99D , B4ADOF99Hds , B4ADOF99Rdt , B4ADOF99V , B4ADOF99Wvs , &
+ B4ADOF9A , B4ADOF9Add , B4ADOF9D , B4ADOF9Hds , B4ADOF9Rdt , B4ADOF9V , B4ADOF9Wvs , &
+ B4HdSFxi , B4HdSFyi , B4HdSFzi , B4HdSMxi , B4HdSMyi , B4HdSMzi , B4Heave , &
+ B4Pitch , B4RAxi , B4RAyi , B4RAzi , B4RdtFxi , B4RdtFyi , B4RdtFzi , &
+ B4RdtMxi , B4RdtMyi , B4RdtMzi , B4Roll , B4RVxi , B4RVyi , B4RVzi , &
+ B4Surge , B4Sway , B4TAxi , B4TAyi , B4TAzi , B4TVxi , B4TVyi , &
+ B4TVzi , B4WvsF1xi , B4WvsF1yi , B4WvsF1zi , B4WvsF2xi , B4WvsF2yi , B4WvsF2zi , &
+ B4WvsFxi , B4WvsFyi , B4WvsFzi , B4WvsM1xi , B4WvsM1yi , B4WvsM1zi , B4WvsM2xi , &
+ B4WvsM2yi , B4WvsM2zi , B4WvsMxi , B4WvsMyi , B4WvsMzi , B4Yaw , B5AddFxi , &
+ B5AddFyi , B5AddFzi , B5AddMxi , B5AddMyi , B5AddMzi , B5ADOF10A , B5ADOF10Add , &
+ B5ADOF10D , B5ADOF10Hds , B5ADOF10Rdt , B5ADOF10V , B5ADOF10Wvs , B5ADOF11A , B5ADOF11Add , &
+ B5ADOF11D , B5ADOF11Hds , B5ADOF11Rdt , B5ADOF11V , B5ADOF11Wvs , B5ADOF12A , B5ADOF12Add , &
+ B5ADOF12D , B5ADOF12Hds , B5ADOF12Rdt , B5ADOF12V , B5ADOF12Wvs , B5ADOF13A , B5ADOF13Add , &
+ B5ADOF13D , B5ADOF13Hds , B5ADOF13Rdt , B5ADOF13V , B5ADOF13Wvs , B5ADOF14A , B5ADOF14Add , &
+ B5ADOF14D , B5ADOF14Hds , B5ADOF14Rdt , B5ADOF14V , B5ADOF14Wvs , B5ADOF15A , B5ADOF15Add , &
+ B5ADOF15D , B5ADOF15Hds , B5ADOF15Rdt , B5ADOF15V , B5ADOF15Wvs , B5ADOF16A , B5ADOF16Add , &
+ B5ADOF16D , B5ADOF16Hds , B5ADOF16Rdt , B5ADOF16V , B5ADOF16Wvs , B5ADOF17A , B5ADOF17Add , &
+ B5ADOF17D , B5ADOF17Hds , B5ADOF17Rdt , B5ADOF17V , B5ADOF17Wvs , B5ADOF18A , B5ADOF18Add , &
+ B5ADOF18D , B5ADOF18Hds , B5ADOF18Rdt , B5ADOF18V , B5ADOF18Wvs , B5ADOF19A , B5ADOF19Add , &
+ B5ADOF19D , B5ADOF19Hds , B5ADOF19Rdt , B5ADOF19V , B5ADOF19Wvs , B5ADOF1A , B5ADOF1Add , &
+ B5ADOF1D , B5ADOF1Hds , B5ADOF1Rdt , B5ADOF1V , B5ADOF1Wvs , B5ADOF20A , B5ADOF20Add , &
+ B5ADOF20D , B5ADOF20Hds , B5ADOF20Rdt , B5ADOF20V , B5ADOF20Wvs , B5ADOF21A , B5ADOF21Add , &
+ B5ADOF21D , B5ADOF21Hds , B5ADOF21Rdt , B5ADOF21V , B5ADOF21Wvs , B5ADOF22A , B5ADOF22Add , &
+ B5ADOF22D , B5ADOF22Hds , B5ADOF22Rdt , B5ADOF22V , B5ADOF22Wvs , B5ADOF23A , B5ADOF23Add , &
+ B5ADOF23D , B5ADOF23Hds , B5ADOF23Rdt , B5ADOF23V , B5ADOF23Wvs , B5ADOF24A , B5ADOF24Add , &
+ B5ADOF24D , B5ADOF24Hds , B5ADOF24Rdt , B5ADOF24V , B5ADOF24Wvs , B5ADOF25A , B5ADOF25Add , &
+ B5ADOF25D , B5ADOF25Hds , B5ADOF25Rdt , B5ADOF25V , B5ADOF25Wvs , B5ADOF26A , B5ADOF26Add , &
+ B5ADOF26D , B5ADOF26Hds , B5ADOF26Rdt , B5ADOF26V , B5ADOF26Wvs , B5ADOF27A , B5ADOF27Add , &
+ B5ADOF27D , B5ADOF27Hds , B5ADOF27Rdt , B5ADOF27V , B5ADOF27Wvs , B5ADOF28A , B5ADOF28Add , &
+ B5ADOF28D , B5ADOF28Hds , B5ADOF28Rdt , B5ADOF28V , B5ADOF28Wvs , B5ADOF29A , B5ADOF29Add , &
+ B5ADOF29D , B5ADOF29Hds , B5ADOF29Rdt , B5ADOF29V , B5ADOF29Wvs , B5ADOF2A , B5ADOF2Add , &
+ B5ADOF2D , B5ADOF2Hds , B5ADOF2Rdt , B5ADOF2V , B5ADOF2Wvs , B5ADOF30A , B5ADOF30Add , &
+ B5ADOF30D , B5ADOF30Hds , B5ADOF30Rdt , B5ADOF30V , B5ADOF30Wvs , B5ADOF31A , B5ADOF31Add , &
+ B5ADOF31D , B5ADOF31Hds , B5ADOF31Rdt , B5ADOF31V , B5ADOF31Wvs , B5ADOF32A , B5ADOF32Add , &
+ B5ADOF32D , B5ADOF32Hds , B5ADOF32Rdt , B5ADOF32V , B5ADOF32Wvs , B5ADOF33A , B5ADOF33Add , &
+ B5ADOF33D , B5ADOF33Hds , B5ADOF33Rdt , B5ADOF33V , B5ADOF33Wvs , B5ADOF34A , B5ADOF34Add , &
+ B5ADOF34D , B5ADOF34Hds , B5ADOF34Rdt , B5ADOF34V , B5ADOF34Wvs , B5ADOF35A , B5ADOF35Add , &
+ B5ADOF35D , B5ADOF35Hds , B5ADOF35Rdt , B5ADOF35V , B5ADOF35Wvs , B5ADOF36A , B5ADOF36Add , &
+ B5ADOF36D , B5ADOF36Hds , B5ADOF36Rdt , B5ADOF36V , B5ADOF36Wvs , B5ADOF37A , B5ADOF37Add , &
+ B5ADOF37D , B5ADOF37Hds , B5ADOF37Rdt , B5ADOF37V , B5ADOF37Wvs , B5ADOF38A , B5ADOF38Add , &
+ B5ADOF38D , B5ADOF38Hds , B5ADOF38Rdt , B5ADOF38V , B5ADOF38Wvs , B5ADOF39A , B5ADOF39Add , &
+ B5ADOF39D , B5ADOF39Hds , B5ADOF39Rdt , B5ADOF39V , B5ADOF39Wvs , B5ADOF3A , B5ADOF3Add , &
+ B5ADOF3D , B5ADOF3Hds , B5ADOF3Rdt , B5ADOF3V , B5ADOF3Wvs , B5ADOF40A , B5ADOF40Add , &
+ B5ADOF40D , B5ADOF40Hds , B5ADOF40Rdt , B5ADOF40V , B5ADOF40Wvs , B5ADOF41A , B5ADOF41Add , &
+ B5ADOF41D , B5ADOF41Hds , B5ADOF41Rdt , B5ADOF41V , B5ADOF41Wvs , B5ADOF42A , B5ADOF42Add , &
+ B5ADOF42D , B5ADOF42Hds , B5ADOF42Rdt , B5ADOF42V , B5ADOF42Wvs , B5ADOF43A , B5ADOF43Add , &
+ B5ADOF43D , B5ADOF43Hds , B5ADOF43Rdt , B5ADOF43V , B5ADOF43Wvs , B5ADOF44A , B5ADOF44Add , &
+ B5ADOF44D , B5ADOF44Hds , B5ADOF44Rdt , B5ADOF44V , B5ADOF44Wvs , B5ADOF45A , B5ADOF45Add , &
+ B5ADOF45D , B5ADOF45Hds , B5ADOF45Rdt , B5ADOF45V , B5ADOF45Wvs , B5ADOF46A , B5ADOF46Add , &
+ B5ADOF46D , B5ADOF46Hds , B5ADOF46Rdt , B5ADOF46V , B5ADOF46Wvs , B5ADOF47A , B5ADOF47Add , &
+ B5ADOF47D , B5ADOF47Hds , B5ADOF47Rdt , B5ADOF47V , B5ADOF47Wvs , B5ADOF48A , B5ADOF48Add , &
+ B5ADOF48D , B5ADOF48Hds , B5ADOF48Rdt , B5ADOF48V , B5ADOF48Wvs , B5ADOF49A , B5ADOF49Add , &
+ B5ADOF49D , B5ADOF49Hds , B5ADOF49Rdt , B5ADOF49V , B5ADOF49Wvs , B5ADOF4A , B5ADOF4Add , &
+ B5ADOF4D , B5ADOF4Hds , B5ADOF4Rdt , B5ADOF4V , B5ADOF4Wvs , B5ADOF50A , B5ADOF50Add , &
+ B5ADOF50D , B5ADOF50Hds , B5ADOF50Rdt , B5ADOF50V , B5ADOF50Wvs , B5ADOF51A , B5ADOF51Add , &
+ B5ADOF51D , B5ADOF51Hds , B5ADOF51Rdt , B5ADOF51V , B5ADOF51Wvs , B5ADOF52A , B5ADOF52Add , &
+ B5ADOF52D , B5ADOF52Hds , B5ADOF52Rdt , B5ADOF52V , B5ADOF52Wvs , B5ADOF53A , B5ADOF53Add , &
+ B5ADOF53D , B5ADOF53Hds , B5ADOF53Rdt , B5ADOF53V , B5ADOF53Wvs , B5ADOF54A , B5ADOF54Add , &
+ B5ADOF54D , B5ADOF54Hds , B5ADOF54Rdt , B5ADOF54V , B5ADOF54Wvs , B5ADOF55A , B5ADOF55Add , &
+ B5ADOF55D , B5ADOF55Hds , B5ADOF55Rdt , B5ADOF55V , B5ADOF55Wvs , B5ADOF56A , B5ADOF56Add , &
+ B5ADOF56D , B5ADOF56Hds , B5ADOF56Rdt , B5ADOF56V , B5ADOF56Wvs , B5ADOF57A , B5ADOF57Add , &
+ B5ADOF57D , B5ADOF57Hds , B5ADOF57Rdt , B5ADOF57V , B5ADOF57Wvs , B5ADOF58A , B5ADOF58Add , &
+ B5ADOF58D , B5ADOF58Hds , B5ADOF58Rdt , B5ADOF58V , B5ADOF58Wvs , B5ADOF59A , B5ADOF59Add , &
+ B5ADOF59D , B5ADOF59Hds , B5ADOF59Rdt , B5ADOF59V , B5ADOF59Wvs , B5ADOF5A , B5ADOF5Add /)
+ INTEGER(IntKi), PARAMETER :: ParamIndxAry3(1687) = (/ & ! This lists the index into AllOuts(:) of the allowed parameters ValidParamAry(:)
+ B5ADOF5D , B5ADOF5Hds , B5ADOF5Rdt , B5ADOF5V , B5ADOF5Wvs , B5ADOF60A , B5ADOF60Add , &
+ B5ADOF60D , B5ADOF60Hds , B5ADOF60Rdt , B5ADOF60V , B5ADOF60Wvs , B5ADOF61A , B5ADOF61Add , &
+ B5ADOF61D , B5ADOF61Hds , B5ADOF61Rdt , B5ADOF61V , B5ADOF61Wvs , B5ADOF62A , B5ADOF62Add , &
+ B5ADOF62D , B5ADOF62Hds , B5ADOF62Rdt , B5ADOF62V , B5ADOF62Wvs , B5ADOF63A , B5ADOF63Add , &
+ B5ADOF63D , B5ADOF63Hds , B5ADOF63Rdt , B5ADOF63V , B5ADOF63Wvs , B5ADOF64A , B5ADOF64Add , &
+ B5ADOF64D , B5ADOF64Hds , B5ADOF64Rdt , B5ADOF64V , B5ADOF64Wvs , B5ADOF65A , B5ADOF65Add , &
+ B5ADOF65D , B5ADOF65Hds , B5ADOF65Rdt , B5ADOF65V , B5ADOF65Wvs , B5ADOF66A , B5ADOF66Add , &
+ B5ADOF66D , B5ADOF66Hds , B5ADOF66Rdt , B5ADOF66V , B5ADOF66Wvs , B5ADOF67A , B5ADOF67Add , &
+ B5ADOF67D , B5ADOF67Hds , B5ADOF67Rdt , B5ADOF67V , B5ADOF67Wvs , B5ADOF68A , B5ADOF68Add , &
+ B5ADOF68D , B5ADOF68Hds , B5ADOF68Rdt , B5ADOF68V , B5ADOF68Wvs , B5ADOF69A , B5ADOF69Add , &
+ B5ADOF69D , B5ADOF69Hds , B5ADOF69Rdt , B5ADOF69V , B5ADOF69Wvs , B5ADOF6A , B5ADOF6Add , &
+ B5ADOF6D , B5ADOF6Hds , B5ADOF6Rdt , B5ADOF6V , B5ADOF6Wvs , B5ADOF70A , B5ADOF70Add , &
+ B5ADOF70D , B5ADOF70Hds , B5ADOF70Rdt , B5ADOF70V , B5ADOF70Wvs , B5ADOF71A , B5ADOF71Add , &
+ B5ADOF71D , B5ADOF71Hds , B5ADOF71Rdt , B5ADOF71V , B5ADOF71Wvs , B5ADOF72A , B5ADOF72Add , &
+ B5ADOF72D , B5ADOF72Hds , B5ADOF72Rdt , B5ADOF72V , B5ADOF72Wvs , B5ADOF73A , B5ADOF73Add , &
+ B5ADOF73D , B5ADOF73Hds , B5ADOF73Rdt , B5ADOF73V , B5ADOF73Wvs , B5ADOF74A , B5ADOF74Add , &
+ B5ADOF74D , B5ADOF74Hds , B5ADOF74Rdt , B5ADOF74V , B5ADOF74Wvs , B5ADOF75A , B5ADOF75Add , &
+ B5ADOF75D , B5ADOF75Hds , B5ADOF75Rdt , B5ADOF75V , B5ADOF75Wvs , B5ADOF76A , B5ADOF76Add , &
+ B5ADOF76D , B5ADOF76Hds , B5ADOF76Rdt , B5ADOF76V , B5ADOF76Wvs , B5ADOF77A , B5ADOF77Add , &
+ B5ADOF77D , B5ADOF77Hds , B5ADOF77Rdt , B5ADOF77V , B5ADOF77Wvs , B5ADOF78A , B5ADOF78Add , &
+ B5ADOF78D , B5ADOF78Hds , B5ADOF78Rdt , B5ADOF78V , B5ADOF78Wvs , B5ADOF79A , B5ADOF79Add , &
+ B5ADOF79D , B5ADOF79Hds , B5ADOF79Rdt , B5ADOF79V , B5ADOF79Wvs , B5ADOF7A , B5ADOF7Add , &
+ B5ADOF7D , B5ADOF7Hds , B5ADOF7Rdt , B5ADOF7V , B5ADOF7Wvs , B5ADOF80A , B5ADOF80Add , &
+ B5ADOF80D , B5ADOF80Hds , B5ADOF80Rdt , B5ADOF80V , B5ADOF80Wvs , B5ADOF81A , B5ADOF81Add , &
+ B5ADOF81D , B5ADOF81Hds , B5ADOF81Rdt , B5ADOF81V , B5ADOF81Wvs , B5ADOF82A , B5ADOF82Add , &
+ B5ADOF82D , B5ADOF82Hds , B5ADOF82Rdt , B5ADOF82V , B5ADOF82Wvs , B5ADOF83A , B5ADOF83Add , &
+ B5ADOF83D , B5ADOF83Hds , B5ADOF83Rdt , B5ADOF83V , B5ADOF83Wvs , B5ADOF84A , B5ADOF84Add , &
+ B5ADOF84D , B5ADOF84Hds , B5ADOF84Rdt , B5ADOF84V , B5ADOF84Wvs , B5ADOF85A , B5ADOF85Add , &
+ B5ADOF85D , B5ADOF85Hds , B5ADOF85Rdt , B5ADOF85V , B5ADOF85Wvs , B5ADOF86A , B5ADOF86Add , &
+ B5ADOF86D , B5ADOF86Hds , B5ADOF86Rdt , B5ADOF86V , B5ADOF86Wvs , B5ADOF87A , B5ADOF87Add , &
+ B5ADOF87D , B5ADOF87Hds , B5ADOF87Rdt , B5ADOF87V , B5ADOF87Wvs , B5ADOF88A , B5ADOF88Add , &
+ B5ADOF88D , B5ADOF88Hds , B5ADOF88Rdt , B5ADOF88V , B5ADOF88Wvs , B5ADOF89A , B5ADOF89Add , &
+ B5ADOF89D , B5ADOF89Hds , B5ADOF89Rdt , B5ADOF89V , B5ADOF89Wvs , B5ADOF8A , B5ADOF8Add , &
+ B5ADOF8D , B5ADOF8Hds , B5ADOF8Rdt , B5ADOF8V , B5ADOF8Wvs , B5ADOF90A , B5ADOF90Add , &
+ B5ADOF90D , B5ADOF90Hds , B5ADOF90Rdt , B5ADOF90V , B5ADOF90Wvs , B5ADOF91A , B5ADOF91Add , &
+ B5ADOF91D , B5ADOF91Hds , B5ADOF91Rdt , B5ADOF91V , B5ADOF91Wvs , B5ADOF92A , B5ADOF92Add , &
+ B5ADOF92D , B5ADOF92Hds , B5ADOF92Rdt , B5ADOF92V , B5ADOF92Wvs , B5ADOF93A , B5ADOF93Add , &
+ B5ADOF93D , B5ADOF93Hds , B5ADOF93Rdt , B5ADOF93V , B5ADOF93Wvs , B5ADOF94A , B5ADOF94Add , &
+ B5ADOF94D , B5ADOF94Hds , B5ADOF94Rdt , B5ADOF94V , B5ADOF94Wvs , B5ADOF95A , B5ADOF95Add , &
+ B5ADOF95D , B5ADOF95Hds , B5ADOF95Rdt , B5ADOF95V , B5ADOF95Wvs , B5ADOF96A , B5ADOF96Add , &
+ B5ADOF96D , B5ADOF96Hds , B5ADOF96Rdt , B5ADOF96V , B5ADOF96Wvs , B5ADOF97A , B5ADOF97Add , &
+ B5ADOF97D , B5ADOF97Hds , B5ADOF97Rdt , B5ADOF97V , B5ADOF97Wvs , B5ADOF98A , B5ADOF98Add , &
+ B5ADOF98D , B5ADOF98Hds , B5ADOF98Rdt , B5ADOF98V , B5ADOF98Wvs , B5ADOF99A , B5ADOF99Add , &
+ B5ADOF99D , B5ADOF99Hds , B5ADOF99Rdt , B5ADOF99V , B5ADOF99Wvs , B5ADOF9A , B5ADOF9Add , &
+ B5ADOF9D , B5ADOF9Hds , B5ADOF9Rdt , B5ADOF9V , B5ADOF9Wvs , B5HdSFxi , B5HdSFyi , &
+ B5HdSFzi , B5HdSMxi , B5HdSMyi , B5HdSMzi , B5Heave , B5Pitch , B5RAxi , &
+ B5RAyi , B5RAzi , B5RdtFxi , B5RdtFyi , B5RdtFzi , B5RdtMxi , B5RdtMyi , &
+ B5RdtMzi , B5Roll , B5RVxi , B5RVyi , B5RVzi , B5Surge , B5Sway , &
+ B5TAxi , B5TAyi , B5TAzi , B5TVxi , B5TVyi , B5TVzi , B5WvsF1xi , &
+ B5WvsF1yi , B5WvsF1zi , B5WvsF2xi , B5WvsF2yi , B5WvsF2zi , B5WvsFxi , B5WvsFyi , &
+ B5WvsFzi , B5WvsM1xi , B5WvsM1yi , B5WvsM1zi , B5WvsM2xi , B5WvsM2yi , B5WvsM2zi , &
+ B5WvsMxi , B5WvsMyi , B5WvsMzi , B5Yaw , B6AddFxi , B6AddFyi , B6AddFzi , &
+ B6AddMxi , B6AddMyi , B6AddMzi , B6ADOF10A , B6ADOF10Add , B6ADOF10D , B6ADOF10Hds , &
+ B6ADOF10Rdt , B6ADOF10V , B6ADOF10Wvs , B6ADOF11A , B6ADOF11Add , B6ADOF11D , B6ADOF11Hds , &
+ B6ADOF11Rdt , B6ADOF11V , B6ADOF11Wvs , B6ADOF12A , B6ADOF12Add , B6ADOF12D , B6ADOF12Hds , &
+ B6ADOF12Rdt , B6ADOF12V , B6ADOF12Wvs , B6ADOF13A , B6ADOF13Add , B6ADOF13D , B6ADOF13Hds , &
+ B6ADOF13Rdt , B6ADOF13V , B6ADOF13Wvs , B6ADOF14A , B6ADOF14Add , B6ADOF14D , B6ADOF14Hds , &
+ B6ADOF14Rdt , B6ADOF14V , B6ADOF14Wvs , B6ADOF15A , B6ADOF15Add , B6ADOF15D , B6ADOF15Hds , &
+ B6ADOF15Rdt , B6ADOF15V , B6ADOF15Wvs , B6ADOF16A , B6ADOF16Add , B6ADOF16D , B6ADOF16Hds , &
+ B6ADOF16Rdt , B6ADOF16V , B6ADOF16Wvs , B6ADOF17A , B6ADOF17Add , B6ADOF17D , B6ADOF17Hds , &
+ B6ADOF17Rdt , B6ADOF17V , B6ADOF17Wvs , B6ADOF18A , B6ADOF18Add , B6ADOF18D , B6ADOF18Hds , &
+ B6ADOF18Rdt , B6ADOF18V , B6ADOF18Wvs , B6ADOF19A , B6ADOF19Add , B6ADOF19D , B6ADOF19Hds , &
+ B6ADOF19Rdt , B6ADOF19V , B6ADOF19Wvs , B6ADOF1A , B6ADOF1Add , B6ADOF1D , B6ADOF1Hds , &
+ B6ADOF1Rdt , B6ADOF1V , B6ADOF1Wvs , B6ADOF20A , B6ADOF20Add , B6ADOF20D , B6ADOF20Hds , &
+ B6ADOF20Rdt , B6ADOF20V , B6ADOF20Wvs , B6ADOF21A , B6ADOF21Add , B6ADOF21D , B6ADOF21Hds , &
+ B6ADOF21Rdt , B6ADOF21V , B6ADOF21Wvs , B6ADOF22A , B6ADOF22Add , B6ADOF22D , B6ADOF22Hds , &
+ B6ADOF22Rdt , B6ADOF22V , B6ADOF22Wvs , B6ADOF23A , B6ADOF23Add , B6ADOF23D , B6ADOF23Hds , &
+ B6ADOF23Rdt , B6ADOF23V , B6ADOF23Wvs , B6ADOF24A , B6ADOF24Add , B6ADOF24D , B6ADOF24Hds , &
+ B6ADOF24Rdt , B6ADOF24V , B6ADOF24Wvs , B6ADOF25A , B6ADOF25Add , B6ADOF25D , B6ADOF25Hds , &
+ B6ADOF25Rdt , B6ADOF25V , B6ADOF25Wvs , B6ADOF26A , B6ADOF26Add , B6ADOF26D , B6ADOF26Hds , &
+ B6ADOF26Rdt , B6ADOF26V , B6ADOF26Wvs , B6ADOF27A , B6ADOF27Add , B6ADOF27D , B6ADOF27Hds , &
+ B6ADOF27Rdt , B6ADOF27V , B6ADOF27Wvs , B6ADOF28A , B6ADOF28Add , B6ADOF28D , B6ADOF28Hds , &
+ B6ADOF28Rdt , B6ADOF28V , B6ADOF28Wvs , B6ADOF29A , B6ADOF29Add , B6ADOF29D , B6ADOF29Hds , &
+ B6ADOF29Rdt , B6ADOF29V , B6ADOF29Wvs , B6ADOF2A , B6ADOF2Add , B6ADOF2D , B6ADOF2Hds , &
+ B6ADOF2Rdt , B6ADOF2V , B6ADOF2Wvs , B6ADOF30A , B6ADOF30Add , B6ADOF30D , B6ADOF30Hds , &
+ B6ADOF30Rdt , B6ADOF30V , B6ADOF30Wvs , B6ADOF31A , B6ADOF31Add , B6ADOF31D , B6ADOF31Hds , &
+ B6ADOF31Rdt , B6ADOF31V , B6ADOF31Wvs , B6ADOF32A , B6ADOF32Add , B6ADOF32D , B6ADOF32Hds , &
+ B6ADOF32Rdt , B6ADOF32V , B6ADOF32Wvs , B6ADOF33A , B6ADOF33Add , B6ADOF33D , B6ADOF33Hds , &
+ B6ADOF33Rdt , B6ADOF33V , B6ADOF33Wvs , B6ADOF34A , B6ADOF34Add , B6ADOF34D , B6ADOF34Hds , &
+ B6ADOF34Rdt , B6ADOF34V , B6ADOF34Wvs , B6ADOF35A , B6ADOF35Add , B6ADOF35D , B6ADOF35Hds , &
+ B6ADOF35Rdt , B6ADOF35V , B6ADOF35Wvs , B6ADOF36A , B6ADOF36Add , B6ADOF36D , B6ADOF36Hds , &
+ B6ADOF36Rdt , B6ADOF36V , B6ADOF36Wvs , B6ADOF37A , B6ADOF37Add , B6ADOF37D , B6ADOF37Hds , &
+ B6ADOF37Rdt , B6ADOF37V , B6ADOF37Wvs , B6ADOF38A , B6ADOF38Add , B6ADOF38D , B6ADOF38Hds , &
+ B6ADOF38Rdt , B6ADOF38V , B6ADOF38Wvs , B6ADOF39A , B6ADOF39Add , B6ADOF39D , B6ADOF39Hds , &
+ B6ADOF39Rdt , B6ADOF39V , B6ADOF39Wvs , B6ADOF3A , B6ADOF3Add , B6ADOF3D , B6ADOF3Hds , &
+ B6ADOF3Rdt , B6ADOF3V , B6ADOF3Wvs , B6ADOF40A , B6ADOF40Add , B6ADOF40D , B6ADOF40Hds , &
+ B6ADOF40Rdt , B6ADOF40V , B6ADOF40Wvs , B6ADOF41A , B6ADOF41Add , B6ADOF41D , B6ADOF41Hds , &
+ B6ADOF41Rdt , B6ADOF41V , B6ADOF41Wvs , B6ADOF42A , B6ADOF42Add , B6ADOF42D , B6ADOF42Hds , &
+ B6ADOF42Rdt , B6ADOF42V , B6ADOF42Wvs , B6ADOF43A , B6ADOF43Add , B6ADOF43D , B6ADOF43Hds , &
+ B6ADOF43Rdt , B6ADOF43V , B6ADOF43Wvs , B6ADOF44A , B6ADOF44Add , B6ADOF44D , B6ADOF44Hds , &
+ B6ADOF44Rdt , B6ADOF44V , B6ADOF44Wvs , B6ADOF45A , B6ADOF45Add , B6ADOF45D , B6ADOF45Hds , &
+ B6ADOF45Rdt , B6ADOF45V , B6ADOF45Wvs , B6ADOF46A , B6ADOF46Add , B6ADOF46D , B6ADOF46Hds , &
+ B6ADOF46Rdt , B6ADOF46V , B6ADOF46Wvs , B6ADOF47A , B6ADOF47Add , B6ADOF47D , B6ADOF47Hds , &
+ B6ADOF47Rdt , B6ADOF47V , B6ADOF47Wvs , B6ADOF48A , B6ADOF48Add , B6ADOF48D , B6ADOF48Hds , &
+ B6ADOF48Rdt , B6ADOF48V , B6ADOF48Wvs , B6ADOF49A , B6ADOF49Add , B6ADOF49D , B6ADOF49Hds , &
+ B6ADOF49Rdt , B6ADOF49V , B6ADOF49Wvs , B6ADOF4A , B6ADOF4Add , B6ADOF4D , B6ADOF4Hds , &
+ B6ADOF4Rdt , B6ADOF4V , B6ADOF4Wvs , B6ADOF50A , B6ADOF50Add , B6ADOF50D , B6ADOF50Hds , &
+ B6ADOF50Rdt , B6ADOF50V , B6ADOF50Wvs , B6ADOF51A , B6ADOF51Add , B6ADOF51D , B6ADOF51Hds , &
+ B6ADOF51Rdt , B6ADOF51V , B6ADOF51Wvs , B6ADOF52A , B6ADOF52Add , B6ADOF52D , B6ADOF52Hds , &
+ B6ADOF52Rdt , B6ADOF52V , B6ADOF52Wvs , B6ADOF53A , B6ADOF53Add , B6ADOF53D , B6ADOF53Hds , &
+ B6ADOF53Rdt , B6ADOF53V , B6ADOF53Wvs , B6ADOF54A , B6ADOF54Add , B6ADOF54D , B6ADOF54Hds , &
+ B6ADOF54Rdt , B6ADOF54V , B6ADOF54Wvs , B6ADOF55A , B6ADOF55Add , B6ADOF55D , B6ADOF55Hds , &
+ B6ADOF55Rdt , B6ADOF55V , B6ADOF55Wvs , B6ADOF56A , B6ADOF56Add , B6ADOF56D , B6ADOF56Hds , &
+ B6ADOF56Rdt , B6ADOF56V , B6ADOF56Wvs , B6ADOF57A , B6ADOF57Add , B6ADOF57D , B6ADOF57Hds , &
+ B6ADOF57Rdt , B6ADOF57V , B6ADOF57Wvs , B6ADOF58A , B6ADOF58Add , B6ADOF58D , B6ADOF58Hds , &
+ B6ADOF58Rdt , B6ADOF58V , B6ADOF58Wvs , B6ADOF59A , B6ADOF59Add , B6ADOF59D , B6ADOF59Hds , &
+ B6ADOF59Rdt , B6ADOF59V , B6ADOF59Wvs , B6ADOF5A , B6ADOF5Add , B6ADOF5D , B6ADOF5Hds , &
+ B6ADOF5Rdt , B6ADOF5V , B6ADOF5Wvs , B6ADOF60A , B6ADOF60Add , B6ADOF60D , B6ADOF60Hds , &
+ B6ADOF60Rdt , B6ADOF60V , B6ADOF60Wvs , B6ADOF61A , B6ADOF61Add , B6ADOF61D , B6ADOF61Hds , &
+ B6ADOF61Rdt , B6ADOF61V , B6ADOF61Wvs , B6ADOF62A , B6ADOF62Add , B6ADOF62D , B6ADOF62Hds , &
+ B6ADOF62Rdt , B6ADOF62V , B6ADOF62Wvs , B6ADOF63A , B6ADOF63Add , B6ADOF63D , B6ADOF63Hds , &
+ B6ADOF63Rdt , B6ADOF63V , B6ADOF63Wvs , B6ADOF64A , B6ADOF64Add , B6ADOF64D , B6ADOF64Hds , &
+ B6ADOF64Rdt , B6ADOF64V , B6ADOF64Wvs , B6ADOF65A , B6ADOF65Add , B6ADOF65D , B6ADOF65Hds , &
+ B6ADOF65Rdt , B6ADOF65V , B6ADOF65Wvs , B6ADOF66A , B6ADOF66Add , B6ADOF66D , B6ADOF66Hds , &
+ B6ADOF66Rdt , B6ADOF66V , B6ADOF66Wvs , B6ADOF67A , B6ADOF67Add , B6ADOF67D , B6ADOF67Hds , &
+ B6ADOF67Rdt , B6ADOF67V , B6ADOF67Wvs , B6ADOF68A , B6ADOF68Add , B6ADOF68D , B6ADOF68Hds , &
+ B6ADOF68Rdt , B6ADOF68V , B6ADOF68Wvs , B6ADOF69A , B6ADOF69Add , B6ADOF69D , B6ADOF69Hds , &
+ B6ADOF69Rdt , B6ADOF69V , B6ADOF69Wvs , B6ADOF6A , B6ADOF6Add , B6ADOF6D , B6ADOF6Hds , &
+ B6ADOF6Rdt , B6ADOF6V , B6ADOF6Wvs , B6ADOF70A , B6ADOF70Add , B6ADOF70D , B6ADOF70Hds , &
+ B6ADOF70Rdt , B6ADOF70V , B6ADOF70Wvs , B6ADOF71A , B6ADOF71Add , B6ADOF71D , B6ADOF71Hds , &
+ B6ADOF71Rdt , B6ADOF71V , B6ADOF71Wvs , B6ADOF72A , B6ADOF72Add , B6ADOF72D , B6ADOF72Hds , &
+ B6ADOF72Rdt , B6ADOF72V , B6ADOF72Wvs , B6ADOF73A , B6ADOF73Add , B6ADOF73D , B6ADOF73Hds , &
+ B6ADOF73Rdt , B6ADOF73V , B6ADOF73Wvs , B6ADOF74A , B6ADOF74Add , B6ADOF74D , B6ADOF74Hds , &
+ B6ADOF74Rdt , B6ADOF74V , B6ADOF74Wvs , B6ADOF75A , B6ADOF75Add , B6ADOF75D , B6ADOF75Hds , &
+ B6ADOF75Rdt , B6ADOF75V , B6ADOF75Wvs , B6ADOF76A , B6ADOF76Add , B6ADOF76D , B6ADOF76Hds , &
+ B6ADOF76Rdt , B6ADOF76V , B6ADOF76Wvs , B6ADOF77A , B6ADOF77Add , B6ADOF77D , B6ADOF77Hds , &
+ B6ADOF77Rdt , B6ADOF77V , B6ADOF77Wvs , B6ADOF78A , B6ADOF78Add , B6ADOF78D , B6ADOF78Hds , &
+ B6ADOF78Rdt , B6ADOF78V , B6ADOF78Wvs , B6ADOF79A , B6ADOF79Add , B6ADOF79D , B6ADOF79Hds , &
+ B6ADOF79Rdt , B6ADOF79V , B6ADOF79Wvs , B6ADOF7A , B6ADOF7Add , B6ADOF7D , B6ADOF7Hds , &
+ B6ADOF7Rdt , B6ADOF7V , B6ADOF7Wvs , B6ADOF80A , B6ADOF80Add , B6ADOF80D , B6ADOF80Hds , &
+ B6ADOF80Rdt , B6ADOF80V , B6ADOF80Wvs , B6ADOF81A , B6ADOF81Add , B6ADOF81D , B6ADOF81Hds , &
+ B6ADOF81Rdt , B6ADOF81V , B6ADOF81Wvs , B6ADOF82A , B6ADOF82Add , B6ADOF82D , B6ADOF82Hds , &
+ B6ADOF82Rdt , B6ADOF82V , B6ADOF82Wvs , B6ADOF83A , B6ADOF83Add , B6ADOF83D , B6ADOF83Hds , &
+ B6ADOF83Rdt , B6ADOF83V , B6ADOF83Wvs , B6ADOF84A , B6ADOF84Add , B6ADOF84D , B6ADOF84Hds , &
+ B6ADOF84Rdt , B6ADOF84V , B6ADOF84Wvs , B6ADOF85A , B6ADOF85Add , B6ADOF85D , B6ADOF85Hds , &
+ B6ADOF85Rdt , B6ADOF85V , B6ADOF85Wvs , B6ADOF86A , B6ADOF86Add , B6ADOF86D , B6ADOF86Hds , &
+ B6ADOF86Rdt , B6ADOF86V , B6ADOF86Wvs , B6ADOF87A , B6ADOF87Add , B6ADOF87D , B6ADOF87Hds , &
+ B6ADOF87Rdt , B6ADOF87V , B6ADOF87Wvs , B6ADOF88A , B6ADOF88Add , B6ADOF88D , B6ADOF88Hds , &
+ B6ADOF88Rdt , B6ADOF88V , B6ADOF88Wvs , B6ADOF89A , B6ADOF89Add , B6ADOF89D , B6ADOF89Hds , &
+ B6ADOF89Rdt , B6ADOF89V , B6ADOF89Wvs , B6ADOF8A , B6ADOF8Add , B6ADOF8D , B6ADOF8Hds , &
+ B6ADOF8Rdt , B6ADOF8V , B6ADOF8Wvs , B6ADOF90A , B6ADOF90Add , B6ADOF90D , B6ADOF90Hds , &
+ B6ADOF90Rdt , B6ADOF90V , B6ADOF90Wvs , B6ADOF91A , B6ADOF91Add , B6ADOF91D , B6ADOF91Hds , &
+ B6ADOF91Rdt , B6ADOF91V , B6ADOF91Wvs , B6ADOF92A , B6ADOF92Add , B6ADOF92D , B6ADOF92Hds , &
+ B6ADOF92Rdt , B6ADOF92V , B6ADOF92Wvs , B6ADOF93A , B6ADOF93Add , B6ADOF93D , B6ADOF93Hds , &
+ B6ADOF93Rdt , B6ADOF93V , B6ADOF93Wvs , B6ADOF94A , B6ADOF94Add , B6ADOF94D , B6ADOF94Hds , &
+ B6ADOF94Rdt , B6ADOF94V , B6ADOF94Wvs , B6ADOF95A , B6ADOF95Add , B6ADOF95D , B6ADOF95Hds , &
+ B6ADOF95Rdt , B6ADOF95V , B6ADOF95Wvs , B6ADOF96A , B6ADOF96Add , B6ADOF96D , B6ADOF96Hds , &
+ B6ADOF96Rdt , B6ADOF96V , B6ADOF96Wvs , B6ADOF97A , B6ADOF97Add , B6ADOF97D , B6ADOF97Hds , &
+ B6ADOF97Rdt , B6ADOF97V , B6ADOF97Wvs , B6ADOF98A , B6ADOF98Add , B6ADOF98D , B6ADOF98Hds , &
+ B6ADOF98Rdt , B6ADOF98V , B6ADOF98Wvs , B6ADOF99A , B6ADOF99Add , B6ADOF99D , B6ADOF99Hds , &
+ B6ADOF99Rdt , B6ADOF99V , B6ADOF99Wvs , B6ADOF9A , B6ADOF9Add , B6ADOF9D , B6ADOF9Hds , &
+ B6ADOF9Rdt , B6ADOF9V , B6ADOF9Wvs , B6HdSFxi , B6HdSFyi , B6HdSFzi , B6HdSMxi , &
+ B6HdSMyi , B6HdSMzi , B6Heave , B6Pitch , B6RAxi , B6RAyi , B6RAzi , &
+ B6RdtFxi , B6RdtFyi , B6RdtFzi , B6RdtMxi , B6RdtMyi , B6RdtMzi , B6Roll , &
+ B6RVxi , B6RVyi , B6RVzi , B6Surge , B6Sway , B6TAxi , B6TAyi , &
+ B6TAzi , B6TVxi , B6TVyi , B6TVzi , B6WvsF1xi , B6WvsF1yi , B6WvsF1zi , &
+ B6WvsF2xi , B6WvsF2yi , B6WvsF2zi , B6WvsFxi , B6WvsFyi , B6WvsFzi , B6WvsM1xi , &
+ B6WvsM1yi , B6WvsM1zi , B6WvsM2xi , B6WvsM2yi , B6WvsM2zi , B6WvsMxi , B6WvsMyi , &
+ B6WvsMzi , B6Yaw , B7AddFxi , B7AddFyi , B7AddFzi , B7AddMxi , B7AddMyi , &
+ B7AddMzi , B7ADOF10A , B7ADOF10Add , B7ADOF10D , B7ADOF10Hds , B7ADOF10Rdt , B7ADOF10V , &
+ B7ADOF10Wvs , B7ADOF11A , B7ADOF11Add , B7ADOF11D , B7ADOF11Hds , B7ADOF11Rdt , B7ADOF11V , &
+ B7ADOF11Wvs , B7ADOF12A , B7ADOF12Add , B7ADOF12D , B7ADOF12Hds , B7ADOF12Rdt , B7ADOF12V , &
+ B7ADOF12Wvs , B7ADOF13A , B7ADOF13Add , B7ADOF13D , B7ADOF13Hds , B7ADOF13Rdt , B7ADOF13V , &
+ B7ADOF13Wvs , B7ADOF14A , B7ADOF14Add , B7ADOF14D , B7ADOF14Hds , B7ADOF14Rdt , B7ADOF14V , &
+ B7ADOF14Wvs , B7ADOF15A , B7ADOF15Add , B7ADOF15D , B7ADOF15Hds , B7ADOF15Rdt , B7ADOF15V , &
+ B7ADOF15Wvs , B7ADOF16A , B7ADOF16Add , B7ADOF16D , B7ADOF16Hds , B7ADOF16Rdt , B7ADOF16V , &
+ B7ADOF16Wvs , B7ADOF17A , B7ADOF17Add , B7ADOF17D , B7ADOF17Hds , B7ADOF17Rdt , B7ADOF17V , &
+ B7ADOF17Wvs , B7ADOF18A , B7ADOF18Add , B7ADOF18D , B7ADOF18Hds , B7ADOF18Rdt , B7ADOF18V , &
+ B7ADOF18Wvs , B7ADOF19A , B7ADOF19Add , B7ADOF19D , B7ADOF19Hds , B7ADOF19Rdt , B7ADOF19V , &
+ B7ADOF19Wvs , B7ADOF1A , B7ADOF1Add , B7ADOF1D , B7ADOF1Hds , B7ADOF1Rdt , B7ADOF1V , &
+ B7ADOF1Wvs , B7ADOF20A , B7ADOF20Add , B7ADOF20D , B7ADOF20Hds , B7ADOF20Rdt , B7ADOF20V , &
+ B7ADOF20Wvs , B7ADOF21A , B7ADOF21Add , B7ADOF21D , B7ADOF21Hds , B7ADOF21Rdt , B7ADOF21V , &
+ B7ADOF21Wvs , B7ADOF22A , B7ADOF22Add , B7ADOF22D , B7ADOF22Hds , B7ADOF22Rdt , B7ADOF22V , &
+ B7ADOF22Wvs , B7ADOF23A , B7ADOF23Add , B7ADOF23D , B7ADOF23Hds , B7ADOF23Rdt , B7ADOF23V , &
+ B7ADOF23Wvs , B7ADOF24A , B7ADOF24Add , B7ADOF24D , B7ADOF24Hds , B7ADOF24Rdt , B7ADOF24V , &
+ B7ADOF24Wvs , B7ADOF25A , B7ADOF25Add , B7ADOF25D , B7ADOF25Hds , B7ADOF25Rdt , B7ADOF25V , &
+ B7ADOF25Wvs , B7ADOF26A , B7ADOF26Add , B7ADOF26D , B7ADOF26Hds , B7ADOF26Rdt , B7ADOF26V , &
+ B7ADOF26Wvs , B7ADOF27A , B7ADOF27Add , B7ADOF27D , B7ADOF27Hds , B7ADOF27Rdt , B7ADOF27V , &
+ B7ADOF27Wvs , B7ADOF28A , B7ADOF28Add , B7ADOF28D , B7ADOF28Hds , B7ADOF28Rdt , B7ADOF28V , &
+ B7ADOF28Wvs , B7ADOF29A , B7ADOF29Add , B7ADOF29D , B7ADOF29Hds , B7ADOF29Rdt , B7ADOF29V , &
+ B7ADOF29Wvs , B7ADOF2A , B7ADOF2Add , B7ADOF2D , B7ADOF2Hds , B7ADOF2Rdt , B7ADOF2V , &
+ B7ADOF2Wvs , B7ADOF30A , B7ADOF30Add , B7ADOF30D , B7ADOF30Hds , B7ADOF30Rdt , B7ADOF30V , &
+ B7ADOF30Wvs , B7ADOF31A , B7ADOF31Add , B7ADOF31D , B7ADOF31Hds , B7ADOF31Rdt , B7ADOF31V , &
+ B7ADOF31Wvs , B7ADOF32A , B7ADOF32Add , B7ADOF32D , B7ADOF32Hds , B7ADOF32Rdt , B7ADOF32V , &
+ B7ADOF32Wvs , B7ADOF33A , B7ADOF33Add , B7ADOF33D , B7ADOF33Hds , B7ADOF33Rdt , B7ADOF33V , &
+ B7ADOF33Wvs , B7ADOF34A , B7ADOF34Add , B7ADOF34D , B7ADOF34Hds , B7ADOF34Rdt , B7ADOF34V , &
+ B7ADOF34Wvs , B7ADOF35A , B7ADOF35Add , B7ADOF35D , B7ADOF35Hds , B7ADOF35Rdt , B7ADOF35V , &
+ B7ADOF35Wvs , B7ADOF36A , B7ADOF36Add , B7ADOF36D , B7ADOF36Hds , B7ADOF36Rdt , B7ADOF36V , &
+ B7ADOF36Wvs , B7ADOF37A , B7ADOF37Add , B7ADOF37D , B7ADOF37Hds , B7ADOF37Rdt , B7ADOF37V , &
+ B7ADOF37Wvs , B7ADOF38A , B7ADOF38Add , B7ADOF38D , B7ADOF38Hds , B7ADOF38Rdt , B7ADOF38V , &
+ B7ADOF38Wvs , B7ADOF39A , B7ADOF39Add , B7ADOF39D , B7ADOF39Hds , B7ADOF39Rdt , B7ADOF39V , &
+ B7ADOF39Wvs , B7ADOF3A , B7ADOF3Add , B7ADOF3D , B7ADOF3Hds , B7ADOF3Rdt , B7ADOF3V , &
+ B7ADOF3Wvs , B7ADOF40A , B7ADOF40Add , B7ADOF40D , B7ADOF40Hds , B7ADOF40Rdt , B7ADOF40V , &
+ B7ADOF40Wvs , B7ADOF41A , B7ADOF41Add , B7ADOF41D , B7ADOF41Hds , B7ADOF41Rdt , B7ADOF41V , &
+ B7ADOF41Wvs , B7ADOF42A , B7ADOF42Add , B7ADOF42D , B7ADOF42Hds , B7ADOF42Rdt , B7ADOF42V , &
+ B7ADOF42Wvs , B7ADOF43A , B7ADOF43Add , B7ADOF43D , B7ADOF43Hds , B7ADOF43Rdt , B7ADOF43V , &
+ B7ADOF43Wvs , B7ADOF44A , B7ADOF44Add , B7ADOF44D , B7ADOF44Hds , B7ADOF44Rdt , B7ADOF44V , &
+ B7ADOF44Wvs , B7ADOF45A , B7ADOF45Add , B7ADOF45D , B7ADOF45Hds , B7ADOF45Rdt , B7ADOF45V , &
+ B7ADOF45Wvs , B7ADOF46A , B7ADOF46Add , B7ADOF46D , B7ADOF46Hds , B7ADOF46Rdt , B7ADOF46V , &
+ B7ADOF46Wvs , B7ADOF47A , B7ADOF47Add , B7ADOF47D , B7ADOF47Hds , B7ADOF47Rdt , B7ADOF47V , &
+ B7ADOF47Wvs , B7ADOF48A , B7ADOF48Add , B7ADOF48D , B7ADOF48Hds , B7ADOF48Rdt , B7ADOF48V , &
+ B7ADOF48Wvs , B7ADOF49A , B7ADOF49Add , B7ADOF49D , B7ADOF49Hds , B7ADOF49Rdt , B7ADOF49V , &
+ B7ADOF49Wvs , B7ADOF4A , B7ADOF4Add , B7ADOF4D , B7ADOF4Hds , B7ADOF4Rdt , B7ADOF4V , &
+ B7ADOF4Wvs , B7ADOF50A , B7ADOF50Add , B7ADOF50D , B7ADOF50Hds , B7ADOF50Rdt , B7ADOF50V , &
+ B7ADOF50Wvs , B7ADOF51A , B7ADOF51Add , B7ADOF51D , B7ADOF51Hds , B7ADOF51Rdt , B7ADOF51V , &
+ B7ADOF51Wvs , B7ADOF52A , B7ADOF52Add , B7ADOF52D , B7ADOF52Hds , B7ADOF52Rdt , B7ADOF52V , &
+ B7ADOF52Wvs , B7ADOF53A , B7ADOF53Add , B7ADOF53D , B7ADOF53Hds , B7ADOF53Rdt , B7ADOF53V , &
+ B7ADOF53Wvs , B7ADOF54A , B7ADOF54Add , B7ADOF54D , B7ADOF54Hds , B7ADOF54Rdt , B7ADOF54V , &
+ B7ADOF54Wvs , B7ADOF55A , B7ADOF55Add , B7ADOF55D , B7ADOF55Hds , B7ADOF55Rdt , B7ADOF55V , &
+ B7ADOF55Wvs , B7ADOF56A , B7ADOF56Add , B7ADOF56D , B7ADOF56Hds , B7ADOF56Rdt , B7ADOF56V , &
+ B7ADOF56Wvs , B7ADOF57A , B7ADOF57Add , B7ADOF57D , B7ADOF57Hds , B7ADOF57Rdt , B7ADOF57V , &
+ B7ADOF57Wvs , B7ADOF58A , B7ADOF58Add , B7ADOF58D , B7ADOF58Hds , B7ADOF58Rdt , B7ADOF58V , &
+ B7ADOF58Wvs , B7ADOF59A , B7ADOF59Add , B7ADOF59D , B7ADOF59Hds , B7ADOF59Rdt , B7ADOF59V , &
+ B7ADOF59Wvs , B7ADOF5A , B7ADOF5Add , B7ADOF5D , B7ADOF5Hds , B7ADOF5Rdt , B7ADOF5V , &
+ B7ADOF5Wvs , B7ADOF60A , B7ADOF60Add , B7ADOF60D , B7ADOF60Hds , B7ADOF60Rdt , B7ADOF60V , &
+ B7ADOF60Wvs , B7ADOF61A , B7ADOF61Add , B7ADOF61D , B7ADOF61Hds , B7ADOF61Rdt , B7ADOF61V , &
+ B7ADOF61Wvs , B7ADOF62A , B7ADOF62Add , B7ADOF62D , B7ADOF62Hds , B7ADOF62Rdt , B7ADOF62V , &
+ B7ADOF62Wvs , B7ADOF63A , B7ADOF63Add , B7ADOF63D , B7ADOF63Hds , B7ADOF63Rdt , B7ADOF63V , &
+ B7ADOF63Wvs , B7ADOF64A , B7ADOF64Add , B7ADOF64D , B7ADOF64Hds , B7ADOF64Rdt , B7ADOF64V , &
+ B7ADOF64Wvs , B7ADOF65A , B7ADOF65Add , B7ADOF65D , B7ADOF65Hds , B7ADOF65Rdt , B7ADOF65V , &
+ B7ADOF65Wvs , B7ADOF66A , B7ADOF66Add , B7ADOF66D , B7ADOF66Hds , B7ADOF66Rdt , B7ADOF66V , &
+ B7ADOF66Wvs , B7ADOF67A , B7ADOF67Add , B7ADOF67D , B7ADOF67Hds , B7ADOF67Rdt , B7ADOF67V , &
+ B7ADOF67Wvs , B7ADOF68A , B7ADOF68Add , B7ADOF68D , B7ADOF68Hds , B7ADOF68Rdt , B7ADOF68V , &
+ B7ADOF68Wvs , B7ADOF69A , B7ADOF69Add , B7ADOF69D , B7ADOF69Hds , B7ADOF69Rdt , B7ADOF69V , &
+ B7ADOF69Wvs , B7ADOF6A , B7ADOF6Add , B7ADOF6D , B7ADOF6Hds , B7ADOF6Rdt , B7ADOF6V , &
+ B7ADOF6Wvs , B7ADOF70A , B7ADOF70Add , B7ADOF70D , B7ADOF70Hds , B7ADOF70Rdt , B7ADOF70V , &
+ B7ADOF70Wvs , B7ADOF71A , B7ADOF71Add , B7ADOF71D , B7ADOF71Hds , B7ADOF71Rdt , B7ADOF71V , &
+ B7ADOF71Wvs , B7ADOF72A , B7ADOF72Add , B7ADOF72D , B7ADOF72Hds , B7ADOF72Rdt , B7ADOF72V , &
+ B7ADOF72Wvs , B7ADOF73A , B7ADOF73Add , B7ADOF73D , B7ADOF73Hds , B7ADOF73Rdt , B7ADOF73V , &
+ B7ADOF73Wvs , B7ADOF74A , B7ADOF74Add , B7ADOF74D , B7ADOF74Hds , B7ADOF74Rdt , B7ADOF74V , &
+ B7ADOF74Wvs , B7ADOF75A , B7ADOF75Add , B7ADOF75D , B7ADOF75Hds , B7ADOF75Rdt , B7ADOF75V , &
+ B7ADOF75Wvs , B7ADOF76A , B7ADOF76Add , B7ADOF76D , B7ADOF76Hds , B7ADOF76Rdt , B7ADOF76V , &
+ B7ADOF76Wvs , B7ADOF77A , B7ADOF77Add , B7ADOF77D , B7ADOF77Hds , B7ADOF77Rdt , B7ADOF77V , &
+ B7ADOF77Wvs , B7ADOF78A , B7ADOF78Add , B7ADOF78D , B7ADOF78Hds , B7ADOF78Rdt , B7ADOF78V , &
+ B7ADOF78Wvs , B7ADOF79A , B7ADOF79Add , B7ADOF79D , B7ADOF79Hds , B7ADOF79Rdt , B7ADOF79V , &
+ B7ADOF79Wvs , B7ADOF7A , B7ADOF7Add , B7ADOF7D , B7ADOF7Hds , B7ADOF7Rdt , B7ADOF7V , &
+ B7ADOF7Wvs , B7ADOF80A , B7ADOF80Add , B7ADOF80D , B7ADOF80Hds , B7ADOF80Rdt , B7ADOF80V , &
+ B7ADOF80Wvs , B7ADOF81A , B7ADOF81Add , B7ADOF81D , B7ADOF81Hds , B7ADOF81Rdt , B7ADOF81V , &
+ B7ADOF81Wvs , B7ADOF82A , B7ADOF82Add , B7ADOF82D , B7ADOF82Hds , B7ADOF82Rdt , B7ADOF82V , &
+ B7ADOF82Wvs , B7ADOF83A , B7ADOF83Add , B7ADOF83D , B7ADOF83Hds , B7ADOF83Rdt , B7ADOF83V , &
+ B7ADOF83Wvs , B7ADOF84A , B7ADOF84Add , B7ADOF84D , B7ADOF84Hds , B7ADOF84Rdt , B7ADOF84V /)
+ INTEGER(IntKi), PARAMETER :: ParamIndxAry4(1686) = (/ & ! This lists the index into AllOuts(:) of the allowed parameters ValidParamAry(:)
+ B7ADOF84Wvs , B7ADOF85A , B7ADOF85Add , B7ADOF85D , B7ADOF85Hds , B7ADOF85Rdt , B7ADOF85V , &
+ B7ADOF85Wvs , B7ADOF86A , B7ADOF86Add , B7ADOF86D , B7ADOF86Hds , B7ADOF86Rdt , B7ADOF86V , &
+ B7ADOF86Wvs , B7ADOF87A , B7ADOF87Add , B7ADOF87D , B7ADOF87Hds , B7ADOF87Rdt , B7ADOF87V , &
+ B7ADOF87Wvs , B7ADOF88A , B7ADOF88Add , B7ADOF88D , B7ADOF88Hds , B7ADOF88Rdt , B7ADOF88V , &
+ B7ADOF88Wvs , B7ADOF89A , B7ADOF89Add , B7ADOF89D , B7ADOF89Hds , B7ADOF89Rdt , B7ADOF89V , &
+ B7ADOF89Wvs , B7ADOF8A , B7ADOF8Add , B7ADOF8D , B7ADOF8Hds , B7ADOF8Rdt , B7ADOF8V , &
+ B7ADOF8Wvs , B7ADOF90A , B7ADOF90Add , B7ADOF90D , B7ADOF90Hds , B7ADOF90Rdt , B7ADOF90V , &
+ B7ADOF90Wvs , B7ADOF91A , B7ADOF91Add , B7ADOF91D , B7ADOF91Hds , B7ADOF91Rdt , B7ADOF91V , &
+ B7ADOF91Wvs , B7ADOF92A , B7ADOF92Add , B7ADOF92D , B7ADOF92Hds , B7ADOF92Rdt , B7ADOF92V , &
+ B7ADOF92Wvs , B7ADOF93A , B7ADOF93Add , B7ADOF93D , B7ADOF93Hds , B7ADOF93Rdt , B7ADOF93V , &
+ B7ADOF93Wvs , B7ADOF94A , B7ADOF94Add , B7ADOF94D , B7ADOF94Hds , B7ADOF94Rdt , B7ADOF94V , &
+ B7ADOF94Wvs , B7ADOF95A , B7ADOF95Add , B7ADOF95D , B7ADOF95Hds , B7ADOF95Rdt , B7ADOF95V , &
+ B7ADOF95Wvs , B7ADOF96A , B7ADOF96Add , B7ADOF96D , B7ADOF96Hds , B7ADOF96Rdt , B7ADOF96V , &
+ B7ADOF96Wvs , B7ADOF97A , B7ADOF97Add , B7ADOF97D , B7ADOF97Hds , B7ADOF97Rdt , B7ADOF97V , &
+ B7ADOF97Wvs , B7ADOF98A , B7ADOF98Add , B7ADOF98D , B7ADOF98Hds , B7ADOF98Rdt , B7ADOF98V , &
+ B7ADOF98Wvs , B7ADOF99A , B7ADOF99Add , B7ADOF99D , B7ADOF99Hds , B7ADOF99Rdt , B7ADOF99V , &
+ B7ADOF99Wvs , B7ADOF9A , B7ADOF9Add , B7ADOF9D , B7ADOF9Hds , B7ADOF9Rdt , B7ADOF9V , &
+ B7ADOF9Wvs , B7HdSFxi , B7HdSFyi , B7HdSFzi , B7HdSMxi , B7HdSMyi , B7HdSMzi , &
+ B7Heave , B7Pitch , B7RAxi , B7RAyi , B7RAzi , B7RdtFxi , B7RdtFyi , &
+ B7RdtFzi , B7RdtMxi , B7RdtMyi , B7RdtMzi , B7Roll , B7RVxi , B7RVyi , &
+ B7RVzi , B7Surge , B7Sway , B7TAxi , B7TAyi , B7TAzi , B7TVxi , &
+ B7TVyi , B7TVzi , B7WvsF1xi , B7WvsF1yi , B7WvsF1zi , B7WvsF2xi , B7WvsF2yi , &
+ B7WvsF2zi , B7WvsFxi , B7WvsFyi , B7WvsFzi , B7WvsM1xi , B7WvsM1yi , B7WvsM1zi , &
+ B7WvsM2xi , B7WvsM2yi , B7WvsM2zi , B7WvsMxi , B7WvsMyi , B7WvsMzi , B7Yaw , &
+ B8AddFxi , B8AddFyi , B8AddFzi , B8AddMxi , B8AddMyi , B8AddMzi , B8ADOF10A , &
+ B8ADOF10Add , B8ADOF10D , B8ADOF10Hds , B8ADOF10Rdt , B8ADOF10V , B8ADOF10Wvs , B8ADOF11A , &
+ B8ADOF11Add , B8ADOF11D , B8ADOF11Hds , B8ADOF11Rdt , B8ADOF11V , B8ADOF11Wvs , B8ADOF12A , &
+ B8ADOF12Add , B8ADOF12D , B8ADOF12Hds , B8ADOF12Rdt , B8ADOF12V , B8ADOF12Wvs , B8ADOF13A , &
+ B8ADOF13Add , B8ADOF13D , B8ADOF13Hds , B8ADOF13Rdt , B8ADOF13V , B8ADOF13Wvs , B8ADOF14A , &
+ B8ADOF14Add , B8ADOF14D , B8ADOF14Hds , B8ADOF14Rdt , B8ADOF14V , B8ADOF14Wvs , B8ADOF15A , &
+ B8ADOF15Add , B8ADOF15D , B8ADOF15Hds , B8ADOF15Rdt , B8ADOF15V , B8ADOF15Wvs , B8ADOF16A , &
+ B8ADOF16Add , B8ADOF16D , B8ADOF16Hds , B8ADOF16Rdt , B8ADOF16V , B8ADOF16Wvs , B8ADOF17A , &
+ B8ADOF17Add , B8ADOF17D , B8ADOF17Hds , B8ADOF17Rdt , B8ADOF17V , B8ADOF17Wvs , B8ADOF18A , &
+ B8ADOF18Add , B8ADOF18D , B8ADOF18Hds , B8ADOF18Rdt , B8ADOF18V , B8ADOF18Wvs , B8ADOF19A , &
+ B8ADOF19Add , B8ADOF19D , B8ADOF19Hds , B8ADOF19Rdt , B8ADOF19V , B8ADOF19Wvs , B8ADOF1A , &
+ B8ADOF1Add , B8ADOF1D , B8ADOF1Hds , B8ADOF1Rdt , B8ADOF1V , B8ADOF1Wvs , B8ADOF20A , &
+ B8ADOF20Add , B8ADOF20D , B8ADOF20Hds , B8ADOF20Rdt , B8ADOF20V , B8ADOF20Wvs , B8ADOF21A , &
+ B8ADOF21Add , B8ADOF21D , B8ADOF21Hds , B8ADOF21Rdt , B8ADOF21V , B8ADOF21Wvs , B8ADOF22A , &
+ B8ADOF22Add , B8ADOF22D , B8ADOF22Hds , B8ADOF22Rdt , B8ADOF22V , B8ADOF22Wvs , B8ADOF23A , &
+ B8ADOF23Add , B8ADOF23D , B8ADOF23Hds , B8ADOF23Rdt , B8ADOF23V , B8ADOF23Wvs , B8ADOF24A , &
+ B8ADOF24Add , B8ADOF24D , B8ADOF24Hds , B8ADOF24Rdt , B8ADOF24V , B8ADOF24Wvs , B8ADOF25A , &
+ B8ADOF25Add , B8ADOF25D , B8ADOF25Hds , B8ADOF25Rdt , B8ADOF25V , B8ADOF25Wvs , B8ADOF26A , &
+ B8ADOF26Add , B8ADOF26D , B8ADOF26Hds , B8ADOF26Rdt , B8ADOF26V , B8ADOF26Wvs , B8ADOF27A , &
+ B8ADOF27Add , B8ADOF27D , B8ADOF27Hds , B8ADOF27Rdt , B8ADOF27V , B8ADOF27Wvs , B8ADOF28A , &
+ B8ADOF28Add , B8ADOF28D , B8ADOF28Hds , B8ADOF28Rdt , B8ADOF28V , B8ADOF28Wvs , B8ADOF29A , &
+ B8ADOF29Add , B8ADOF29D , B8ADOF29Hds , B8ADOF29Rdt , B8ADOF29V , B8ADOF29Wvs , B8ADOF2A , &
+ B8ADOF2Add , B8ADOF2D , B8ADOF2Hds , B8ADOF2Rdt , B8ADOF2V , B8ADOF2Wvs , B8ADOF30A , &
+ B8ADOF30Add , B8ADOF30D , B8ADOF30Hds , B8ADOF30Rdt , B8ADOF30V , B8ADOF30Wvs , B8ADOF31A , &
+ B8ADOF31Add , B8ADOF31D , B8ADOF31Hds , B8ADOF31Rdt , B8ADOF31V , B8ADOF31Wvs , B8ADOF32A , &
+ B8ADOF32Add , B8ADOF32D , B8ADOF32Hds , B8ADOF32Rdt , B8ADOF32V , B8ADOF32Wvs , B8ADOF33A , &
+ B8ADOF33Add , B8ADOF33D , B8ADOF33Hds , B8ADOF33Rdt , B8ADOF33V , B8ADOF33Wvs , B8ADOF34A , &
+ B8ADOF34Add , B8ADOF34D , B8ADOF34Hds , B8ADOF34Rdt , B8ADOF34V , B8ADOF34Wvs , B8ADOF35A , &
+ B8ADOF35Add , B8ADOF35D , B8ADOF35Hds , B8ADOF35Rdt , B8ADOF35V , B8ADOF35Wvs , B8ADOF36A , &
+ B8ADOF36Add , B8ADOF36D , B8ADOF36Hds , B8ADOF36Rdt , B8ADOF36V , B8ADOF36Wvs , B8ADOF37A , &
+ B8ADOF37Add , B8ADOF37D , B8ADOF37Hds , B8ADOF37Rdt , B8ADOF37V , B8ADOF37Wvs , B8ADOF38A , &
+ B8ADOF38Add , B8ADOF38D , B8ADOF38Hds , B8ADOF38Rdt , B8ADOF38V , B8ADOF38Wvs , B8ADOF39A , &
+ B8ADOF39Add , B8ADOF39D , B8ADOF39Hds , B8ADOF39Rdt , B8ADOF39V , B8ADOF39Wvs , B8ADOF3A , &
+ B8ADOF3Add , B8ADOF3D , B8ADOF3Hds , B8ADOF3Rdt , B8ADOF3V , B8ADOF3Wvs , B8ADOF40A , &
+ B8ADOF40Add , B8ADOF40D , B8ADOF40Hds , B8ADOF40Rdt , B8ADOF40V , B8ADOF40Wvs , B8ADOF41A , &
+ B8ADOF41Add , B8ADOF41D , B8ADOF41Hds , B8ADOF41Rdt , B8ADOF41V , B8ADOF41Wvs , B8ADOF42A , &
+ B8ADOF42Add , B8ADOF42D , B8ADOF42Hds , B8ADOF42Rdt , B8ADOF42V , B8ADOF42Wvs , B8ADOF43A , &
+ B8ADOF43Add , B8ADOF43D , B8ADOF43Hds , B8ADOF43Rdt , B8ADOF43V , B8ADOF43Wvs , B8ADOF44A , &
+ B8ADOF44Add , B8ADOF44D , B8ADOF44Hds , B8ADOF44Rdt , B8ADOF44V , B8ADOF44Wvs , B8ADOF45A , &
+ B8ADOF45Add , B8ADOF45D , B8ADOF45Hds , B8ADOF45Rdt , B8ADOF45V , B8ADOF45Wvs , B8ADOF46A , &
+ B8ADOF46Add , B8ADOF46D , B8ADOF46Hds , B8ADOF46Rdt , B8ADOF46V , B8ADOF46Wvs , B8ADOF47A , &
+ B8ADOF47Add , B8ADOF47D , B8ADOF47Hds , B8ADOF47Rdt , B8ADOF47V , B8ADOF47Wvs , B8ADOF48A , &
+ B8ADOF48Add , B8ADOF48D , B8ADOF48Hds , B8ADOF48Rdt , B8ADOF48V , B8ADOF48Wvs , B8ADOF49A , &
+ B8ADOF49Add , B8ADOF49D , B8ADOF49Hds , B8ADOF49Rdt , B8ADOF49V , B8ADOF49Wvs , B8ADOF4A , &
+ B8ADOF4Add , B8ADOF4D , B8ADOF4Hds , B8ADOF4Rdt , B8ADOF4V , B8ADOF4Wvs , B8ADOF50A , &
+ B8ADOF50Add , B8ADOF50D , B8ADOF50Hds , B8ADOF50Rdt , B8ADOF50V , B8ADOF50Wvs , B8ADOF51A , &
+ B8ADOF51Add , B8ADOF51D , B8ADOF51Hds , B8ADOF51Rdt , B8ADOF51V , B8ADOF51Wvs , B8ADOF52A , &
+ B8ADOF52Add , B8ADOF52D , B8ADOF52Hds , B8ADOF52Rdt , B8ADOF52V , B8ADOF52Wvs , B8ADOF53A , &
+ B8ADOF53Add , B8ADOF53D , B8ADOF53Hds , B8ADOF53Rdt , B8ADOF53V , B8ADOF53Wvs , B8ADOF54A , &
+ B8ADOF54Add , B8ADOF54D , B8ADOF54Hds , B8ADOF54Rdt , B8ADOF54V , B8ADOF54Wvs , B8ADOF55A , &
+ B8ADOF55Add , B8ADOF55D , B8ADOF55Hds , B8ADOF55Rdt , B8ADOF55V , B8ADOF55Wvs , B8ADOF56A , &
+ B8ADOF56Add , B8ADOF56D , B8ADOF56Hds , B8ADOF56Rdt , B8ADOF56V , B8ADOF56Wvs , B8ADOF57A , &
+ B8ADOF57Add , B8ADOF57D , B8ADOF57Hds , B8ADOF57Rdt , B8ADOF57V , B8ADOF57Wvs , B8ADOF58A , &
+ B8ADOF58Add , B8ADOF58D , B8ADOF58Hds , B8ADOF58Rdt , B8ADOF58V , B8ADOF58Wvs , B8ADOF59A , &
+ B8ADOF59Add , B8ADOF59D , B8ADOF59Hds , B8ADOF59Rdt , B8ADOF59V , B8ADOF59Wvs , B8ADOF5A , &
+ B8ADOF5Add , B8ADOF5D , B8ADOF5Hds , B8ADOF5Rdt , B8ADOF5V , B8ADOF5Wvs , B8ADOF60A , &
+ B8ADOF60Add , B8ADOF60D , B8ADOF60Hds , B8ADOF60Rdt , B8ADOF60V , B8ADOF60Wvs , B8ADOF61A , &
+ B8ADOF61Add , B8ADOF61D , B8ADOF61Hds , B8ADOF61Rdt , B8ADOF61V , B8ADOF61Wvs , B8ADOF62A , &
+ B8ADOF62Add , B8ADOF62D , B8ADOF62Hds , B8ADOF62Rdt , B8ADOF62V , B8ADOF62Wvs , B8ADOF63A , &
+ B8ADOF63Add , B8ADOF63D , B8ADOF63Hds , B8ADOF63Rdt , B8ADOF63V , B8ADOF63Wvs , B8ADOF64A , &
+ B8ADOF64Add , B8ADOF64D , B8ADOF64Hds , B8ADOF64Rdt , B8ADOF64V , B8ADOF64Wvs , B8ADOF65A , &
+ B8ADOF65Add , B8ADOF65D , B8ADOF65Hds , B8ADOF65Rdt , B8ADOF65V , B8ADOF65Wvs , B8ADOF66A , &
+ B8ADOF66Add , B8ADOF66D , B8ADOF66Hds , B8ADOF66Rdt , B8ADOF66V , B8ADOF66Wvs , B8ADOF67A , &
+ B8ADOF67Add , B8ADOF67D , B8ADOF67Hds , B8ADOF67Rdt , B8ADOF67V , B8ADOF67Wvs , B8ADOF68A , &
+ B8ADOF68Add , B8ADOF68D , B8ADOF68Hds , B8ADOF68Rdt , B8ADOF68V , B8ADOF68Wvs , B8ADOF69A , &
+ B8ADOF69Add , B8ADOF69D , B8ADOF69Hds , B8ADOF69Rdt , B8ADOF69V , B8ADOF69Wvs , B8ADOF6A , &
+ B8ADOF6Add , B8ADOF6D , B8ADOF6Hds , B8ADOF6Rdt , B8ADOF6V , B8ADOF6Wvs , B8ADOF70A , &
+ B8ADOF70Add , B8ADOF70D , B8ADOF70Hds , B8ADOF70Rdt , B8ADOF70V , B8ADOF70Wvs , B8ADOF71A , &
+ B8ADOF71Add , B8ADOF71D , B8ADOF71Hds , B8ADOF71Rdt , B8ADOF71V , B8ADOF71Wvs , B8ADOF72A , &
+ B8ADOF72Add , B8ADOF72D , B8ADOF72Hds , B8ADOF72Rdt , B8ADOF72V , B8ADOF72Wvs , B8ADOF73A , &
+ B8ADOF73Add , B8ADOF73D , B8ADOF73Hds , B8ADOF73Rdt , B8ADOF73V , B8ADOF73Wvs , B8ADOF74A , &
+ B8ADOF74Add , B8ADOF74D , B8ADOF74Hds , B8ADOF74Rdt , B8ADOF74V , B8ADOF74Wvs , B8ADOF75A , &
+ B8ADOF75Add , B8ADOF75D , B8ADOF75Hds , B8ADOF75Rdt , B8ADOF75V , B8ADOF75Wvs , B8ADOF76A , &
+ B8ADOF76Add , B8ADOF76D , B8ADOF76Hds , B8ADOF76Rdt , B8ADOF76V , B8ADOF76Wvs , B8ADOF77A , &
+ B8ADOF77Add , B8ADOF77D , B8ADOF77Hds , B8ADOF77Rdt , B8ADOF77V , B8ADOF77Wvs , B8ADOF78A , &
+ B8ADOF78Add , B8ADOF78D , B8ADOF78Hds , B8ADOF78Rdt , B8ADOF78V , B8ADOF78Wvs , B8ADOF79A , &
+ B8ADOF79Add , B8ADOF79D , B8ADOF79Hds , B8ADOF79Rdt , B8ADOF79V , B8ADOF79Wvs , B8ADOF7A , &
+ B8ADOF7Add , B8ADOF7D , B8ADOF7Hds , B8ADOF7Rdt , B8ADOF7V , B8ADOF7Wvs , B8ADOF80A , &
+ B8ADOF80Add , B8ADOF80D , B8ADOF80Hds , B8ADOF80Rdt , B8ADOF80V , B8ADOF80Wvs , B8ADOF81A , &
+ B8ADOF81Add , B8ADOF81D , B8ADOF81Hds , B8ADOF81Rdt , B8ADOF81V , B8ADOF81Wvs , B8ADOF82A , &
+ B8ADOF82Add , B8ADOF82D , B8ADOF82Hds , B8ADOF82Rdt , B8ADOF82V , B8ADOF82Wvs , B8ADOF83A , &
+ B8ADOF83Add , B8ADOF83D , B8ADOF83Hds , B8ADOF83Rdt , B8ADOF83V , B8ADOF83Wvs , B8ADOF84A , &
+ B8ADOF84Add , B8ADOF84D , B8ADOF84Hds , B8ADOF84Rdt , B8ADOF84V , B8ADOF84Wvs , B8ADOF85A , &
+ B8ADOF85Add , B8ADOF85D , B8ADOF85Hds , B8ADOF85Rdt , B8ADOF85V , B8ADOF85Wvs , B8ADOF86A , &
+ B8ADOF86Add , B8ADOF86D , B8ADOF86Hds , B8ADOF86Rdt , B8ADOF86V , B8ADOF86Wvs , B8ADOF87A , &
+ B8ADOF87Add , B8ADOF87D , B8ADOF87Hds , B8ADOF87Rdt , B8ADOF87V , B8ADOF87Wvs , B8ADOF88A , &
+ B8ADOF88Add , B8ADOF88D , B8ADOF88Hds , B8ADOF88Rdt , B8ADOF88V , B8ADOF88Wvs , B8ADOF89A , &
+ B8ADOF89Add , B8ADOF89D , B8ADOF89Hds , B8ADOF89Rdt , B8ADOF89V , B8ADOF89Wvs , B8ADOF8A , &
+ B8ADOF8Add , B8ADOF8D , B8ADOF8Hds , B8ADOF8Rdt , B8ADOF8V , B8ADOF8Wvs , B8ADOF90A , &
+ B8ADOF90Add , B8ADOF90D , B8ADOF90Hds , B8ADOF90Rdt , B8ADOF90V , B8ADOF90Wvs , B8ADOF91A , &
+ B8ADOF91Add , B8ADOF91D , B8ADOF91Hds , B8ADOF91Rdt , B8ADOF91V , B8ADOF91Wvs , B8ADOF92A , &
+ B8ADOF92Add , B8ADOF92D , B8ADOF92Hds , B8ADOF92Rdt , B8ADOF92V , B8ADOF92Wvs , B8ADOF93A , &
+ B8ADOF93Add , B8ADOF93D , B8ADOF93Hds , B8ADOF93Rdt , B8ADOF93V , B8ADOF93Wvs , B8ADOF94A , &
+ B8ADOF94Add , B8ADOF94D , B8ADOF94Hds , B8ADOF94Rdt , B8ADOF94V , B8ADOF94Wvs , B8ADOF95A , &
+ B8ADOF95Add , B8ADOF95D , B8ADOF95Hds , B8ADOF95Rdt , B8ADOF95V , B8ADOF95Wvs , B8ADOF96A , &
+ B8ADOF96Add , B8ADOF96D , B8ADOF96Hds , B8ADOF96Rdt , B8ADOF96V , B8ADOF96Wvs , B8ADOF97A , &
+ B8ADOF97Add , B8ADOF97D , B8ADOF97Hds , B8ADOF97Rdt , B8ADOF97V , B8ADOF97Wvs , B8ADOF98A , &
+ B8ADOF98Add , B8ADOF98D , B8ADOF98Hds , B8ADOF98Rdt , B8ADOF98V , B8ADOF98Wvs , B8ADOF99A , &
+ B8ADOF99Add , B8ADOF99D , B8ADOF99Hds , B8ADOF99Rdt , B8ADOF99V , B8ADOF99Wvs , B8ADOF9A , &
+ B8ADOF9Add , B8ADOF9D , B8ADOF9Hds , B8ADOF9Rdt , B8ADOF9V , B8ADOF9Wvs , B8HdSFxi , &
+ B8HdSFyi , B8HdSFzi , B8HdSMxi , B8HdSMyi , B8HdSMzi , B8Heave , B8Pitch , &
+ B8RAxi , B8RAyi , B8RAzi , B8RdtFxi , B8RdtFyi , B8RdtFzi , B8RdtMxi , &
+ B8RdtMyi , B8RdtMzi , B8Roll , B8RVxi , B8RVyi , B8RVzi , B8Surge , &
+ B8Sway , B8TAxi , B8TAyi , B8TAzi , B8TVxi , B8TVyi , B8TVzi , &
+ B8WvsF1xi , B8WvsF1yi , B8WvsF1zi , B8WvsF2xi , B8WvsF2yi , B8WvsF2zi , B8WvsFxi , &
+ B8WvsFyi , B8WvsFzi , B8WvsM1xi , B8WvsM1yi , B8WvsM1zi , B8WvsM2xi , B8WvsM2yi , &
+ B8WvsM2zi , B8WvsMxi , B8WvsMyi , B8WvsMzi , B8Yaw , B9AddFxi , B9AddFyi , &
+ B9AddFzi , B9AddMxi , B9AddMyi , B9AddMzi , B9ADOF10A , B9ADOF10Add , B9ADOF10D , &
+ B9ADOF10Hds , B9ADOF10Rdt , B9ADOF10V , B9ADOF10Wvs , B9ADOF11A , B9ADOF11Add , B9ADOF11D , &
+ B9ADOF11Hds , B9ADOF11Rdt , B9ADOF11V , B9ADOF11Wvs , B9ADOF12A , B9ADOF12Add , B9ADOF12D , &
+ B9ADOF12Hds , B9ADOF12Rdt , B9ADOF12V , B9ADOF12Wvs , B9ADOF13A , B9ADOF13Add , B9ADOF13D , &
+ B9ADOF13Hds , B9ADOF13Rdt , B9ADOF13V , B9ADOF13Wvs , B9ADOF14A , B9ADOF14Add , B9ADOF14D , &
+ B9ADOF14Hds , B9ADOF14Rdt , B9ADOF14V , B9ADOF14Wvs , B9ADOF15A , B9ADOF15Add , B9ADOF15D , &
+ B9ADOF15Hds , B9ADOF15Rdt , B9ADOF15V , B9ADOF15Wvs , B9ADOF16A , B9ADOF16Add , B9ADOF16D , &
+ B9ADOF16Hds , B9ADOF16Rdt , B9ADOF16V , B9ADOF16Wvs , B9ADOF17A , B9ADOF17Add , B9ADOF17D , &
+ B9ADOF17Hds , B9ADOF17Rdt , B9ADOF17V , B9ADOF17Wvs , B9ADOF18A , B9ADOF18Add , B9ADOF18D , &
+ B9ADOF18Hds , B9ADOF18Rdt , B9ADOF18V , B9ADOF18Wvs , B9ADOF19A , B9ADOF19Add , B9ADOF19D , &
+ B9ADOF19Hds , B9ADOF19Rdt , B9ADOF19V , B9ADOF19Wvs , B9ADOF1A , B9ADOF1Add , B9ADOF1D , &
+ B9ADOF1Hds , B9ADOF1Rdt , B9ADOF1V , B9ADOF1Wvs , B9ADOF20A , B9ADOF20Add , B9ADOF20D , &
+ B9ADOF20Hds , B9ADOF20Rdt , B9ADOF20V , B9ADOF20Wvs , B9ADOF21A , B9ADOF21Add , B9ADOF21D , &
+ B9ADOF21Hds , B9ADOF21Rdt , B9ADOF21V , B9ADOF21Wvs , B9ADOF22A , B9ADOF22Add , B9ADOF22D , &
+ B9ADOF22Hds , B9ADOF22Rdt , B9ADOF22V , B9ADOF22Wvs , B9ADOF23A , B9ADOF23Add , B9ADOF23D , &
+ B9ADOF23Hds , B9ADOF23Rdt , B9ADOF23V , B9ADOF23Wvs , B9ADOF24A , B9ADOF24Add , B9ADOF24D , &
+ B9ADOF24Hds , B9ADOF24Rdt , B9ADOF24V , B9ADOF24Wvs , B9ADOF25A , B9ADOF25Add , B9ADOF25D , &
+ B9ADOF25Hds , B9ADOF25Rdt , B9ADOF25V , B9ADOF25Wvs , B9ADOF26A , B9ADOF26Add , B9ADOF26D , &
+ B9ADOF26Hds , B9ADOF26Rdt , B9ADOF26V , B9ADOF26Wvs , B9ADOF27A , B9ADOF27Add , B9ADOF27D , &
+ B9ADOF27Hds , B9ADOF27Rdt , B9ADOF27V , B9ADOF27Wvs , B9ADOF28A , B9ADOF28Add , B9ADOF28D , &
+ B9ADOF28Hds , B9ADOF28Rdt , B9ADOF28V , B9ADOF28Wvs , B9ADOF29A , B9ADOF29Add , B9ADOF29D , &
+ B9ADOF29Hds , B9ADOF29Rdt , B9ADOF29V , B9ADOF29Wvs , B9ADOF2A , B9ADOF2Add , B9ADOF2D , &
+ B9ADOF2Hds , B9ADOF2Rdt , B9ADOF2V , B9ADOF2Wvs , B9ADOF30A , B9ADOF30Add , B9ADOF30D , &
+ B9ADOF30Hds , B9ADOF30Rdt , B9ADOF30V , B9ADOF30Wvs , B9ADOF31A , B9ADOF31Add , B9ADOF31D , &
+ B9ADOF31Hds , B9ADOF31Rdt , B9ADOF31V , B9ADOF31Wvs , B9ADOF32A , B9ADOF32Add , B9ADOF32D , &
+ B9ADOF32Hds , B9ADOF32Rdt , B9ADOF32V , B9ADOF32Wvs , B9ADOF33A , B9ADOF33Add , B9ADOF33D , &
+ B9ADOF33Hds , B9ADOF33Rdt , B9ADOF33V , B9ADOF33Wvs , B9ADOF34A , B9ADOF34Add , B9ADOF34D , &
+ B9ADOF34Hds , B9ADOF34Rdt , B9ADOF34V , B9ADOF34Wvs , B9ADOF35A , B9ADOF35Add , B9ADOF35D , &
+ B9ADOF35Hds , B9ADOF35Rdt , B9ADOF35V , B9ADOF35Wvs , B9ADOF36A , B9ADOF36Add , B9ADOF36D , &
+ B9ADOF36Hds , B9ADOF36Rdt , B9ADOF36V , B9ADOF36Wvs , B9ADOF37A , B9ADOF37Add , B9ADOF37D , &
+ B9ADOF37Hds , B9ADOF37Rdt , B9ADOF37V , B9ADOF37Wvs , B9ADOF38A , B9ADOF38Add , B9ADOF38D , &
+ B9ADOF38Hds , B9ADOF38Rdt , B9ADOF38V , B9ADOF38Wvs , B9ADOF39A , B9ADOF39Add , B9ADOF39D , &
+ B9ADOF39Hds , B9ADOF39Rdt , B9ADOF39V , B9ADOF39Wvs , B9ADOF3A , B9ADOF3Add , B9ADOF3D , &
+ B9ADOF3Hds , B9ADOF3Rdt , B9ADOF3V , B9ADOF3Wvs , B9ADOF40A , B9ADOF40Add , B9ADOF40D , &
+ B9ADOF40Hds , B9ADOF40Rdt , B9ADOF40V , B9ADOF40Wvs , B9ADOF41A , B9ADOF41Add , B9ADOF41D , &
+ B9ADOF41Hds , B9ADOF41Rdt , B9ADOF41V , B9ADOF41Wvs , B9ADOF42A , B9ADOF42Add , B9ADOF42D , &
+ B9ADOF42Hds , B9ADOF42Rdt , B9ADOF42V , B9ADOF42Wvs , B9ADOF43A , B9ADOF43Add , B9ADOF43D , &
+ B9ADOF43Hds , B9ADOF43Rdt , B9ADOF43V , B9ADOF43Wvs , B9ADOF44A , B9ADOF44Add , B9ADOF44D , &
+ B9ADOF44Hds , B9ADOF44Rdt , B9ADOF44V , B9ADOF44Wvs , B9ADOF45A , B9ADOF45Add , B9ADOF45D , &
+ B9ADOF45Hds , B9ADOF45Rdt , B9ADOF45V , B9ADOF45Wvs , B9ADOF46A , B9ADOF46Add , B9ADOF46D , &
+ B9ADOF46Hds , B9ADOF46Rdt , B9ADOF46V , B9ADOF46Wvs , B9ADOF47A , B9ADOF47Add , B9ADOF47D , &
+ B9ADOF47Hds , B9ADOF47Rdt , B9ADOF47V , B9ADOF47Wvs , B9ADOF48A , B9ADOF48Add , B9ADOF48D , &
+ B9ADOF48Hds , B9ADOF48Rdt , B9ADOF48V , B9ADOF48Wvs , B9ADOF49A , B9ADOF49Add , B9ADOF49D , &
+ B9ADOF49Hds , B9ADOF49Rdt , B9ADOF49V , B9ADOF49Wvs , B9ADOF4A , B9ADOF4Add , B9ADOF4D , &
+ B9ADOF4Hds , B9ADOF4Rdt , B9ADOF4V , B9ADOF4Wvs , B9ADOF50A , B9ADOF50Add , B9ADOF50D , &
+ B9ADOF50Hds , B9ADOF50Rdt , B9ADOF50V , B9ADOF50Wvs , B9ADOF51A , B9ADOF51Add , B9ADOF51D , &
+ B9ADOF51Hds , B9ADOF51Rdt , B9ADOF51V , B9ADOF51Wvs , B9ADOF52A , B9ADOF52Add , B9ADOF52D , &
+ B9ADOF52Hds , B9ADOF52Rdt , B9ADOF52V , B9ADOF52Wvs , B9ADOF53A , B9ADOF53Add , B9ADOF53D , &
+ B9ADOF53Hds , B9ADOF53Rdt , B9ADOF53V , B9ADOF53Wvs , B9ADOF54A , B9ADOF54Add , B9ADOF54D , &
+ B9ADOF54Hds , B9ADOF54Rdt , B9ADOF54V , B9ADOF54Wvs , B9ADOF55A , B9ADOF55Add , B9ADOF55D , &
+ B9ADOF55Hds , B9ADOF55Rdt , B9ADOF55V , B9ADOF55Wvs , B9ADOF56A , B9ADOF56Add , B9ADOF56D , &
+ B9ADOF56Hds , B9ADOF56Rdt , B9ADOF56V , B9ADOF56Wvs , B9ADOF57A , B9ADOF57Add , B9ADOF57D , &
+ B9ADOF57Hds , B9ADOF57Rdt , B9ADOF57V , B9ADOF57Wvs , B9ADOF58A , B9ADOF58Add , B9ADOF58D , &
+ B9ADOF58Hds , B9ADOF58Rdt , B9ADOF58V , B9ADOF58Wvs , B9ADOF59A , B9ADOF59Add , B9ADOF59D , &
+ B9ADOF59Hds , B9ADOF59Rdt , B9ADOF59V , B9ADOF59Wvs , B9ADOF5A , B9ADOF5Add , B9ADOF5D , &
+ B9ADOF5Hds , B9ADOF5Rdt , B9ADOF5V , B9ADOF5Wvs , B9ADOF60A , B9ADOF60Add , B9ADOF60D , &
+ B9ADOF60Hds , B9ADOF60Rdt , B9ADOF60V , B9ADOF60Wvs , B9ADOF61A , B9ADOF61Add , B9ADOF61D , &
+ B9ADOF61Hds , B9ADOF61Rdt , B9ADOF61V , B9ADOF61Wvs , B9ADOF62A , B9ADOF62Add , B9ADOF62D , &
+ B9ADOF62Hds , B9ADOF62Rdt , B9ADOF62V , B9ADOF62Wvs , B9ADOF63A , B9ADOF63Add , B9ADOF63D , &
+ B9ADOF63Hds , B9ADOF63Rdt , B9ADOF63V , B9ADOF63Wvs , B9ADOF64A , B9ADOF64Add , B9ADOF64D , &
+ B9ADOF64Hds , B9ADOF64Rdt , B9ADOF64V , B9ADOF64Wvs , B9ADOF65A , B9ADOF65Add , B9ADOF65D , &
+ B9ADOF65Hds , B9ADOF65Rdt , B9ADOF65V , B9ADOF65Wvs , B9ADOF66A , B9ADOF66Add , B9ADOF66D , &
+ B9ADOF66Hds , B9ADOF66Rdt , B9ADOF66V , B9ADOF66Wvs , B9ADOF67A , B9ADOF67Add , B9ADOF67D , &
+ B9ADOF67Hds , B9ADOF67Rdt , B9ADOF67V , B9ADOF67Wvs , B9ADOF68A , B9ADOF68Add , B9ADOF68D , &
+ B9ADOF68Hds , B9ADOF68Rdt , B9ADOF68V , B9ADOF68Wvs , B9ADOF69A , B9ADOF69Add , B9ADOF69D , &
+ B9ADOF69Hds , B9ADOF69Rdt , B9ADOF69V , B9ADOF69Wvs , B9ADOF6A , B9ADOF6Add , B9ADOF6D , &
+ B9ADOF6Hds , B9ADOF6Rdt , B9ADOF6V , B9ADOF6Wvs , B9ADOF70A , B9ADOF70Add , B9ADOF70D , &
+ B9ADOF70Hds , B9ADOF70Rdt , B9ADOF70V , B9ADOF70Wvs , B9ADOF71A , B9ADOF71Add , B9ADOF71D , &
+ B9ADOF71Hds , B9ADOF71Rdt , B9ADOF71V , B9ADOF71Wvs , B9ADOF72A , B9ADOF72Add , B9ADOF72D , &
+ B9ADOF72Hds , B9ADOF72Rdt , B9ADOF72V , B9ADOF72Wvs , B9ADOF73A , B9ADOF73Add , B9ADOF73D , &
+ B9ADOF73Hds , B9ADOF73Rdt , B9ADOF73V , B9ADOF73Wvs , B9ADOF74A , B9ADOF74Add , B9ADOF74D , &
+ B9ADOF74Hds , B9ADOF74Rdt , B9ADOF74V , B9ADOF74Wvs , B9ADOF75A , B9ADOF75Add , B9ADOF75D , &
+ B9ADOF75Hds , B9ADOF75Rdt , B9ADOF75V , B9ADOF75Wvs , B9ADOF76A , B9ADOF76Add , B9ADOF76D , &
+ B9ADOF76Hds , B9ADOF76Rdt , B9ADOF76V , B9ADOF76Wvs , B9ADOF77A , B9ADOF77Add , B9ADOF77D , &
+ B9ADOF77Hds , B9ADOF77Rdt , B9ADOF77V , B9ADOF77Wvs , B9ADOF78A , B9ADOF78Add , B9ADOF78D , &
+ B9ADOF78Hds , B9ADOF78Rdt , B9ADOF78V , B9ADOF78Wvs , B9ADOF79A , B9ADOF79Add , B9ADOF79D , &
+ B9ADOF79Hds , B9ADOF79Rdt , B9ADOF79V , B9ADOF79Wvs , B9ADOF7A , B9ADOF7Add , B9ADOF7D , &
+ B9ADOF7Hds , B9ADOF7Rdt , B9ADOF7V , B9ADOF7Wvs , B9ADOF80A , B9ADOF80Add , B9ADOF80D , &
+ B9ADOF80Hds , B9ADOF80Rdt , B9ADOF80V , B9ADOF80Wvs , B9ADOF81A , B9ADOF81Add , B9ADOF81D , &
+ B9ADOF81Hds , B9ADOF81Rdt , B9ADOF81V , B9ADOF81Wvs , B9ADOF82A , B9ADOF82Add , B9ADOF82D , &
+ B9ADOF82Hds , B9ADOF82Rdt , B9ADOF82V , B9ADOF82Wvs , B9ADOF83A , B9ADOF83Add , B9ADOF83D , &
+ B9ADOF83Hds , B9ADOF83Rdt , B9ADOF83V , B9ADOF83Wvs , B9ADOF84A , B9ADOF84Add , B9ADOF84D , &
+ B9ADOF84Hds , B9ADOF84Rdt , B9ADOF84V , B9ADOF84Wvs , B9ADOF85A , B9ADOF85Add , B9ADOF85D , &
+ B9ADOF85Hds , B9ADOF85Rdt , B9ADOF85V , B9ADOF85Wvs , B9ADOF86A , B9ADOF86Add , B9ADOF86D , &
+ B9ADOF86Hds , B9ADOF86Rdt , B9ADOF86V , B9ADOF86Wvs , B9ADOF87A , B9ADOF87Add , B9ADOF87D , &
+ B9ADOF87Hds , B9ADOF87Rdt , B9ADOF87V , B9ADOF87Wvs , B9ADOF88A , B9ADOF88Add , B9ADOF88D , &
+ B9ADOF88Hds , B9ADOF88Rdt , B9ADOF88V , B9ADOF88Wvs , B9ADOF89A , B9ADOF89Add , B9ADOF89D , &
+ B9ADOF89Hds , B9ADOF89Rdt , B9ADOF89V , B9ADOF89Wvs , B9ADOF8A , B9ADOF8Add , B9ADOF8D , &
+ B9ADOF8Hds , B9ADOF8Rdt , B9ADOF8V , B9ADOF8Wvs , B9ADOF90A , B9ADOF90Add , B9ADOF90D , &
+ B9ADOF90Hds , B9ADOF90Rdt , B9ADOF90V , B9ADOF90Wvs , B9ADOF91A , B9ADOF91Add , B9ADOF91D , &
+ B9ADOF91Hds , B9ADOF91Rdt , B9ADOF91V , B9ADOF91Wvs , B9ADOF92A , B9ADOF92Add , B9ADOF92D , &
+ B9ADOF92Hds , B9ADOF92Rdt , B9ADOF92V , B9ADOF92Wvs , B9ADOF93A , B9ADOF93Add , B9ADOF93D , &
+ B9ADOF93Hds , B9ADOF93Rdt , B9ADOF93V , B9ADOF93Wvs , B9ADOF94A , B9ADOF94Add , B9ADOF94D , &
+ B9ADOF94Hds , B9ADOF94Rdt , B9ADOF94V , B9ADOF94Wvs , B9ADOF95A , B9ADOF95Add , B9ADOF95D , &
+ B9ADOF95Hds , B9ADOF95Rdt , B9ADOF95V , B9ADOF95Wvs , B9ADOF96A , B9ADOF96Add , B9ADOF96D , &
+ B9ADOF96Hds , B9ADOF96Rdt , B9ADOF96V , B9ADOF96Wvs , B9ADOF97A , B9ADOF97Add , B9ADOF97D , &
+ B9ADOF97Hds , B9ADOF97Rdt , B9ADOF97V , B9ADOF97Wvs , B9ADOF98A , B9ADOF98Add , B9ADOF98D , &
+ B9ADOF98Hds , B9ADOF98Rdt , B9ADOF98V , B9ADOF98Wvs , B9ADOF99A , B9ADOF99Add , B9ADOF99D , &
+ B9ADOF99Hds , B9ADOF99Rdt , B9ADOF99V , B9ADOF99Wvs , B9ADOF9A , B9ADOF9Add , B9ADOF9D , &
+ B9ADOF9Hds , B9ADOF9Rdt , B9ADOF9V , B9ADOF9Wvs , B9HdSFxi , B9HdSFyi , B9HdSFzi , &
+ B9HdSMxi , B9HdSMyi , B9HdSMzi , B9Heave , B9Pitch , B9RAxi , B9RAyi , &
+ B9RAzi , B9RdtFxi , B9RdtFyi , B9RdtFzi , B9RdtMxi , B9RdtMyi , B9RdtMzi , &
+ B9Roll , B9RVxi , B9RVyi , B9RVzi , B9Surge , B9Sway , B9TAxi , &
+ B9TAyi , B9TAzi , B9TVxi , B9TVyi , B9TVzi , B9WvsF1xi , B9WvsF1yi , &
+ B9WvsF1zi , B9WvsF2xi , B9WvsF2yi , B9WvsF2zi , B9WvsFxi , B9WvsFyi , B9WvsFzi , &
+ B9WvsM1xi , B9WvsM1yi , B9WvsM1zi , B9WvsM2xi , B9WvsM2yi , B9WvsM2zi , B9WvsMxi , &
+ B9WvsMyi , B9WvsMzi , B9Yaw , HydroFxi , HydroFyi , HydroFzi , HydroMxi , &
+ HydroMyi , HydroMzi , PRPHeave , PRPPitch , PRPRAxi , PRPRAyi , PRPRAzi , &
+ PRPRoll , PRPRVxi , PRPRVyi , PRPRVzi , PRPSurge , PRPSway , PRPTAxi , &
+ PRPTAyi , PRPTAzi , PRPTVxi , PRPTVyi , PRPTVzi , PRPYaw /)
+ INTEGER(IntKi), PARAMETER :: ParamIndxAry(6747) = (/ & ! This lists the index into AllOuts(:) of the allowed parameters ValidParamAry(:)
+ ParamIndxAry1, ParamIndxAry2, ParamIndxAry3, ParamIndxAry4/)
+
+ CHARACTER(ChanLen), PARAMETER :: ParamUnitsAry1(1687) = (/ character(ChanLen) :: & ! This lists the units corresponding to the allowed parameters
+ "(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(N) ", &
+ "(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(m) ","(rad) ", &
+ "(rad/s^2)","(rad/s^2)","(rad/s^2)","(N) ","(N) ","(N) ","(N-m) ", &
+ "(N-m) ","(N-m) ","(rad) ","(rad/s) ","(rad/s) ","(rad/s) ","(m) ", &
+ "(m) ","(m/s^2) ","(m/s^2) ","(m/s^2) ","(m/s) ","(m/s) ","(m/s) ", &
+ "(N) ","(N) ","(N) ","(N) ","(N) ","(N) ","(N) ", &
+ "(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ", &
+ "(N-m) ","(N-m) ","(N-m) ","(N-m) ","(rad) ","(N) ","(N) ", &
+ "(N) ","(N-m) ","(N-m) ","(N-m) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(N) ","(N) ","(N) ", &
+ "(N-m) ","(N-m) ","(N-m) ","(m) ","(rad) ","(rad/s^2)","(rad/s^2)", &
+ "(rad/s^2)","(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ", &
+ "(rad) ","(rad/s) ","(rad/s) ","(rad/s) ","(m) ","(m) ","(m/s^2) ", &
+ "(m/s^2) ","(m/s^2) ","(m/s) ","(m/s) ","(m/s) ","(N) ","(N) ", &
+ "(N) ","(N) ","(N) ","(N) ","(N) ","(N) ","(N) ", &
+ "(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ", &
+ "(N-m) ","(N-m) ","(rad) ","(N) ","(N) ","(N) ","(N-m) ", &
+ "(N-m) ","(N-m) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) "/)
+ CHARACTER(ChanLen), PARAMETER :: ParamUnitsAry2(1687) = (/ character(ChanLen) :: & ! This lists the units corresponding to the allowed parameters
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(N) ","(N) ","(N) ","(N-m) ","(N-m) ", &
+ "(N-m) ","(m) ","(rad) ","(rad/s^2)","(rad/s^2)","(rad/s^2)","(N) ", &
+ "(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(rad) ","(rad/s) ", &
+ "(rad/s) ","(rad/s) ","(m) ","(m) ","(m/s^2) ","(m/s^2) ","(m/s^2) ", &
+ "(m/s) ","(m/s) ","(m/s) ","(N) ","(N) ","(N) ","(N) ", &
+ "(N) ","(N) ","(N) ","(N) ","(N) ","(N-m) ","(N-m) ", &
+ "(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ", &
+ "(rad) ","(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(m) ", &
+ "(rad) ","(rad/s^2)","(rad/s^2)","(rad/s^2)","(N) ","(N) ","(N) ", &
+ "(N-m) ","(N-m) ","(N-m) ","(rad) ","(rad/s) ","(rad/s) ","(rad/s) ", &
+ "(m) ","(m) ","(m/s^2) ","(m/s^2) ","(m/s^2) ","(m/s) ","(m/s) ", &
+ "(m/s) ","(N) ","(N) ","(N) ","(N) ","(N) ","(N) ", &
+ "(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ", &
+ "(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(rad) ","(N) ", &
+ "(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) "/)
+ CHARACTER(ChanLen), PARAMETER :: ParamUnitsAry3(1687) = (/ character(ChanLen) :: & ! This lists the units corresponding to the allowed parameters
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(N) ","(N) ", &
+ "(N) ","(N-m) ","(N-m) ","(N-m) ","(m) ","(rad) ","(rad/s^2)", &
+ "(rad/s^2)","(rad/s^2)","(N) ","(N) ","(N) ","(N-m) ","(N-m) ", &
+ "(N-m) ","(rad) ","(rad/s) ","(rad/s) ","(rad/s) ","(m) ","(m) ", &
+ "(m/s^2) ","(m/s^2) ","(m/s^2) ","(m/s) ","(m/s) ","(m/s) ","(N) ", &
+ "(N) ","(N) ","(N) ","(N) ","(N) ","(N) ","(N) ", &
+ "(N) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ", &
+ "(N-m) ","(N-m) ","(N-m) ","(rad) ","(N) ","(N) ","(N) ", &
+ "(N-m) ","(N-m) ","(N-m) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(N) ","(N) ","(N) ","(N-m) ", &
+ "(N-m) ","(N-m) ","(m) ","(rad) ","(rad/s^2)","(rad/s^2)","(rad/s^2)", &
+ "(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(rad) ", &
+ "(rad/s) ","(rad/s) ","(rad/s) ","(m) ","(m) ","(m/s^2) ","(m/s^2) ", &
+ "(m/s^2) ","(m/s) ","(m/s) ","(m/s) ","(N) ","(N) ","(N) ", &
+ "(N) ","(N) ","(N) ","(N) ","(N) ","(N) ","(N-m) ", &
+ "(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ", &
+ "(N-m) ","(rad) ","(N) ","(N) ","(N) ","(N-m) ","(N-m) ", &
+ "(N-m) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) "/)
+ CHARACTER(ChanLen), PARAMETER :: ParamUnitsAry4(1686) = (/ character(ChanLen) :: & ! This lists the units corresponding to the allowed parameters
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ", &
+ "(m) ","(rad) ","(rad/s^2)","(rad/s^2)","(rad/s^2)","(N) ","(N) ", &
+ "(N) ","(N-m) ","(N-m) ","(N-m) ","(rad) ","(rad/s) ","(rad/s) ", &
+ "(rad/s) ","(m) ","(m) ","(m/s^2) ","(m/s^2) ","(m/s^2) ","(m/s) ", &
+ "(m/s) ","(m/s) ","(N) ","(N) ","(N) ","(N) ","(N) ", &
+ "(N) ","(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ", &
+ "(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(rad) ", &
+ "(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(N) ", &
+ "(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(m) ","(rad) ", &
+ "(rad/s^2)","(rad/s^2)","(rad/s^2)","(N) ","(N) ","(N) ","(N-m) ", &
+ "(N-m) ","(N-m) ","(rad) ","(rad/s) ","(rad/s) ","(rad/s) ","(m) ", &
+ "(m) ","(m/s^2) ","(m/s^2) ","(m/s^2) ","(m/s) ","(m/s) ","(m/s) ", &
+ "(N) ","(N) ","(N) ","(N) ","(N) ","(N) ","(N) ", &
+ "(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ", &
+ "(N-m) ","(N-m) ","(N-m) ","(N-m) ","(rad) ","(N) ","(N) ", &
+ "(N) ","(N-m) ","(N-m) ","(N-m) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(-) ","(-) ","(-) ", &
+ "(-) ","(-) ","(-) ","(-) ","(N) ","(N) ","(N) ", &
+ "(N-m) ","(N-m) ","(N-m) ","(m) ","(rad) ","(rad/s^2)","(rad/s^2)", &
+ "(rad/s^2)","(N) ","(N) ","(N) ","(N-m) ","(N-m) ","(N-m) ", &
+ "(rad) ","(rad/s) ","(rad/s) ","(rad/s) ","(m) ","(m) ","(m/s^2) ", &
+ "(m/s^2) ","(m/s^2) ","(m/s) ","(m/s) ","(m/s) ","(N) ","(N) ", &
+ "(N) ","(N) ","(N) ","(N) ","(N) ","(N) ","(N) ", &
+ "(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ","(N-m) ", &
+ "(N-m) ","(N-m) ","(rad) ","(N) ","(N) ","(N) ","(N-m) ", &
+ "(N-m) ","(N-m) ","(m) ","(rad) ","(rad/s^2)","(rad/s^2)","(rad/s^2)", &
+ "(rad) ","(rad/s) ","(rad/s) ","(rad/s) ","(m) ","(m) ","(m/s^2) ", &
"(m/s^2) ","(m/s^2) ","(m/s) ","(m/s) ","(m/s) ","(rad) "/)
+ CHARACTER(OutStrLenM1), PARAMETER :: ParamUnitsAry(6747) = (/ & ! This lists the units corresponding to the allowed parameters
+ ParamUnitsAry1, ParamUnitsAry2, ParamUnitsAry3, ParamUnitsAry4/)
! Initialize values
diff --git a/modules/hydrodyn/src/HydroDyn_Types.f90 b/modules/hydrodyn/src/HydroDyn_Types.f90
index a38c8bc6e1..ae9883e08d 100644
--- a/modules/hydrodyn/src/HydroDyn_Types.f90
+++ b/modules/hydrodyn/src/HydroDyn_Types.f90
@@ -59,6 +59,7 @@ MODULE HydroDyn_Types
INTEGER(IntKi) :: NBodyMod = 0_IntKi !< Body coupling model {1: include coupling terms between each body and NBody in HydroDyn equals NBODY in WAMIT, 2: neglect coupling terms between each body and NBODY=1 with XBODY=0 in WAMIT, 3: Neglect coupling terms between each body and NBODY=1 with XBODY=/0 in WAMIT} (switch) [only used when PotMod=1] [-]
REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: PtfmVol0 !< [-]
LOGICAL :: HasWAMIT = .false. !< .TRUE. if using WAMIT model, .FALSE. otherwise [-]
+ LOGICAL :: HasAddDOF = .false. !< .TRUE. if additional generalized DOF are present, .FALSE. otherwise [-]
REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: WAMITULEN !< [-]
REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: PtfmRefxt !< The xt offset of the body reference point(s) from (0,0,0) [1 to NBody; only used when PotMod=1; must be 0.0 if NBodyMod=2 ] [(m)]
REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: PtfmRefyt !< The yt offset of the body reference point(s) from (0,0,0) [1 to NBody; only used when PotMod=1; must be 0.0 if NBodyMod=2 ] [(m)]
@@ -66,6 +67,7 @@ MODULE HydroDyn_Types
REAL(R8Ki) , DIMENSION(:), ALLOCATABLE :: PtfmRefztRot !< The rotation about zt of the body reference frame(s) from xt/yt [radians]
REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: PtfmCOBxt !< [-]
REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: PtfmCOByt !< [-]
+ INTEGER(IntKi) , DIMENSION(:), ALLOCATABLE :: NAddDOF !< Number of additional generalized degrees of freedom [-]
TYPE(WAMIT_InitInputType) :: WAMIT !< Initialization data for WAMIT module [-]
TYPE(WAMIT2_InitInputType) :: WAMIT2 !< Initialization data for WAMIT2 module [-]
TYPE(Morison_InitInputType) :: Morison !< Initialization data for Morison module [-]
@@ -153,6 +155,10 @@ MODULE HydroDyn_Types
INTEGER(IntKi) :: PotMod = 0_IntKi !< 1 if using WAMIT model, 0 if no potential flow model, or 2 if FIT model [-]
INTEGER(IntKi) :: NBody = 0_IntKi !< [>=1; only used when PotMod=1. If NBodyMod=1, the WAMIT data contains a vector of size 6*NBody x 1 and matrices of size 6*NBody x 6*NBody; if NBodyMod>1, there are NBody sets of WAMIT data each with a vector of size 6 x 1 and matrices of size 6 x 6] [-]
INTEGER(IntKi) :: NBodyMod = 0_IntKi !< Body coupling model {1: include coupling terms between each body and NBody in HydroDyn equals NBODY in WAMIT, 2: neglect coupling terms between each body and NBODY=1 with XBODY=0 in WAMIT, 3: Neglect coupling terms between each body and NBODY=1 with XBODY=/0 in WAMIT} (switch) [only used when PotMod=1] [-]
+ LOGICAL :: HasAddDOF = .false. !< .TRUE. if additional generalized DOF are present, .FALSE. otherwise [-]
+ INTEGER(IntKi) , DIMENSION(:), ALLOCATABLE :: NAddDOF !< Number of additional generalized degrees of freedom [-]
+ INTEGER(IntKi) :: NDOF = 0_IntKi !< Total number of degrees of freedom [-]
+ INTEGER(IntKi) , DIMENSION(:), ALLOCATABLE :: BDOFStrt !< Starting DOF index for each body [-]
INTEGER(IntKi) :: totalStates = 0_IntKi !< Number of excitation and radiation states for all WAMIT bodies [-]
INTEGER(IntKi) :: totalExctnStates = 0_IntKi !< Number of excitation states for all WAMIT bodies [-]
INTEGER(IntKi) :: totalRdtnStates = 0_IntKi !< Number of radiation states for all WAMIT bodies [-]
@@ -185,6 +191,9 @@ MODULE HydroDyn_Types
TYPE(Morison_InputType) :: Morison !< Morison module inputs [-]
TYPE(MeshType) :: WAMITMesh !< Motions at the WAMIT reference point(s) in the inertial frame [-]
TYPE(MeshType) :: PRPMesh !< Motions at the Platform reference point in the inertial frame [-]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: qAddDOF !< Displacement of potential-flow generalized DOF [-]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: qAddDOFDot !< Velocity of potential-flow generalized DOF [-]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: qAddDOFDotDot !< Acceleration of potential-flow generalized DOF [-]
END TYPE HydroDyn_InputType
! =======================
! ========= HydroDyn_OutputType =======
@@ -194,6 +203,7 @@ MODULE HydroDyn_Types
TYPE(Morison_OutputType) :: Morison !< Morison module outputs [-]
TYPE(MeshType) :: WAMITMesh !< Point Loads at the WAMIT reference point(s) in the inertial frame [-]
REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: WriteOutput !< Outputs to be written to the output file(s) [-]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: FAddDOF !< Additional generalized DOF forcing [-]
END TYPE HydroDyn_OutputType
! =======================
! ========= HydroDyn_MiscVarType =======
@@ -224,13 +234,18 @@ MODULE HydroDyn_Types
integer(IntKi), public, parameter :: HydroDyn_u_Morison_PtfmRefY = 6 ! HydroDyn%Morison%PtfmRefY
integer(IntKi), public, parameter :: HydroDyn_u_WAMITMesh = 7 ! HydroDyn%WAMITMesh
integer(IntKi), public, parameter :: HydroDyn_u_PRPMesh = 8 ! HydroDyn%PRPMesh
- integer(IntKi), public, parameter :: HydroDyn_y_WAMIT_Mesh = 9 ! HydroDyn%WAMIT(DL%i1)%Mesh
- integer(IntKi), public, parameter :: HydroDyn_y_WAMIT2_Mesh = 10 ! HydroDyn%WAMIT2(DL%i1)%Mesh
- integer(IntKi), public, parameter :: HydroDyn_y_Morison_Mesh = 11 ! HydroDyn%Morison%Mesh
- integer(IntKi), public, parameter :: HydroDyn_y_Morison_VisMesh = 12 ! HydroDyn%Morison%VisMesh
- integer(IntKi), public, parameter :: HydroDyn_y_Morison_WriteOutput = 13 ! HydroDyn%Morison%WriteOutput
- integer(IntKi), public, parameter :: HydroDyn_y_WAMITMesh = 14 ! HydroDyn%WAMITMesh
- integer(IntKi), public, parameter :: HydroDyn_y_WriteOutput = 15 ! HydroDyn%WriteOutput
+ integer(IntKi), public, parameter :: HydroDyn_u_qAddDOF = 9 ! HydroDyn%qAddDOF
+ integer(IntKi), public, parameter :: HydroDyn_u_qAddDOFDot = 10 ! HydroDyn%qAddDOFDot
+ integer(IntKi), public, parameter :: HydroDyn_u_qAddDOFDotDot = 11 ! HydroDyn%qAddDOFDotDot
+ integer(IntKi), public, parameter :: HydroDyn_y_WAMIT_Mesh = 12 ! HydroDyn%WAMIT(DL%i1)%Mesh
+ integer(IntKi), public, parameter :: HydroDyn_y_WAMIT_FAddDOF = 13 ! HydroDyn%WAMIT(DL%i1)%FAddDOF
+ integer(IntKi), public, parameter :: HydroDyn_y_WAMIT2_Mesh = 14 ! HydroDyn%WAMIT2(DL%i1)%Mesh
+ integer(IntKi), public, parameter :: HydroDyn_y_Morison_Mesh = 15 ! HydroDyn%Morison%Mesh
+ integer(IntKi), public, parameter :: HydroDyn_y_Morison_VisMesh = 16 ! HydroDyn%Morison%VisMesh
+ integer(IntKi), public, parameter :: HydroDyn_y_Morison_WriteOutput = 17 ! HydroDyn%Morison%WriteOutput
+ integer(IntKi), public, parameter :: HydroDyn_y_WAMITMesh = 18 ! HydroDyn%WAMITMesh
+ integer(IntKi), public, parameter :: HydroDyn_y_WriteOutput = 19 ! HydroDyn%WriteOutput
+ integer(IntKi), public, parameter :: HydroDyn_y_FAddDOF = 20 ! HydroDyn%FAddDOF
contains
@@ -324,6 +339,7 @@ subroutine HydroDyn_CopyInputFile(SrcInputFileData, DstInputFileData, CtrlCode,
DstInputFileData%PtfmVol0 = SrcInputFileData%PtfmVol0
end if
DstInputFileData%HasWAMIT = SrcInputFileData%HasWAMIT
+ DstInputFileData%HasAddDOF = SrcInputFileData%HasAddDOF
if (allocated(SrcInputFileData%WAMITULEN)) then
LB(1:1) = lbound(SrcInputFileData%WAMITULEN)
UB(1:1) = ubound(SrcInputFileData%WAMITULEN)
@@ -408,6 +424,18 @@ subroutine HydroDyn_CopyInputFile(SrcInputFileData, DstInputFileData, CtrlCode,
end if
DstInputFileData%PtfmCOByt = SrcInputFileData%PtfmCOByt
end if
+ if (allocated(SrcInputFileData%NAddDOF)) then
+ LB(1:1) = lbound(SrcInputFileData%NAddDOF)
+ UB(1:1) = ubound(SrcInputFileData%NAddDOF)
+ if (.not. allocated(DstInputFileData%NAddDOF)) then
+ allocate(DstInputFileData%NAddDOF(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstInputFileData%NAddDOF.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstInputFileData%NAddDOF = SrcInputFileData%NAddDOF
+ end if
call WAMIT_CopyInitInput(SrcInputFileData%WAMIT, DstInputFileData%WAMIT, CtrlCode, ErrStat2, ErrMsg2)
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
if (ErrStat >= AbortErrLev) return
@@ -504,6 +532,9 @@ subroutine HydroDyn_DestroyInputFile(InputFileData, ErrStat, ErrMsg)
if (allocated(InputFileData%PtfmCOByt)) then
deallocate(InputFileData%PtfmCOByt)
end if
+ if (allocated(InputFileData%NAddDOF)) then
+ deallocate(InputFileData%NAddDOF)
+ end if
call WAMIT_DestroyInitInput(InputFileData%WAMIT, ErrStat2, ErrMsg2)
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
call WAMIT2_DestroyInitInput(InputFileData%WAMIT2, ErrStat2, ErrMsg2)
@@ -535,6 +566,7 @@ subroutine HydroDyn_PackInputFile(RF, Indata)
call RegPack(RF, InData%NBodyMod)
call RegPackAlloc(RF, InData%PtfmVol0)
call RegPack(RF, InData%HasWAMIT)
+ call RegPack(RF, InData%HasAddDOF)
call RegPackAlloc(RF, InData%WAMITULEN)
call RegPackAlloc(RF, InData%PtfmRefxt)
call RegPackAlloc(RF, InData%PtfmRefyt)
@@ -542,6 +574,7 @@ subroutine HydroDyn_PackInputFile(RF, Indata)
call RegPackAlloc(RF, InData%PtfmRefztRot)
call RegPackAlloc(RF, InData%PtfmCOBxt)
call RegPackAlloc(RF, InData%PtfmCOByt)
+ call RegPackAlloc(RF, InData%NAddDOF)
call WAMIT_PackInitInput(RF, InData%WAMIT)
call WAMIT2_PackInitInput(RF, InData%WAMIT2)
call Morison_PackInitInput(RF, InData%Morison)
@@ -583,6 +616,7 @@ subroutine HydroDyn_UnPackInputFile(RF, OutData)
call RegUnpack(RF, OutData%NBodyMod); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%PtfmVol0); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%HasWAMIT); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%HasAddDOF); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%WAMITULEN); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%PtfmRefxt); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%PtfmRefyt); if (RegCheckErr(RF, RoutineName)) return
@@ -590,6 +624,7 @@ subroutine HydroDyn_UnPackInputFile(RF, OutData)
call RegUnpackAlloc(RF, OutData%PtfmRefztRot); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%PtfmCOBxt); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%PtfmCOByt); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%NAddDOF); if (RegCheckErr(RF, RoutineName)) return
call WAMIT_UnpackInitInput(RF, OutData%WAMIT) ! WAMIT
call WAMIT2_UnpackInitInput(RF, OutData%WAMIT2) ! WAMIT2
call Morison_UnpackInitInput(RF, OutData%Morison) ! Morison
@@ -1308,6 +1343,32 @@ subroutine HydroDyn_CopyParam(SrcParamData, DstParamData, CtrlCode, ErrStat, Err
DstParamData%PotMod = SrcParamData%PotMod
DstParamData%NBody = SrcParamData%NBody
DstParamData%NBodyMod = SrcParamData%NBodyMod
+ DstParamData%HasAddDOF = SrcParamData%HasAddDOF
+ if (allocated(SrcParamData%NAddDOF)) then
+ LB(1:1) = lbound(SrcParamData%NAddDOF)
+ UB(1:1) = ubound(SrcParamData%NAddDOF)
+ if (.not. allocated(DstParamData%NAddDOF)) then
+ allocate(DstParamData%NAddDOF(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%NAddDOF.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstParamData%NAddDOF = SrcParamData%NAddDOF
+ end if
+ DstParamData%NDOF = SrcParamData%NDOF
+ if (allocated(SrcParamData%BDOFStrt)) then
+ LB(1:1) = lbound(SrcParamData%BDOFStrt)
+ UB(1:1) = ubound(SrcParamData%BDOFStrt)
+ if (.not. allocated(DstParamData%BDOFStrt)) then
+ allocate(DstParamData%BDOFStrt(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%BDOFStrt.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstParamData%BDOFStrt = SrcParamData%BDOFStrt
+ end if
DstParamData%totalStates = SrcParamData%totalStates
DstParamData%totalExctnStates = SrcParamData%totalExctnStates
DstParamData%totalRdtnStates = SrcParamData%totalRdtnStates
@@ -1458,6 +1519,12 @@ subroutine HydroDyn_DestroyParam(ParamData, ErrStat, ErrMsg)
end if
call Morison_DestroyParam(ParamData%Morison, ErrStat2, ErrMsg2)
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ if (allocated(ParamData%NAddDOF)) then
+ deallocate(ParamData%NAddDOF)
+ end if
+ if (allocated(ParamData%BDOFStrt)) then
+ deallocate(ParamData%BDOFStrt)
+ end if
if (allocated(ParamData%AddF0)) then
deallocate(ParamData%AddF0)
end if
@@ -1524,6 +1591,10 @@ subroutine HydroDyn_PackParam(RF, Indata)
call RegPack(RF, InData%PotMod)
call RegPack(RF, InData%NBody)
call RegPack(RF, InData%NBodyMod)
+ call RegPack(RF, InData%HasAddDOF)
+ call RegPackAlloc(RF, InData%NAddDOF)
+ call RegPack(RF, InData%NDOF)
+ call RegPackAlloc(RF, InData%BDOFStrt)
call RegPack(RF, InData%totalStates)
call RegPack(RF, InData%totalExctnStates)
call RegPack(RF, InData%totalRdtnStates)
@@ -1610,6 +1681,10 @@ subroutine HydroDyn_UnPackParam(RF, OutData)
call RegUnpack(RF, OutData%PotMod); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%NBody); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%NBodyMod); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%HasAddDOF); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%NAddDOF); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%NDOF); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%BDOFStrt); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%totalStates); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%totalExctnStates); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%totalRdtnStates); if (RegCheckErr(RF, RoutineName)) return
@@ -1672,6 +1747,7 @@ subroutine HydroDyn_CopyInput(SrcInputData, DstInputData, CtrlCode, ErrStat, Err
integer(IntKi), intent(in ) :: CtrlCode
integer(IntKi), intent( out) :: ErrStat
character(*), intent( out) :: ErrMsg
+ integer(B4Ki) :: LB(1), UB(1)
integer(IntKi) :: ErrStat2
character(ErrMsgLen) :: ErrMsg2
character(*), parameter :: RoutineName = 'HydroDyn_CopyInput'
@@ -1686,6 +1762,42 @@ subroutine HydroDyn_CopyInput(SrcInputData, DstInputData, CtrlCode, ErrStat, Err
call MeshCopy(SrcInputData%PRPMesh, DstInputData%PRPMesh, CtrlCode, ErrStat2, ErrMsg2 )
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
if (ErrStat >= AbortErrLev) return
+ if (allocated(SrcInputData%qAddDOF)) then
+ LB(1:1) = lbound(SrcInputData%qAddDOF)
+ UB(1:1) = ubound(SrcInputData%qAddDOF)
+ if (.not. allocated(DstInputData%qAddDOF)) then
+ allocate(DstInputData%qAddDOF(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstInputData%qAddDOF.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstInputData%qAddDOF = SrcInputData%qAddDOF
+ end if
+ if (allocated(SrcInputData%qAddDOFDot)) then
+ LB(1:1) = lbound(SrcInputData%qAddDOFDot)
+ UB(1:1) = ubound(SrcInputData%qAddDOFDot)
+ if (.not. allocated(DstInputData%qAddDOFDot)) then
+ allocate(DstInputData%qAddDOFDot(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstInputData%qAddDOFDot.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstInputData%qAddDOFDot = SrcInputData%qAddDOFDot
+ end if
+ if (allocated(SrcInputData%qAddDOFDotDot)) then
+ LB(1:1) = lbound(SrcInputData%qAddDOFDotDot)
+ UB(1:1) = ubound(SrcInputData%qAddDOFDotDot)
+ if (.not. allocated(DstInputData%qAddDOFDotDot)) then
+ allocate(DstInputData%qAddDOFDotDot(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstInputData%qAddDOFDotDot.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstInputData%qAddDOFDotDot = SrcInputData%qAddDOFDotDot
+ end if
end subroutine
subroutine HydroDyn_DestroyInput(InputData, ErrStat, ErrMsg)
@@ -1703,6 +1815,15 @@ subroutine HydroDyn_DestroyInput(InputData, ErrStat, ErrMsg)
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
call MeshDestroy( InputData%PRPMesh, ErrStat2, ErrMsg2)
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ if (allocated(InputData%qAddDOF)) then
+ deallocate(InputData%qAddDOF)
+ end if
+ if (allocated(InputData%qAddDOFDot)) then
+ deallocate(InputData%qAddDOFDot)
+ end if
+ if (allocated(InputData%qAddDOFDotDot)) then
+ deallocate(InputData%qAddDOFDotDot)
+ end if
end subroutine
subroutine HydroDyn_PackInput(RF, Indata)
@@ -1713,6 +1834,9 @@ subroutine HydroDyn_PackInput(RF, Indata)
call Morison_PackInput(RF, InData%Morison)
call MeshPack(RF, InData%WAMITMesh)
call MeshPack(RF, InData%PRPMesh)
+ call RegPackAlloc(RF, InData%qAddDOF)
+ call RegPackAlloc(RF, InData%qAddDOFDot)
+ call RegPackAlloc(RF, InData%qAddDOFDotDot)
if (RegCheckErr(RF, RoutineName)) return
end subroutine
@@ -1720,10 +1844,16 @@ subroutine HydroDyn_UnPackInput(RF, OutData)
type(RegFile), intent(inout) :: RF
type(HydroDyn_InputType), intent(inout) :: OutData
character(*), parameter :: RoutineName = 'HydroDyn_UnPackInput'
+ integer(B4Ki) :: LB(1), UB(1)
+ integer(IntKi) :: stat
+ logical :: IsAllocAssoc
if (RF%ErrStat /= ErrID_None) return
call Morison_UnpackInput(RF, OutData%Morison) ! Morison
call MeshUnpack(RF, OutData%WAMITMesh) ! WAMITMesh
call MeshUnpack(RF, OutData%PRPMesh) ! PRPMesh
+ call RegUnpackAlloc(RF, OutData%qAddDOF); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%qAddDOFDot); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%qAddDOFDotDot); if (RegCheckErr(RF, RoutineName)) return
end subroutine
subroutine HydroDyn_CopyOutput(SrcOutputData, DstOutputData, CtrlCode, ErrStat, ErrMsg)
@@ -1789,6 +1919,18 @@ subroutine HydroDyn_CopyOutput(SrcOutputData, DstOutputData, CtrlCode, ErrStat,
end if
DstOutputData%WriteOutput = SrcOutputData%WriteOutput
end if
+ if (allocated(SrcOutputData%FAddDOF)) then
+ LB(1:1) = lbound(SrcOutputData%FAddDOF)
+ UB(1:1) = ubound(SrcOutputData%FAddDOF)
+ if (.not. allocated(DstOutputData%FAddDOF)) then
+ allocate(DstOutputData%FAddDOF(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstOutputData%FAddDOF.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstOutputData%FAddDOF = SrcOutputData%FAddDOF
+ end if
end subroutine
subroutine HydroDyn_DestroyOutput(OutputData, ErrStat, ErrMsg)
@@ -1827,6 +1969,9 @@ subroutine HydroDyn_DestroyOutput(OutputData, ErrStat, ErrMsg)
if (allocated(OutputData%WriteOutput)) then
deallocate(OutputData%WriteOutput)
end if
+ if (allocated(OutputData%FAddDOF)) then
+ deallocate(OutputData%FAddDOF)
+ end if
end subroutine
subroutine HydroDyn_PackOutput(RF, Indata)
@@ -1857,6 +2002,7 @@ subroutine HydroDyn_PackOutput(RF, Indata)
call Morison_PackOutput(RF, InData%Morison)
call MeshPack(RF, InData%WAMITMesh)
call RegPackAlloc(RF, InData%WriteOutput)
+ call RegPackAlloc(RF, InData%FAddDOF)
if (RegCheckErr(RF, RoutineName)) return
end subroutine
@@ -1898,6 +2044,7 @@ subroutine HydroDyn_UnPackOutput(RF, OutData)
call Morison_UnpackOutput(RF, OutData%Morison) ! Morison
call MeshUnpack(RF, OutData%WAMITMesh) ! WAMITMesh
call RegUnpackAlloc(RF, OutData%WriteOutput); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%FAddDOF); if (RegCheckErr(RF, RoutineName)) return
end subroutine
subroutine HydroDyn_CopyMisc(SrcMiscData, DstMiscData, CtrlCode, ErrStat, ErrMsg)
@@ -2267,6 +2414,8 @@ SUBROUTINE HydroDyn_Input_ExtrapInterp1(u1, u2, tin, u_out, tin_out, ErrStat, Er
REAL(DbKi) :: a1, a2 ! temporary for extrapolation/interpolation
INTEGER(IntKi) :: ErrStat2 ! local errors
CHARACTER(ErrMsgLen) :: ErrMsg2 ! local errors
+ INTEGER :: i01 ! dim1 level 0 counter variable for arrays of ddts
+ INTEGER :: i1 ! dim1 counter variable for arrays
! Initialize ErrStat
ErrStat = ErrID_None
ErrMsg = ''
@@ -2290,6 +2439,15 @@ SUBROUTINE HydroDyn_Input_ExtrapInterp1(u1, u2, tin, u_out, tin_out, ErrStat, Er
CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
CALL MeshExtrapInterp1(u1%PRPMesh, u2%PRPMesh, tin, u_out%PRPMesh, tin_out, ErrStat2, ErrMsg2)
CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
+ IF (ALLOCATED(u_out%qAddDOF) .AND. ALLOCATED(u1%qAddDOF)) THEN
+ u_out%qAddDOF = a1*u1%qAddDOF + a2*u2%qAddDOF
+ END IF ! check if allocated
+ IF (ALLOCATED(u_out%qAddDOFDot) .AND. ALLOCATED(u1%qAddDOFDot)) THEN
+ u_out%qAddDOFDot = a1*u1%qAddDOFDot + a2*u2%qAddDOFDot
+ END IF ! check if allocated
+ IF (ALLOCATED(u_out%qAddDOFDotDot) .AND. ALLOCATED(u1%qAddDOFDotDot)) THEN
+ u_out%qAddDOFDotDot = a1*u1%qAddDOFDotDot + a2*u2%qAddDOFDotDot
+ END IF ! check if allocated
END SUBROUTINE
SUBROUTINE HydroDyn_Input_ExtrapInterp2(u1, u2, u3, tin, u_out, tin_out, ErrStat, ErrMsg )
@@ -2322,6 +2480,8 @@ SUBROUTINE HydroDyn_Input_ExtrapInterp2(u1, u2, u3, tin, u_out, tin_out, ErrStat
INTEGER(IntKi) :: ErrStat2 ! local errors
CHARACTER(ErrMsgLen) :: ErrMsg2 ! local errors
CHARACTER(*), PARAMETER :: RoutineName = 'HydroDyn_Input_ExtrapInterp2'
+ INTEGER :: i01 ! dim1 level 0 counter variable for arrays of ddts
+ INTEGER :: i1 ! dim1 counter variable for arrays
! Initialize ErrStat
ErrStat = ErrID_None
ErrMsg = ''
@@ -2351,6 +2511,15 @@ SUBROUTINE HydroDyn_Input_ExtrapInterp2(u1, u2, u3, tin, u_out, tin_out, ErrStat
CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
CALL MeshExtrapInterp2(u1%PRPMesh, u2%PRPMesh, u3%PRPMesh, tin, u_out%PRPMesh, tin_out, ErrStat2, ErrMsg2)
CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
+ IF (ALLOCATED(u_out%qAddDOF) .AND. ALLOCATED(u1%qAddDOF)) THEN
+ u_out%qAddDOF = a1*u1%qAddDOF + a2*u2%qAddDOF + a3*u3%qAddDOF
+ END IF ! check if allocated
+ IF (ALLOCATED(u_out%qAddDOFDot) .AND. ALLOCATED(u1%qAddDOFDot)) THEN
+ u_out%qAddDOFDot = a1*u1%qAddDOFDot + a2*u2%qAddDOFDot + a3*u3%qAddDOFDot
+ END IF ! check if allocated
+ IF (ALLOCATED(u_out%qAddDOFDotDot) .AND. ALLOCATED(u1%qAddDOFDotDot)) THEN
+ u_out%qAddDOFDotDot = a1*u1%qAddDOFDotDot + a2*u2%qAddDOFDotDot + a3*u3%qAddDOFDotDot
+ END IF ! check if allocated
END SUBROUTINE
subroutine HydroDyn_Output_ExtrapInterp(y, t, y_out, t_out, ErrStat, ErrMsg)
@@ -2469,6 +2638,9 @@ SUBROUTINE HydroDyn_Output_ExtrapInterp1(y1, y2, tin, y_out, tin_out, ErrStat, E
IF (ALLOCATED(y_out%WriteOutput) .AND. ALLOCATED(y1%WriteOutput)) THEN
y_out%WriteOutput = a1*y1%WriteOutput + a2*y2%WriteOutput
END IF ! check if allocated
+ IF (ALLOCATED(y_out%FAddDOF) .AND. ALLOCATED(y1%FAddDOF)) THEN
+ y_out%FAddDOF = a1*y1%FAddDOF + a2*y2%FAddDOF
+ END IF ! check if allocated
END SUBROUTINE
SUBROUTINE HydroDyn_Output_ExtrapInterp2(y1, y2, y3, tin, y_out, tin_out, ErrStat, ErrMsg )
@@ -2545,6 +2717,9 @@ SUBROUTINE HydroDyn_Output_ExtrapInterp2(y1, y2, y3, tin, y_out, tin_out, ErrSta
IF (ALLOCATED(y_out%WriteOutput) .AND. ALLOCATED(y1%WriteOutput)) THEN
y_out%WriteOutput = a1*y1%WriteOutput + a2*y2%WriteOutput + a3*y3%WriteOutput
END IF ! check if allocated
+ IF (ALLOCATED(y_out%FAddDOF) .AND. ALLOCATED(y1%FAddDOF)) THEN
+ y_out%FAddDOF = a1*y1%FAddDOF + a2*y2%FAddDOF + a3*y3%FAddDOF
+ END IF ! check if allocated
END SUBROUTINE
function HydroDyn_InputMeshPointer(u, DL) result(Mesh)
@@ -2710,6 +2885,12 @@ subroutine HydroDyn_VarPackInput(V, u, ValAry)
call MV_PackMesh(V, u%WAMITMesh, ValAry) ! Mesh
case (HydroDyn_u_PRPMesh)
call MV_PackMesh(V, u%PRPMesh, ValAry) ! Mesh
+ case (HydroDyn_u_qAddDOF)
+ VarVals = u%qAddDOF(V%iLB:V%iUB) ! Rank 1 Array
+ case (HydroDyn_u_qAddDOFDot)
+ VarVals = u%qAddDOFDot(V%iLB:V%iUB) ! Rank 1 Array
+ case (HydroDyn_u_qAddDOFDotDot)
+ VarVals = u%qAddDOFDotDot(V%iLB:V%iUB) ! Rank 1 Array
case default
VarVals = 0.0_R8Ki
end select
@@ -2740,6 +2921,12 @@ subroutine HydroDyn_VarUnpackInput(V, ValAry, u)
call MV_UnpackMesh(V, ValAry, u%WAMITMesh) ! Mesh
case (HydroDyn_u_PRPMesh)
call MV_UnpackMesh(V, ValAry, u%PRPMesh) ! Mesh
+ case (HydroDyn_u_qAddDOF)
+ u%qAddDOF(V%iLB:V%iUB) = VarVals ! Rank 1 Array
+ case (HydroDyn_u_qAddDOFDot)
+ u%qAddDOFDot(V%iLB:V%iUB) = VarVals ! Rank 1 Array
+ case (HydroDyn_u_qAddDOFDotDot)
+ u%qAddDOFDotDot(V%iLB:V%iUB) = VarVals ! Rank 1 Array
end select
end associate
end subroutine
@@ -2756,6 +2943,12 @@ function HydroDyn_InputFieldName(DL) result(Name)
Name = "u%WAMITMesh"
case (HydroDyn_u_PRPMesh)
Name = "u%PRPMesh"
+ case (HydroDyn_u_qAddDOF)
+ Name = "u%qAddDOF"
+ case (HydroDyn_u_qAddDOFDot)
+ Name = "u%qAddDOFDot"
+ case (HydroDyn_u_qAddDOFDotDot)
+ Name = "u%qAddDOFDotDot"
case default
Name = "Unknown Field"
end select
@@ -2779,6 +2972,8 @@ subroutine HydroDyn_VarPackOutput(V, y, ValAry)
select case (DL%Num)
case (HydroDyn_y_WAMIT_Mesh)
call MV_PackMesh(V, y%WAMIT(DL%i1)%Mesh, ValAry) ! Mesh
+ case (HydroDyn_y_WAMIT_FAddDOF)
+ VarVals = y%WAMIT(DL%i1)%FAddDOF(V%iLB:V%iUB) ! Rank 1 Array
case (HydroDyn_y_WAMIT2_Mesh)
call MV_PackMesh(V, y%WAMIT2(DL%i1)%Mesh, ValAry) ! Mesh
case (HydroDyn_y_Morison_Mesh)
@@ -2791,6 +2986,8 @@ subroutine HydroDyn_VarPackOutput(V, y, ValAry)
call MV_PackMesh(V, y%WAMITMesh, ValAry) ! Mesh
case (HydroDyn_y_WriteOutput)
VarVals = y%WriteOutput(V%iLB:V%iUB) ! Rank 1 Array
+ case (HydroDyn_y_FAddDOF)
+ VarVals = y%FAddDOF(V%iLB:V%iUB) ! Rank 1 Array
case default
VarVals = 0.0_R8Ki
end select
@@ -2815,6 +3012,8 @@ subroutine HydroDyn_VarUnpackOutput(V, ValAry, y)
select case (DL%Num)
case (HydroDyn_y_WAMIT_Mesh)
call MV_UnpackMesh(V, ValAry, y%WAMIT(DL%i1)%Mesh) ! Mesh
+ case (HydroDyn_y_WAMIT_FAddDOF)
+ y%WAMIT(DL%i1)%FAddDOF(V%iLB:V%iUB) = VarVals ! Rank 1 Array
case (HydroDyn_y_WAMIT2_Mesh)
call MV_UnpackMesh(V, ValAry, y%WAMIT2(DL%i1)%Mesh) ! Mesh
case (HydroDyn_y_Morison_Mesh)
@@ -2827,6 +3026,8 @@ subroutine HydroDyn_VarUnpackOutput(V, ValAry, y)
call MV_UnpackMesh(V, ValAry, y%WAMITMesh) ! Mesh
case (HydroDyn_y_WriteOutput)
y%WriteOutput(V%iLB:V%iUB) = VarVals ! Rank 1 Array
+ case (HydroDyn_y_FAddDOF)
+ y%FAddDOF(V%iLB:V%iUB) = VarVals ! Rank 1 Array
end select
end associate
end subroutine
@@ -2837,6 +3038,8 @@ function HydroDyn_OutputFieldName(DL) result(Name)
select case (DL%Num)
case (HydroDyn_y_WAMIT_Mesh)
Name = "y%WAMIT("//trim(Num2LStr(DL%i1))//")%Mesh"
+ case (HydroDyn_y_WAMIT_FAddDOF)
+ Name = "y%WAMIT("//trim(Num2LStr(DL%i1))//")%FAddDOF"
case (HydroDyn_y_WAMIT2_Mesh)
Name = "y%WAMIT2("//trim(Num2LStr(DL%i1))//")%Mesh"
case (HydroDyn_y_Morison_Mesh)
@@ -2849,6 +3052,8 @@ function HydroDyn_OutputFieldName(DL) result(Name)
Name = "y%WAMITMesh"
case (HydroDyn_y_WriteOutput)
Name = "y%WriteOutput"
+ case (HydroDyn_y_FAddDOF)
+ Name = "y%FAddDOF"
case default
Name = "Unknown Field"
end select
diff --git a/modules/hydrodyn/src/WAMIT.f90 b/modules/hydrodyn/src/WAMIT.f90
index 5194aae156..606bef5713 100644
--- a/modules/hydrodyn/src/WAMIT.f90
+++ b/modules/hydrodyn/src/WAMIT.f90
@@ -62,39 +62,61 @@ MODULE WAMIT
!----------------------------------------------------------------------------------------------------------------------------------
!> This routine transforms WAMIT input file data from a local (heading-angle, based) coordinate system to the global system.
- subroutine TransformWAMITMatrices( NBody, RotZ, M )
+ subroutine TransformWAMITMatrices( p, RotZ, M )
!..................................................................................................................................
- integer(IntKi), intent( in ) :: NBody ! Number of WAMIT bodies in this WAMIT object ( = 1 if NBodyMod > 1)
- real(R8Ki), intent( in ) :: RotZ(:) ! NBody heading angles (radians)
- real(SiKi), intent( inout ) :: M(:,:) ! Matrix data to be transformed, if NBodyMOD = 1 and NBody > 1 then we will be transforming the individual sub 6x6 matrices
+
+ TYPE(WAMIT_ParameterType), intent(in ) :: p ! Parameters
+ real(R8Ki), intent(in ) :: RotZ(:) ! NBody heading angles (radians)
+ real(SiKi), intent(inout) :: M(:,:) ! Matrix data to be transformed, if NBodyMOD = 1 and NBody > 1 then we will be transforming the individual sub (6+NAddDOF)x(6+NAddDOF) matrices
integer(IntKi) :: i,j,ii,jj,iSub,jSub
- real(R8Ki) :: Rj(3,3)
- real(R8Ki) :: Ri(3,3)
+ real(R8Ki) :: Rj(6,6)
+ real(R8Ki) :: Ri(6,6)
- do j = 1, NBody
- Rj(1,:) = (/ cos(RotZ(j)), sin(RotZ(j)), 0.0_R8Ki/)
- Rj(2,:) = (/-sin(RotZ(j)), cos(RotZ(j)), 0.0_R8Ki/)
- Rj(3,:) = (/ 0.0_R8Ki , 0.0_R8Ki , 1.0_R8Ki/)
- do i = 1, NBody
+ do j = 1, p%NBody
+
+ jSub = p%BDOFStrt(j)
+
+ Rj(1,:) = [ cos(RotZ(j)), sin(RotZ(j)), 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki]
+ Rj(2,:) = [-sin(RotZ(j)), cos(RotZ(j)), 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki]
+ Rj(3,:) = [ 0.0_R8Ki, 0.0_R8Ki, 1.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki]
+ Rj(4,:) = [ 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki, cos(RotZ(j)), sin(RotZ(j)), 0.0_R8Ki]
+ Rj(5,:) = [ 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki,-sin(RotZ(j)), cos(RotZ(j)), 0.0_R8Ki]
+ Rj(6,:) = [ 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki, 1.0_R8Ki]
+
+ do i = 1, p%NBody
+
if ( (.not. EqualRealNos(RotZ(i), 0.0_R8Ki)) .or. (.not. EqualRealNos(RotZ(j), 0.0_R8Ki)) ) then
- Ri(1,:) = (/ cos(RotZ(i)), sin(RotZ(i)), 0.0_R8Ki/)
- Ri(2,:) = (/-sin(RotZ(i)), cos(RotZ(i)), 0.0_R8Ki/)
- Ri(3,:) = (/ 0.0_R8Ki , 0.0_R8Ki , 1.0_R8Ki/)
- do jj = 1,2
- jSub = (j-1)*6 + (jj-1)*3 + 1
- do ii = 1,2
- iSub = (i-1)*6 + (ii-1)*3 + 1
- M(iSub:iSub+2,jSub:jSub+2) = matmul( transpose(Ri), matmul( M(iSub:iSub+2,jSub:jSub+2), Rj ) )
- end do
- end do
+
+ iSub = p%BDOFStrt(i)
+
+ Ri(1,:) = [ cos(RotZ(i)), sin(RotZ(i)), 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki]
+ Ri(2,:) = [-sin(RotZ(i)), cos(RotZ(i)), 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki]
+ Ri(3,:) = [ 0.0_R8Ki, 0.0_R8Ki, 1.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki]
+ Ri(4,:) = [ 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki, cos(RotZ(i)), sin(RotZ(i)), 0.0_R8Ki]
+ Ri(5,:) = [ 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki,-sin(RotZ(i)), cos(RotZ(i)), 0.0_R8Ki]
+ Ri(6,:) = [ 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki, 0.0_R8Ki, 1.0_R8Ki]
+
+ ! Rigid-body to rigid-body modes
+ M(iSub:iSub+5,jSub:jSub+5) = matmul( transpose(Ri), matmul( M(iSub:iSub+5,jSub:jSub+5), Rj ) )
+ ! Rigid-body to generalized modes
+ if ( p%NAddDOF(i) > 0_IntKi ) then
+ M(iSub+6:iSub+5+p%NAddDOF(i),jSub:jSub+5) = matmul( M(iSub+6:iSub+5+p%NAddDOF(i),jSub:jSub+5), Rj )
+ end if
+ ! Generalized to rigid-body modes
+ if ( p%NAddDOF(j) > 0_IntKi ) then
+ M(iSub:iSub+5,jSub+6:jSub+5+p%NAddDOF(j)) = matmul( transpose(Ri), M(iSub:iSub+5,jSub+6:jSub+5+p%NAddDOF(j)) )
+ end if
+ ! No transformation needed for generalized to generalized modes
+
end if
+
end do
end do
+
end subroutine TransformWAMITMatrices
-
!----------------------------------------------------------------------------------------------------------------------------------
!> This routine is called at the start of the simulation to perform initialization steps.
!! The parameters are set here and not changed during the simulation.
@@ -141,6 +163,7 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
COMPLEX(SiKi), ALLOCATABLE :: WaveExctnC(:,:,:) ! Discrete Fourier transform of the instantaneous value of the total excitation force on the support platfrom from incident waves (N, N-m)
COMPLEX(SiKi), ALLOCATABLE :: WaveExctnCGrid(:,:,:,:) ! Discrete Fourier transform of the instantaneous value of the total excitation force on the grid points from incident waves (N, N-m)
REAL(ReKi) :: DffrctDim (6) ! Matrix used to redimensionalize WAMIT hydrodynamic wave excitation force output (kg/s^2, kg-m/s^2 )
+ REAL(ReKi) :: DffrctDimAdd ! Redimensionalization factor for WAMIT hydrodynamic wave excitation force output for generalized DOF
REAL(SiKi), ALLOCATABLE :: HdroAddMs (:,:,:) ! The frequency-dependent hydrodynamic added mass matrix from the radiation problem (kg , kg-m , kg-m^2 )
REAL(SiKi), ALLOCATABLE :: HdroDmpng (:,:,:) ! The frequency-dependent hydrodynamic damping matrix from the radiation problem (kg/s, kg-m/s, kg-m^2/s)
REAL(SiKi), ALLOCATABLE :: HdroFreq (:) ! Frequency components inherent in the hydrodynamic added mass matrix, hydrodynamic daming matrix, and complex wave excitation force per unit wave amplitude vector (rad/s)
@@ -151,7 +174,9 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
REAL(ReKi) :: PrvDir ! The value of TmpDir from the previous line (degrees)
REAL(ReKi) :: PrvPer ! The value of TmpPer from the previous line (sec )
REAL(ReKi) :: SttcDim (6,6) ! Matrix used to redimensionalize WAMIT hydrostatic restoring output (kg/s^2, kg-m/s^2, kg-m^2/s^2)
+ REAL(ReKi) :: SttcDimAdd ! Redimensionalization factor for WAMIT hydrostatic restoring output for generalized DOF
REAL(ReKi) :: RdtnDim (6,6) ! Matrix used to redimensionalize WAMIT hydrodynamic added mass and damping output (kg , kg-m , kg-m^2 )
+ REAL(ReKi) :: RdtnDimAdd ! Redimensionalization factor for WAMIT hydrodynamic added mass and damping output for generalized DOF
REAL(ReKi) :: TmpData1 ! A temporary value read in from a WAMIT file (- )
REAL(ReKi) :: TmpData2 ! A temporary value read in from a WAMIT file (- )
REAL(ReKi) :: TmpDir ! A temporary direction read in from a WAMIT file (degrees)
@@ -164,7 +189,7 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
REAL(ReKi), ALLOCATABLE :: WAMITPer (:) ! Period components as ordered in the WAMIT output files (sec )
REAL(ReKi), ALLOCATABLE :: WAMITWvDir(:) ! Wave direction components as ordered in the WAMIT output files (degrees)
- INTEGER :: I,iGrid,iX,iY,iHdg,iBdy,iStp ! Generic index
+ INTEGER :: I,iGrid,iX,iY,iHdg,iBdy,iStp,iDOF ! Generic index
INTEGER :: InsertInd ! The lowest sorted index whose associated frequency component is higher than the current frequency component -- this is to sort the frequency components from lowest to highest
INTEGER :: J ! Generic index
INTEGER :: K ! Generic index
@@ -263,17 +288,34 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
CALL SetErrStat( ErrID_Fatal, "DEVELOPER ERROR: If NBodyMod = 2 or 3, then NBody for the a WAMIT object must be equal to 1", ErrStat, ErrMsg, RoutineName)
return
end if
+
+ call AllocAry( p%NAddDOF , p%NBody, 'p%NAddDOF' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call AllocAry( p%BDOFStrt, p%NBody, 'p%BDOFStrt', ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ p%NAddDOF = InitInp%NAddDOF
+ p%NDOF = 0_IntKi
+ do iBody = 1, p%NBody
+ p%BDOFStrt(iBody) = p%NDOF + 1_IntKi
+ p%NDOF = p%NDOF + 6_IntKi + p%NAddDOF(iBody)
+ end do
+ p%HasAddDOF = ( p%NDOF > 6*p%NBody )
! Allocate misc var and parameter vectors/matrices
call AllocAry( p%F_HS_Moment_Offset, 6, p%NBody, 'p%F_HS_Moment_Offset', ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- call AllocAry( m%F_HS , 6*p%NBody, 'm%F_HS' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- call AllocAry( m%F_Waves1 , 6*p%NBody, 'm%F_Waves1' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- call AllocAry( m%F_Rdtn , 6*p%NBody, 'm%F_Rdtn' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- call AllocAry( m%F_PtfmAM , 6*p%NBody, 'm%F_PtfmAM' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- call AllocAry( p%HdroAdMsI, 6*p%NBody,6*p%NBody, 'p%HdroAdMsI' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- call AllocAry( p%HdroSttc , 6*p%NBody,6*p%NBody, 'p%HdroSttc' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call AllocAry( m%F_HS , p%NDOF, 'm%F_HS' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call AllocAry( m%F_Waves1 , p%NDOF, 'm%F_Waves1' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call AllocAry( m%F_Rdtn , p%NDOF, 'm%F_Rdtn' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call AllocAry( m%F_PtfmAM , p%NDOF, 'm%F_PtfmAM' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call AllocAry( p%HdroAdMsI, p%NDOF,p%NDOF, 'p%HdroAdMsI' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call AllocAry( p%HdroSttc , p%NDOF,p%NDOF, 'p%HdroSttc' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+
+ ! Allocate input/output arrays
+ if ( p%HasAddDOF ) then
+ call AllocAry( u%qAddDOF, p%NDOF-6*p%NBody, 'u%qAddDOF' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call AllocAry( u%qAddDOFDot, p%NDOF-6*p%NBody, 'u%qAddDOFDot' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call AllocAry( u%qAddDOFDotDot, p%NDOF-6*p%NBody, 'u%qAddDOFDotDot' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ call AllocAry( y%FAddDOF, p%NDOF-6*p%NBody, 'y%FAddDOF' , ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ end if
-
do iBody = 1, p%NBody
p%F_HS_Moment_Offset(1,iBody) = 0.0_ReKi
p%F_HS_Moment_Offset(2,iBody) = 0.0_ReKi
@@ -282,7 +324,6 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
p%F_HS_Moment_Offset(5,iBody) = -p%WaveField%RhoXg*InitInp%PtfmVol0(iBody)*( InitInp%PtfmCOBxt(iBody) - InitInp%PtfmRefxt(iBody) ) ! and the moment about Y due to the COB being offset from the localWAMIT reference point
p%F_HS_Moment_Offset(6,iBody) = 0.0_ReKi
end do
-
! Tell our nice users what is about to happen that may take a while:
@@ -346,8 +387,10 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
END DO ! I - All moment-rotation elements (rows)
-
-
+ ! For additional generalized DOF - requires WAMITULEN = 1.0
+ SttcDimAdd = p%WaveField%RhoXg
+ RdtnDimAdd = p%WaveField%WtrDens
+ DffrctDimAdd = p%WaveField%RhoXg
! Let's read in and redimensionalize the hydrodynamic data from the WAMIT
! output files:
@@ -356,16 +399,11 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
! Linear restoring from the hydrostatics problem:
- CALL OpenFInpFile ( UnWh, TRIM(InitInp%WAMITFile)//'.hst', ErrStat2, ErrMsg2 ) ! Open file.
- CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- IF ( ErrStat >= AbortErrLev ) THEN
- CALL Cleanup()
- RETURN
- END IF
+ CALL OpenFInpFile ( UnWh, TRIM(InitInp%WAMITFile)//'.hst', ErrStat2, ErrMsg2 ); IF (Failed()) RETURN ! Open file.
p%HdroSttc (:,:) = 0.0 ! Initialize to zero
- DO ! Loop through all rows in the file
+ DO ! Loop through all rows in the file
READ (UnWh,*,IOSTAT=Sttus) I, J, TmpData1 ! Read in the row index, column index, and nondimensional data from the WAMIT file
@@ -373,11 +411,25 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
! In case NBodyMod = 1, we now have WAMIT matrices which are potentially larger than 6x6, so we need to determine how the SttcDim multiplier matrix (a 6x6)
! should be applied to the larger WAMIT matrix.
+
+ IF ( I > p%NDOF .or. J > p%NDOF ) THEN
+ CALL SetErrStat( ErrID_Fatal, ' WAMIT file "'//TRIM(InitInp%WAMITFile)//'.hst'//'" contains more modes than expected ('//trim(num2lstr(p%NDOF))//'). ', ErrStat, ErrMsg, RoutineName)
+ CALL Cleanup()
+ RETURN
+ END IF
- iSub = mod(I-1,6)+1 ! Finds the 6x6 sub-matrix indexing for the SttcDim multiplier matrix
- jSub = mod(J-1,6)+1
+ IF ( p%HasAddDOF ) THEN
+
+ p%HdroSttc (I,J) = TmpData1*SttcDimAdd ! Redimensionalize the data and place it at the appropriate location within the array
- p%HdroSttc (I,J) = TmpData1*SttcDim(iSub,jSub) ! Redimensionalize the data and place it at the appropriate location within the array
+ ELSE
+
+ iSub = mod(I-1,6)+1 ! Finds the 6x6 sub-matrix indexing for the SttcDim multiplier matrix
+ jSub = mod(J-1,6)+1
+
+ p%HdroSttc (I,J) = TmpData1*SttcDim(iSub,jSub) ! Redimensionalize the data and place it at the appropriate location within the array
+
+ END IF
ELSE ! We must have reached the end of the file, so stop reading in data
@@ -385,13 +437,14 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
END IF
-
END DO ! End loop through all rows in the file
CLOSE ( UnWh ) ! Close file.
! need to transform p%HdroSttc when PtfmRefztRot is nonzero per plan
- call TransformWAMITMatrices( p%NBody, InitInp%PtfmRefztRot, p%HdroSttc )
+ call TransformWAMITMatrices( p, InitInp%PtfmRefztRot, p%HdroSttc )
+
+
! Linear, frequency-dependent hydrodynamic added mass and damping from the
! radiation problem:
@@ -446,8 +499,8 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
CALL AllocAry( WAMITPer, NInpFreq, 'WAMITPer', ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
CALL AllocAry( SortFreqInd, NInpFreq, 'SortFreqInd', ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
CALL AllocAry( HdroFreq, NInpFreq, 'HdroFreq', ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- CALL AllocAry( HdroAddMs, NInpFreq, 6*p%NBody, 6*p%NBody, 'HdroAddMs', ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- CALL AllocAry( HdroDmpng, NInpFreq, 6*p%NBody, 6*p%NBody, 'HdroDmpng', ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ CALL AllocAry( HdroAddMs, NInpFreq, p%NDOF, p%NDOF, 'HdroAddMs', ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ CALL AllocAry( HdroDmpng, NInpFreq, p%NDOF, p%NDOF, 'HdroDmpng', ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
IF ( ErrStat >= AbortErrLev ) THEN
CALL Cleanup()
@@ -562,17 +615,25 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
CALL SetErrStat( ErrID_Fatal, "Error reading line from WAMIT file", ErrStat, ErrMsg, RoutineName)
CALL Cleanup()
RETURN
- END IF
-!bjj: verify that I and J are valid indices for RdtnDim
-
+ END IF
+ IF ( I > p%NDOF .or. J > p%NDOF ) THEN
+ CALL SetErrStat( ErrID_Fatal, ' WAMIT file "'//TRIM(InitInp%WAMITFile)//'.1'//'" contains more modes than expected ('//trim(num2lstr(p%NDOF))//'). ', ErrStat, ErrMsg, RoutineName)
+ CALL Cleanup()
+ RETURN
+ END IF
- ! IF ( J >= I ) THEN ! .TRUE. if we are on or above the diagonal
- ! Indx = 6*( I - 1 ) + J - ( I*( I - 1 ) )/2 ! Convert from row/column indices to an index in the format used to save only the upper-triangular portion of the matrix. NOTE: ( I*( I - 1 ) )/2 = SUM(I,START=1,END=I-1).
- iSub = mod(I-1,6)+1 ! Finds the 6x6 sub-matrix indexing for the SttcDim multiplier matrix
+ IF ( p%HasAddDOF ) THEN
+
+ HdroAddMs(SortFreqInd(K),I,J) = TmpData1*RdtnDimAdd ! Redimensionalize the data and place it at the appropriate location within the array
+
+ ELSE
+
+ iSub = mod(I-1,6)+1 ! Finds the 6x6 sub-matrix indexing for the RdtnDim multiplier matrix
jSub = mod(J-1,6)+1
HdroAddMs(SortFreqInd(K),I,J) = TmpData1*RdtnDim(iSub,jSub) ! Redimensionalize the data and place it at the appropriate location within the array
- ! END IF
+
+ END IF
ELSE ! We must have a positive, non-infinite frequency.
@@ -582,15 +643,25 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
CALL Cleanup()
RETURN
END IF
-
+ IF ( I > p%NDOF .or. J > p%NDOF ) THEN
+ CALL SetErrStat( ErrID_Fatal, ' WAMIT file "'//TRIM(InitInp%WAMITFile)//'.1'//'" contains more modes than expected ('//trim(num2lstr(p%NDOF))//'). ', ErrStat, ErrMsg, RoutineName)
+ CALL Cleanup()
+ RETURN
+ END IF
- !IF ( J >= I ) THEN ! .TRUE. if we are on or above the diagonal
- ! Indx = 6*( I - 1 ) + J - ( I*( I - 1 ) )/2 ! Convert from row/column indices to an index in the format used to save only the upper-triangular portion of the matrix. NOTE: ( I*( I - 1 ) )/2 = SUM(I,START=1,END=I-1).
- iSub = mod(I-1,6)+1 ! Finds the 6x6 sub-matrix indexing for the SttcDim multiplier matrix
- jSub = mod(J-1,6)+1
+ IF ( p%HasAddDOF ) THEN
+
+ HdroAddMs(SortFreqInd(K),I,J) = TmpData1*RdtnDimAdd ! Redimensionalize the data and place it at the appropriate location within the array
+ HdroDmpng(SortFreqInd(K),I,J) = TmpData2*RdtnDimAdd*HdroFreq(SortFreqInd(K)) ! Redimensionalize the data and place it at the appropriate location within the array
+
+ ELSE
+
+ iSub = mod(I-1,6)+1 ! Finds the 6x6 sub-matrix indexing for the RdtnDim multiplier matrix
+ jSub = mod(J-1,6)+1
HdroAddMs(SortFreqInd(K),I,J) = TmpData1*RdtnDim(iSub,jSub) ! Redimensionalize the data and place it at the appropriate location within the array
HdroDmpng(SortFreqInd(K),I,J) = TmpData2*RdtnDim(iSub,jSub)*HdroFreq(SortFreqInd(K)) ! Redimensionalize the data and place it at the appropriate location within the array
- ! END IF
+
+ END IF
END IF
@@ -611,8 +682,8 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
! need to transform HdroAddMs and HdroDmpng when PtfmRefztRot is nonzero per plan
do I = 1, NInpFreq
- call TransformWAMITMatrices( p%NBody, InitInp%PtfmRefztRot, HdroAddMs(I,:,:) )
- call TransformWAMITMatrices( p%NBody, InitInp%PtfmRefztRot, HdroDmpng(I,:,:) )
+ call TransformWAMITMatrices( p, InitInp%PtfmRefztRot, HdroAddMs(I,:,:) )
+ call TransformWAMITMatrices( p, InitInp%PtfmRefztRot, HdroDmpng(I,:,:) )
end do
@@ -683,15 +754,11 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
! to store the directions and frequency- and direction-dependent complex wave
! excitation force per unit wave amplitude vector:
- CALL AllocAry( WAMITWvDir, NInpWvDir, 'WAMITWvDir', ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- CALL AllocAry( SortWvDirInd, NInpWvDir, 'SortWvDirInd', ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- CALL AllocAry( HdroWvDir, NInpWvDir, 'HdroWvDir', ErrStat2, ErrMsg2 ); CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- IF ( ErrStat >= AbortErrLev ) THEN
- CALL Cleanup()
- RETURN
- END IF
+ CALL AllocAry( WAMITWvDir, NInpWvDir, 'WAMITWvDir', ErrStat2, ErrMsg2 ); IF(Failed()) RETURN
+ CALL AllocAry( SortWvDirInd, NInpWvDir, 'SortWvDirInd', ErrStat2, ErrMsg2 ); IF(Failed()) RETURN
+ CALL AllocAry( HdroWvDir, NInpWvDir, 'HdroWvDir', ErrStat2, ErrMsg2 ); IF(Failed()) RETURN
- ALLOCATE ( HdroExctn (NInpFreq,NInpWvDir,6*p%NBody) , STAT=ErrStat2 ) ! complex so we don't have a built in subroutine
+ ALLOCATE ( HdroExctn (NInpFreq,NInpWvDir,p%NDOF) , STAT=ErrStat2 ) ! complex so we don't have a built in subroutine
IF ( ErrStat2 /= 0 ) THEN
CALL SetErrStat( ErrID_Fatal, 'Error allocating space for HdroExctn array', ErrStat, ErrMsg, RoutineName)
CALL Cleanup()
@@ -821,6 +888,11 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
CALL Cleanup()
RETURN
END IF
+ IF ( I > p%NDOF ) THEN
+ CALL SetErrStat( ErrID_Fatal, ' WAMIT file "'//TRIM(InitInp%WAMITFile)//'.3'//'" contains more modes than expected ('//trim(num2lstr(p%NDOF))//'). ', ErrStat, ErrMsg, RoutineName)
+ CALL Cleanup()
+ RETURN
+ END IF
IF ( FirstPass .OR. ( TmpPer /= PrvPer ) ) THEN ! .TRUE. if we are on the first pass or if the period currently read in is different than the previous period read in; thus we found a new period in the WAMIT file!
@@ -851,9 +923,16 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
END IF
- iSub = mod(I-1,6)+1 ! Finds the 6x6 sub-matrix indexing for the SttcDim multiplier matrix
- HdroExctn(SortFreqInd(K),SortWvDirInd(J),I) = CMPLX( TmpRe, TmpIm )*DffrctDim(iSub) ! Redimensionalize the data and place it at the appropriate location within the array
+ IF ( p%HasAddDOF ) THEN
+ HdroExctn(SortFreqInd(K),SortWvDirInd(J),I) = CMPLX( TmpRe, TmpIm )*DffrctDimAdd ! Redimensionalize the data and place it at the appropriate location within the array
+
+ ELSE
+
+ iSub = mod(I-1,6)+1 ! Finds the 6x6 sub-matrix indexing for the DffrctDim multiplier matrix
+ HdroExctn(SortFreqInd(K),SortWvDirInd(J),I) = CMPLX( TmpRe, TmpIm )*DffrctDim(iSub) ! Redimensionalize the data and place it at the appropriate location within the array
+
+ END IF
ELSE ! We must have reached the end of the file, so stop reading in data
@@ -911,22 +990,9 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
RETURN
END IF
-
-
! Set the infinite-frequency limit of the frequency-dependent hydrodynamic
! added mass matrix, HdroAdMsI, based on the highest frequency available:
-!TODO: Is this index order correct for computational speed? GJH 9/5/19
- !Indx = 0
- DO J = 1,6*p%NBody ! Loop through all rows of HdroAdMsI
- DO K = 1,6*p%NBody ! Loop through all columns of HdroAdMsI above and including the diagonal
- ! Indx = Indx + 1
- p%HdroAdMsI(J,K) = HdroAddMs(NInpFreq,J,K)
- END DO ! K - All columns of HdroAdMsI above and including the diagonal
- ! DO K = J+1,6 ! Loop through all rows of HdroAdMsI below the diagonal
- ! p%HdroAdMsI(K,J) = p%HdroAdMsI(J,K)
- ! END DO ! K - All rows of HdroAdMsI below the diagonal
- END DO ! J - All rows of HdroAdMsI
-
+ p%HdroAdMsI = HdroAddMs(NInpFreq,:,:)
if ( ( p%ExctnMod == 0 ) ) then
@@ -941,7 +1007,7 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
if ( p%ExctnMod == 1 ) then
! Initialize everything to zero:
- ALLOCATE ( p%WaveExctnGrid (0:p%WaveField%NStepWave, p%ExctnGridParams%n(2),p%ExctnGridParams%n(3),p%ExctnGridParams%n(4),6*p%NBody) , STAT=ErrStat2 )
+ ALLOCATE ( p%WaveExctnGrid (0:p%WaveField%NStepWave, p%ExctnGridParams%n(2),p%ExctnGridParams%n(3),p%ExctnGridParams%n(4),p%NDOF) , STAT=ErrStat2 )
IF ( ErrStat2 /= 0 ) THEN
CALL SetErrStat( ErrID_Fatal, 'Error allocating memory for the WaveExctnGrid array.', ErrStat, ErrMsg, RoutineName)
CALL Cleanup()
@@ -962,12 +1028,7 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
call SS_Exc_Init(SS_Exctn_InitInp, m%SS_Exctn_u, p%SS_Exctn, x%SS_Exctn, xd%SS_Exctn, z%SS_Exctn, OtherState%SS_Exctn, &
m%SS_Exctn_y, m%SS_Exctn, Interval_Sub, SS_Exctn_InitOut, ErrStat2, ErrMsg2)
-
- call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- if ( ErrStat >= AbortErrLev ) then
- call Cleanup()
- return
- end if
+ if(Failed()) return
end if
CASE ( WaveMod_ExtFull ) ! User wave data.
@@ -1036,7 +1097,7 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
! ALLOCATE the arrays:
- ALLOCATE ( WaveExctnC(0:p%WaveField%NStepWave2,p%NExctnHdg+1,6*p%NBody) , STAT=ErrStat2 )
+ ALLOCATE ( WaveExctnC(0:p%WaveField%NStepWave2,p%NExctnHdg+1,p%NDOF) , STAT=ErrStat2 )
IF ( ErrStat2 /= 0 ) THEN
CALL SetErrStat( ErrID_Fatal, 'Error allocating memory for the WaveExctnC array.', ErrStat, ErrMsg, RoutineName)
CALL Cleanup()
@@ -1044,7 +1105,7 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
END IF
if (p%ExctnDisp > 0 ) then
- ALLOCATE ( WaveExctnCGrid (0:p%WaveField%NStepWave2,p%ExctnGridParams%n(2)*p%ExctnGridParams%n(3),p%ExctnGridParams%n(4),6*p%NBody) , STAT=ErrStat2 )
+ ALLOCATE ( WaveExctnCGrid (0:p%WaveField%NStepWave2,p%ExctnGridParams%n(2)*p%ExctnGridParams%n(3),p%ExctnGridParams%n(4),p%NDOF) , STAT=ErrStat2 )
IF ( ErrStat2 /= 0 ) THEN
CALL SetErrStat( ErrID_Fatal, 'Error allocating memory for the WaveExctnCGrid array.', ErrStat, ErrMsg, RoutineName)
CALL Cleanup()
@@ -1052,7 +1113,7 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
END IF
end if
- ALLOCATE ( p%WaveExctnGrid (0:p%WaveField%NStepWave, p%ExctnGridParams%n(2),p%ExctnGridParams%n(3),p%ExctnGridParams%n(4),6*p%NBody) , STAT=ErrStat2 )
+ ALLOCATE ( p%WaveExctnGrid (0:p%WaveField%NStepWave, p%ExctnGridParams%n(2),p%ExctnGridParams%n(3),p%ExctnGridParams%n(4),p%NDOF) , STAT=ErrStat2 )
IF ( ErrStat2 /= 0 ) THEN
CALL SetErrStat( ErrID_Fatal, 'Error allocating memory for the WaveExctnGrid array.', ErrStat, ErrMsg, RoutineName)
CALL Cleanup()
@@ -1091,6 +1152,7 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
HdroExctn(I,J,3) = Fxy*( HdroExctn(I,J,3) )
HdroExctn(I,J,6) = Fxy*( HdroExctn(I,J,6) )
+ HdroExctn(I,J,7:p%NDOF) = Fxy*HdroExctn(I,J,7:p%NDOF)
end do
end do
@@ -1101,7 +1163,7 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
do J = 1, NInpWvDir
do I = 1, NInpFreq
do iBody = 1, p%NBody
- K = 6*(iBody-1)
+ K = p%BDOFStrt(iBody) - 1_IntKi
Ctmp1 = ( HdroExctn(I,J,K+1)*cos(InitInp%PtfmRefztRot(iBody)) ) - ( HdroExctn(I,J,K+2)*sin(InitInp%PtfmRefztRot(iBody)) )
Ctmp2 = ( HdroExctn(I,J,K+1)*sin(InitInp%PtfmRefztRot(iBody)) ) + ( HdroExctn(I,J,K+2)*cos(InitInp%PtfmRefztRot(iBody)) )
Ctmp4 = ( HdroExctn(I,J,K+4)*cos(InitInp%PtfmRefztRot(iBody)) ) - ( HdroExctn(I,J,K+5)*sin(InitInp%PtfmRefztRot(iBody)) )
@@ -1136,19 +1198,14 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
! Compute the discrete Fourier transform of the instantaneous value of the
! total excitation force on the support platfrom from incident waves:
- DO J = 1,6*p%NBody ! Loop through all wave excitation forces and moments
+ DO J = 1,p%NDOF ! Loop through all wave excitation forces and moments
TmpCoord(1) = Omega
TmpCoord(2) = p%WaveField%WaveDirArr(I) - PRPHdg*R2D
dirInRange = GetAngleInRange(TmpCoord(2),HdroWvDir(1),HdroWvDir(NInpWvDir),tmpDir2); TmpCoord(2) = tmpDir2
IF (.NOT. dirInRange) THEN ! Somewhat redundant check. Can be removed in the future.
CALL SetErrStat(ErrID_Fatal,' Wave heading out of range.', ErrStat, ErrMsg, RoutineName)
END IF
- CALL WAMIT_Interp2D_Cplx( TmpCoord, HdroExctn(:,:,J), HdroFreq, HdroWvDir, LastInd2, WaveExctnC(I,iHdg,J), ErrStat2, ErrMsg2 )
- CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- IF ( ErrStat >= AbortErrLev ) THEN
- CALL Cleanup()
- RETURN
- END IF
+ CALL WAMIT_Interp2D_Cplx( TmpCoord, HdroExctn(:,:,J), HdroFreq, HdroWvDir, LastInd2, WaveExctnC(I,iHdg,J), ErrStat2, ErrMsg2 ); IF (Failed()) RETURN
WaveExctnC(I,iHdg,J) = WaveExctnC(I,iHdg,J) * CMPLX(p%WaveField%WaveElevC0(1,I), p%WaveField%WaveElevC0(2,I))
END DO ! J - All wave excitation forces and moments
END DO ! iHdg - All PRP heading
@@ -1162,7 +1219,7 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
RETURN
END IF
DO iHdg = 1,p%NExctnHdg+1
- DO J = 1,6*p%NBody ! Loop through all wave excitation forces and moments
+ DO J = 1,p%NDOF ! Loop through all wave excitation forces and moments
CALL ApplyFFT_cx ( p%WaveExctnGrid(0:p%WaveField%NStepWave-1,1_IntKi,1_IntKi,iHdg,J), WaveExctnC(:,iHdg,J), FFT_Data, ErrStat2 )
CALL SetErrStat( ErrStat2, ' An error occurred while applying an FFT to WaveExctnC.', ErrStat, ErrMsg, RoutineName)
IF ( ErrStat >= AbortErrLev) THEN
@@ -1214,19 +1271,14 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
! Compute the discrete Fourier transform of the instantaneous value of the
! total excitation force on the support platfrom from incident waves:
- DO J = 1,6*p%NBody ! Loop through all wave excitation forces and moments
+ DO J = 1,p%NDOF ! Loop through all wave excitation forces and moments
TmpCoord(1) = Omega
TmpCoord(2) = p%WaveField%WaveDirArr(I) - PRPHdg*R2D
dirInRange = GetAngleInRange(TmpCoord(2),HdroWvDir(1),HdroWvDir(NInpWvDir),tmpDir2); TmpCoord(2) = tmpDir2
IF (.NOT. dirInRange) THEN ! Somewhat redundant check. Can be removed in the future.
CALL SetErrStat(ErrID_Fatal,' Wave heading out of range.', ErrStat, ErrMsg, RoutineName)
END IF
- CALL WAMIT_Interp2D_Cplx( TmpCoord, HdroExctn(:,:,J), HdroFreq, HdroWvDir, LastInd2, WaveExctnC(I,iHdg,J), ErrStat2, ErrMsg2 )
- CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- IF ( ErrStat >= AbortErrLev ) THEN
- CALL Cleanup()
- RETURN
- END IF
+ CALL WAMIT_Interp2D_Cplx( TmpCoord, HdroExctn(:,:,J), HdroFreq, HdroWvDir, LastInd2, WaveExctnC(I,iHdg,J), ErrStat2, ErrMsg2 ); IF(FAILED()) RETURN
do iGrid = 1, p%ExctnGridParams%n(2)*p%ExctnGridParams%n(3)
WaveExctnCGrid(I,iGrid,iHdg,J) = WaveExctnC(I,iHdg,J) * CMPLX(p%WaveField%WaveElevC(1,I,iGrid), p%WaveField%WaveElevC(2,I,iGrid))
end do
@@ -1248,7 +1300,7 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
DO iGrid = 1, p%ExctnGridParams%n(2)*p%ExctnGridParams%n(3)
iX = mod(iGrid-1, p%ExctnGridParams%n(2)) + 1 ! 1st n index is time
iY = (iGrid-1) / p%ExctnGridParams%n(2) + 1
- DO J = 1,6*p%NBody ! Loop through all wave excitation forces and moments
+ DO J = 1,p%NDOF ! Loop through all wave excitation forces and moments
CALL ApplyFFT_cx ( p%WaveExctnGrid(0:p%WaveField%NStepWave-1,iX,iY,iHdg,J), WaveExctnCGrid(:,iGrid,iHdg,J), FFT_Data, ErrStat2 )
CALL SetErrStat( ErrStat2, ' An error occurred while applying an FFT to WaveExctnC.', ErrStat, ErrMsg, RoutineName)
IF ( ErrStat >= AbortErrLev) THEN
@@ -1280,10 +1332,11 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
iY = (iGrid-1) / p%ExctnGridParams%n(2) + 1
DO J = 0,p%WaveField%NStepWave
DO iBdy = 1,p%NBody
- call hiFrameTransform(h2i,PRPHdg,p%WaveExctnGrid(J,iX,iY,iHdg,(6*(iBdy-1)+1):(6*(iBdy-1)+3)),tmpVec3,ErrStat2,ErrMsg2); call SetErrStat(ErrStat2,ErrMsg2,ErrStat,ErrMsg,RoutineName)
- p%WaveExctnGrid(J,iX,iY,iHdg,(6*(iBdy-1)+1):(6*(iBdy-1)+3)) = tmpVec3
- call hiFrameTransform(h2i,PRPHdg,p%WaveExctnGrid(J,iX,iY,iHdg,(6*(iBdy-1)+4):(6*(iBdy-1)+6)),tmpVec3,ErrStat2,ErrMsg2); call SetErrStat(ErrStat2,ErrMsg2,ErrStat,ErrMsg,RoutineName)
- p%WaveExctnGrid(J,iX,iY,iHdg,(6*(iBdy-1)+4):(6*(iBdy-1)+6)) = tmpVec3
+ iDOF = p%BDOFStrt(iBdy)-1_IntKi
+ call hiFrameTransform(h2i,PRPHdg,p%WaveExctnGrid(J,iX,iY,iHdg,(iDOF+1):(iDOF+3)),tmpVec3,ErrStat2,ErrMsg2); call SetErrStat(ErrStat2,ErrMsg2,ErrStat,ErrMsg,RoutineName)
+ p%WaveExctnGrid(J,iX,iY,iHdg,(iDOF+1):(iDOF+3)) = tmpVec3
+ call hiFrameTransform(h2i,PRPHdg,p%WaveExctnGrid(J,iX,iY,iHdg,(iDOF+4):(iDOF+6)),tmpVec3,ErrStat2,ErrMsg2); call SetErrStat(ErrStat2,ErrMsg2,ErrStat,ErrMsg,RoutineName)
+ p%WaveExctnGrid(J,iX,iY,iHdg,(iDOF+4):(iDOF+6)) = tmpVec3
END DO
END DO
END DO
@@ -1365,12 +1418,7 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
call SS_Exc_Init(SS_Exctn_InitInp, m%SS_Exctn_u, p%SS_Exctn, x%SS_Exctn, xd%SS_Exctn, z%SS_Exctn, OtherState%SS_Exctn, &
m%SS_Exctn_y, m%SS_Exctn, Interval_Sub, SS_Exctn_InitOut, ErrStat2, ErrMsg2)
-
- call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- if ( ErrStat >= AbortErrLev ) then
- call Cleanup()
- return
- end if
+ if (Failed()) return
end if
IF ( (p%ExctnMod>0) .AND. (p%ExctnDisp==2) ) THEN ! Allocate and initialize array for filtered potential-flow body positions
@@ -1418,50 +1466,28 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
CALL MOVE_ALLOC( HdroAddMs, Conv_Rdtn_InitInp%HdroAddMs )
CALL MOVE_ALLOC( HdroDmpng, Conv_Rdtn_InitInp%HdroDmpng )
Conv_Rdtn_InitInp%NBody = InitInp%NBody
+ conv_rdtn_InitInp%NDOF = p%NDOF
Conv_Rdtn_InitInp%RdtnTMax = InitInp%RdtnTMax
Conv_Rdtn_InitInp%RdtnDT = InitInp%Conv_Rdtn%RdtnDT
Conv_Rdtn_InitInp%HighFreq = HighFreq
Conv_Rdtn_InitInp%WAMITFile = InitInp%WAMITFile
Conv_Rdtn_InitInp%NInpFreq = NInpFreq
-
-
- CALL Conv_Rdtn_Init(Conv_Rdtn_InitInp, m%Conv_Rdtn_u, p%Conv_Rdtn, x%Conv_Rdtn, xd%Conv_Rdtn, z%Conv_Rdtn, OtherState%Conv_Rdtn, &
- m%Conv_Rdtn_y, m%Conv_Rdtn, Conv_Rdtn_InitOut, ErrStat2, ErrMsg2)
-
- CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- IF ( ErrStat >= AbortErrLev ) THEN
- CALL Cleanup()
- RETURN
- END IF
-
+ CALL Conv_Rdtn_Init(Conv_Rdtn_InitInp, m%Conv_Rdtn_u, p%Conv_Rdtn, x%Conv_Rdtn, xd%Conv_Rdtn, z%Conv_Rdtn, OtherState%Conv_Rdtn, &
+ m%Conv_Rdtn_y, m%Conv_Rdtn, Conv_Rdtn_InitOut, ErrStat2, ErrMsg2); IF (Failed()) RETURN
ELSE IF ( InitInp%RdtnMod == 2 ) THEN
SS_Rdtn_InitInp%InputFile = InitInp%WAMITFile
- call AllocAry(SS_Rdtn_InitInp%enabledDOFs, 6*p%NBody, 'SS_Rdtn_InitInp%enabledDOFs', ErrStat2, ErrMsg2); call SetErrStat(ErrStat2,ErrMsg2,ErrStat,ErrMsg,RoutineName)
- IF ( ErrStat >= AbortErrLev ) THEN
- CALL Cleanup()
- RETURN
- END IF
+ call AllocAry(SS_Rdtn_InitInp%enabledDOFs, 6*p%NBody, 'SS_Rdtn_InitInp%enabledDOFs', ErrStat2, ErrMsg2); if (Failed()) return
SS_Rdtn_InitInp%enabledDOFs = 1 ! Set to 1 (True) for all DOFs, meaning each DOF is to be used in the analysis.
Interval_Sub = InitInp%Conv_Rdtn%RdtnDT
SS_Rdtn_InitInp%NBody = InitInp%NBody
- call AllocAry(SS_Rdtn_InitInp%PtfmRefztRot, p%NBody, 'SS_Rdtn_InitInp%PtfmRefztRot', ErrStat2, ErrMsg2); call SetErrStat(ErrStat2,ErrMsg2,ErrStat,ErrMsg,RoutineName)
- IF ( ErrStat >= AbortErrLev ) THEN
- CALL Cleanup()
- RETURN
- END IF
+ call AllocAry(SS_Rdtn_InitInp%PtfmRefztRot, p%NBody, 'SS_Rdtn_InitInp%PtfmRefztRot', ErrStat2, ErrMsg2); if (Failed()) return
SS_Rdtn_InitInp%PtfmRefztRot = InitInp%PtfmRefztRot
CALL SS_Rad_Init(SS_Rdtn_InitInp, m%SS_Rdtn_u, p%SS_Rdtn, x%SS_Rdtn, xd%SS_Rdtn, z%SS_Rdtn, OtherState%SS_Rdtn, &
- m%SS_Rdtn_y, m%SS_Rdtn, Interval_Sub, SS_Rdtn_InitOut, ErrStat2, ErrMsg2)
-
- CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- IF ( ErrStat >= AbortErrLev ) THEN
- CALL Cleanup()
- RETURN
- END IF
+ m%SS_Rdtn_y, m%SS_Rdtn, Interval_Sub, SS_Rdtn_InitOut, ErrStat2, ErrMsg2); IF (Failed()) RETURN
END IF
@@ -1503,13 +1529,7 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
,TranslationVel = .TRUE. &
,RotationVel = .TRUE. &
,TranslationAcc = .TRUE. &
- ,RotationAcc = .TRUE.)
-
- CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- IF ( ErrStat >= AbortErrLev ) THEN
- CALL Cleanup()
- RETURN
- END IF
+ ,RotationAcc = .TRUE.); if (Failed()) return
do iBody = 1, p%NBody
@@ -1518,16 +1538,12 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
! Create the node on the mesh
-
CALL MeshPositionNode (u%Mesh &
, iBody &
, (/InitInp%PtfmRefxt(iBody), InitInp%PtfmRefyt(iBody), InitInp%PtfmRefzt(iBody)/) &
, ErrStat2 &
, ErrMsg2 &
- , orientation )
-
- CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
-
+ , orientation ); if (Failed()) return
! Create the mesh element
CALL MeshConstructElement ( u%Mesh &
@@ -1535,19 +1551,13 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
, ErrStat2 &
, ErrMsg2 &
, iBody &
- )
- CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ ); if (Failed()) return
end do
CALL MeshCommit ( u%Mesh &
- , ErrStat2 &
- , ErrMsg2 )
- CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- IF ( ErrStat >= AbortErrLev ) THEN
- CALL Cleanup()
- RETURN
- END IF
+ , ErrStat2 &
+ , ErrMsg2 ); if (Failed()) return
call MeshCopy ( SrcMesh = u%Mesh &
,DestMesh = y%Mesh &
@@ -1556,30 +1566,27 @@ SUBROUTINE WAMIT_Init( InitInp, u, p, x, xd, z, OtherState, y, m, Interval, ErrS
,ErrStat = ErrStat2 &
,ErrMess = ErrMsg2 &
,Force = .TRUE. &
- ,Moment = .TRUE. )
-
- CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
- IF ( ErrStat >= AbortErrLev ) THEN
- CALL Cleanup()
- RETURN
- END IF
+ ,Moment = .TRUE. ); if (Failed()) return
+
u%Mesh%RemapFlag = .TRUE.
y%Mesh%RemapFlag = .TRUE.
-
! Define initialization-routine output here:
-
-
-
-
! initialize misc vars:
- m%LastIndWave = 1
+ m%LastIndWave = 1
CALL Cleanup()
CONTAINS
+ LOGICAL FUNCTION Failed()
+ CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
+ Failed = ErrStat >= AbortErrLev
+ IF (Failed) THEN
+ CALL Cleanup()
+ END IF
+ END FUNCTION Failed
SUBROUTINE Cleanup()
@@ -1700,6 +1707,7 @@ SUBROUTINE WAMIT_UpdateStates( t, n, Inputs, InputTimes, p, x, xd, z, OtherState
INTEGER :: I ! Generic loop counter
INTEGER :: nTime ! Number of inputs
integer(IntKi) :: iBody ! WAMIT body index
+ integer(IntKi) :: AddDOFCntr ! Counter for additional DOF
integer(IntKi) :: indxStart, indxEnd ! Starting and ending indices for the iBody_th sub vector in an NBody long vector
@@ -1741,20 +1749,27 @@ SUBROUTINE WAMIT_UpdateStates( t, n, Inputs, InputTimes, p, x, xd, z, OtherState
ErrMsg = ' Failed to allocate array Conv_Rdtn_u(I)%Velocity.'
RETURN
END IF
+ AddDOFCntr = 0_IntKi
do iBody=1,p%NBody
- indxStart = (iBody-1)*6+1
- indxEnd = indxStart+5
+ indxStart = p%BDOFStrt(iBody)
+ indxEnd = indxStart+5
call hiFrameTransform( i2h, Inputs(I)%PtfmRefY, Inputs(I)%Mesh%TranslationVel(:,iBody), tmpVec6(1:3), ErrStat, ErrMsg)
call hiFrameTransform( i2h, Inputs(I)%PtfmRefY, Inputs(I)%Mesh%RotationVel(:,iBody), tmpVec6(4:6), ErrStat, ErrMsg)
Conv_Rdtn_u(I)%Velocity(indxStart:indxEnd) = tmpVec6
+ if ( p%NAddDOF(iBody) > 0_IntKi ) then
+ indxStart = p%BDOFStrt(iBody)+6
+ indxEnd = indxStart-1+p%NAddDOF(iBody)
+ Conv_Rdtn_u(I)%Velocity(indxStart:indxEnd) = Inputs(I)%qAddDOFDot(AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iBody))
+ AddDOFCntr = AddDOFCntr + p%NAddDOF(iBody)
+ end if
end do
END DO
-
+
CALL Conv_Rdtn_UpdateStates( t, n, Conv_Rdtn_u, InputTimes, p%Conv_Rdtn, x%Conv_Rdtn, xd%Conv_Rdtn, &
z%Conv_Rdtn, OtherState%Conv_Rdtn, m%Conv_Rdtn, ErrStat, ErrMsg )
-
+
DEALLOCATE(Conv_Rdtn_u)
-
+
ELSE IF ( p%RdtnMod == 2 ) THEN ! Update the state-space radiation memory effect sub-module's state
! Allocate array of SS_Rdtn inputs
@@ -1877,14 +1892,12 @@ SUBROUTINE WAMIT_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat, Er
! Local Variables:
- !REAL(ReKi) :: F_HS (6) ! Total load contribution from hydrostatics, including the effects of waterplane area and the center of buoyancy (N, N-m)
- !REAL(ReKi) :: F_Waves (6) ! Total load contribution from incident waves (i.e., the diffraction problem) (N, N-m)
- !REAL(ReKi) :: F_Rdtn (6) ! Total load contribution from wave radiation damping (i.e., the diffraction problem) (N, N-m)
- INTEGER(IntKi) :: I,iStart ! Generic index
- REAL(ReKi) :: q(6*p%NBody), qdot(6*p%NBody), qdotdot(6*p%NBody) ! kinematics for all WAMIT bodies
+ INTEGER(IntKi) :: I ! Generic index
+ REAL(ReKi) :: q(p%NDOF), qdot(p%NDOF), qdotdot(p%NDOF)! kinematics for all WAMIT bodies
REAL(ReKi) :: rotdisp(3) ! small angle rotational displacements
INTEGER(IntKi) :: iBody ! Counter for WAMIT bodies. If NBodyMod > 1 then NBody = 1, and hence iBody = 1
INTEGER(IntKi) :: indxStart, indxEnd ! Starting and ending indices for the iBody_th sub vector in an NBody long vector
+ INTEGER(IntKi) :: AddDOFCntr ! Aggregated counter for additional DOF forcing outputs
REAL(ReKi) :: bodyPosition(3) ! x-y displaced location of a WAMIT body (relative to
REAL(ReKi) :: refBodyPosition(3)
REAL(ReKi) :: tmpVec3(3),tmpVec6(6)
@@ -1903,12 +1916,7 @@ SUBROUTINE WAMIT_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat, Er
ErrStat = ErrID_None
ErrMsg = ""
-
-
- ! Compute outputs here:
-
-
-
+
! Compute the load contribution from incident waves (i.e., the diffraction problem):
if ( p%ExctnMod == 0 ) then
@@ -1916,31 +1924,28 @@ SUBROUTINE WAMIT_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat, Er
else if ( p%ExctnMod == 1 ) then
+ ! Abort if the wave excitation loads have not been computed yet:
+ IF ( .NOT. ALLOCATED ( p%WaveExctnGrid ) ) THEN
+ ErrMsg = ' Routine WAMIT_Init() must be called before routine WAMIT_CalcOutput().'
+ ErrStat = ErrID_Fatal
+ RETURN
+ END IF
+
if ( p%ExctnDisp == 0 ) then
- ! Abort if the wave excitation loads have not been computed yet:
- IF ( .NOT. ALLOCATED ( p%WaveExctnGrid ) ) THEN
- ErrMsg = ' Routine WAMIT_Init() must be called before routine WAMIT_CalcOutput().'
- ErrStat = ErrID_Fatal
- RETURN
- END IF
DO iBody = 1,p%NBody
bodyPosition(1) = 0.0
bodyPosition(2) = 0.0
bodyPosition(3) = WrapToPi(u%PtfmRefY)
- iStart = (iBody-1)*6+1
+
+ indxStart = p%BDOFStrt(iBody)
+ indxEnd = indxStart+5+p%NAddDOF(iBody)
! WaveExctnGrid dimensions are: 1st: wavetime, 2nd: X, 3rd: Y, 4th: PRP yaw offset, 5th: Force component for each WAMIT Body
- m%F_Waves1(iStart:iStart+5) = WAMIT_ForceWaves_Interp( Time, bodyPosition, p%WaveExctnGrid(:,:,:,:,iStart:iStart+5), p%ExctnGridParams, m%WaveField_m, ErrStat2, ErrMsg2 )
+ m%F_Waves1(indxStart:indxEnd) = WAMIT_ForceWaves_Interp( 6+p%NAddDOF(iBody), Time, bodyPosition, p%WaveExctnGrid(:,:,:,:,indxStart:indxEnd), p%ExctnGridParams, m%WaveField_m, ErrStat2, ErrMsg2 )
call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
END DO
- else ! p%ExctnDisp > 0
- IF ( .NOT. allocated ( p%WaveExctnGrid ) ) THEN
- ErrMsg = ' Routine WAMIT_Init() must be called before routine WAMIT_CalcOutput().'
- ErrStat = ErrID_Fatal
- RETURN
- END IF
- ! We are using the displaced x,y location of the WAMIT bodies to determine the Wave Exication force
+ else ! p%ExctnDisp > 0; we are using the displaced x,y location of the WAMIT bodies to determine the wave exication force
DO iBody = 1,p%NBody
IF ( p%ExctnDisp == 1 ) THEN
@@ -1959,11 +1964,13 @@ SUBROUTINE WAMIT_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat, Er
bodyPosition(1) = bodyPosition(1) - (refBodyPosition(1) - u%Mesh%Position(1,iBody))
bodyPosition(2) = bodyPosition(2) - (refBodyPosition(2) - u%Mesh%Position(2,iBody))
- iStart = (iBody-1)*6+1
+ indxStart = p%BDOFStrt(iBody)
+ indxEnd = indxStart+5+p%NAddDOF(iBody)
! WaveExctnGrid dimensions are: 1st: wavetime, 2nd: X, 3rd: Y, 4th: PRP yaw offset, 5th: Force component for each WAMIT Body
- m%F_Waves1(iStart:iStart+5) = WAMIT_ForceWaves_Interp( Time, bodyPosition, p%WaveExctnGrid(:,:,:,:,iStart:iStart+5), p%ExctnGridParams, m%WaveField_m, ErrStat2, ErrMsg2 )
+ m%F_Waves1(indxStart:indxEnd) = WAMIT_ForceWaves_Interp( 6+p%NAddDOF(iBody), Time, bodyPosition, p%WaveExctnGrid(:,:,:,:,indxStart:indxEnd), p%ExctnGridParams, m%WaveField_m, ErrStat2, ErrMsg2 )
call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
END DO
+
end if
else if ( p%ExctnMod == 2 ) then
@@ -1975,7 +1982,7 @@ SUBROUTINE WAMIT_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat, Er
end if
-
+ AddDOFCntr = 0_IntKi
do iBody = 1, p%NBody
! Determine the rotational angles from the direction-cosine matrix
@@ -2001,10 +2008,10 @@ SUBROUTINE WAMIT_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat, Er
FrstWarn_LrgY = .FALSE.
END IF
- indxStart = (iBody-1)*6+1
+ indxStart = p%BDOFStrt(iBody)
indxEnd = indxStart+5
- ! Displacement with Tait-Bryan angles following the Z-Y-X convention
+ ! Displacement with Tait-Bryan angles following the intrinsic Z-Y-X convention
q(indxStart:indxEnd) = reshape((/real(u%Mesh%TranslationDisp(:,iBody),ReKi),rotdisp(:)/),(/6/))
! Get velocity and acceleration in the heading frame
@@ -2014,6 +2021,15 @@ SUBROUTINE WAMIT_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat, Er
call hiFrameTransform( i2h, u%PtfmRefY, u%Mesh%TranslationAcc(:,iBody), tmpVec6(1:3), ErrStat2, ErrMsg2)
call hiFrameTransform( i2h, u%PtfmRefY, u%Mesh%RotationAcc(:,iBody), tmpVec6(4:6), ErrStat2, ErrMsg2)
qdotdot(indxStart:indxEnd) = tmpVec6
+
+ if ( p%NAddDOF(iBody) > 0_IntKi ) then
+ indxStart = p%BDOFStrt(iBody) + 6
+ indxEnd = indxStart - 1 + p%NAddDOF(iBody)
+ q (indxStart:indxEnd) = u%qAddDOF (AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iBody))
+ qdot (indxStart:indxEnd) = u%qAddDOFDot (AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iBody))
+ qdotdot(indxStart:indxEnd) = u%qAddDOFDotDot(AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iBody))
+ AddDOFCntr = AddDOFCntr + p%NAddDOF(iBody)
+ end if
end do
@@ -2022,24 +2038,31 @@ SUBROUTINE WAMIT_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat, Er
! m%F_HS = -matmul(p%HdroSttc,q)
m%F_HS = 0.
do iBody = 1, p%NBody
- indxStart = (iBody-1)*6+1
- indxEnd = indxStart+5
+ indxStart = p%BDOFStrt(iBody)
+ indxEnd = p%BDOFStrt(iBody)+5
m%F_HS((indxStart+2):(indxEnd-1)) = -matmul(p%HdroSttc((indxStart+2):(indxEnd-1),(indxStart+2):(indxEnd-1)),&
q((indxStart+2):(indxEnd-1)))
+ if ( p%NAddDOF(iBody) > 0_IntKi ) then
+ m%F_HS((indxEnd+1):(indxEnd+p%NAddDOF(iBody))) = -matmul(p%HdroSttc((indxEnd+1):(indxEnd+p%NAddDOF(iBody)),(indxStart+2):(indxEnd-1)), &
+ q((indxStart+2):(indxEnd-1)))
+ m%F_HS(indxStart:indxEnd+p%NAddDOF(iBody)) = m%F_HS(indxStart:indxEnd+p%NAddDOF(iBody)) &
+ -matmul(p%HdroSttc(indxStart:indxEnd+p%NAddDOF(iBody),(indxEnd+1):(indxEnd+p%NAddDOF(iBody))), &
+ q((indxEnd+1):(indxEnd+p%NAddDOF(iBody))))
+ end if
m%F_HS(indxStart:indxEnd) = m%F_HS(indxStart:indxEnd) + p%F_HS_Moment_Offset(:,iBody)
end do
! Transform hydrostatic loads back to the inertial frame
do iBody = 1, p%NBody
- indxStart = (iBody-1)*6+1
+ indxStart = p%BDOFStrt(iBody)
indxEnd = indxStart+2
! call hiFrameTransform( h2i, u%PtfmRefY, m%F_HS(indxStart:indxEnd), tmpVec3, ErrStat2, ErrMsg2 )
- call hiFrameTransform( h2i, q(iBody*6), m%F_HS(indxStart:indxEnd), tmpVec3, ErrStat2, ErrMsg2 )
+ call hiFrameTransform( h2i, q(p%BDOFStrt(iBody)+5), m%F_HS(indxStart:indxEnd), tmpVec3, ErrStat2, ErrMsg2 )
m%F_HS(indxStart:indxEnd) = tmpVec3
indxStart = indxEnd+1
indxEnd = indxStart+2
! call hiFrameTransform( h2i, u%PtfmRefY, m%F_HS(indxStart:indxEnd), tmpVec3, ErrStat2, ErrMsg2 )
- call hiFrameTransform( h2i, q(iBody*6), m%F_HS(indxStart:indxEnd), tmpVec3, ErrStat2, ErrMsg2 )
+ call hiFrameTransform( h2i, q(p%BDOFStrt(iBody)+5), m%F_HS(indxStart:indxEnd), tmpVec3, ErrStat2, ErrMsg2 )
m%F_HS(indxStart:indxEnd) = tmpVec3
end do
@@ -2052,7 +2075,7 @@ SUBROUTINE WAMIT_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat, Er
CALL Conv_Rdtn_CalcOutput( Time, m%Conv_Rdtn_u, p%Conv_Rdtn, x%Conv_Rdtn, xd%Conv_Rdtn, &
z%Conv_Rdtn, OtherState%Conv_Rdtn, m%Conv_Rdtn_y, m%Conv_Rdtn, ErrStat2, ErrMsg2 )
call SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
- m%F_Rdtn (:) = m%Conv_Rdtn_y%F_Rdtn
+ m%F_Rdtn (:) = m%Conv_Rdtn_y%F_Rdtn
ELSE IF ( p%RdtnMod == 2 ) THEN
m%SS_Rdtn_u%dq = qdot
@@ -2069,7 +2092,7 @@ SUBROUTINE WAMIT_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat, Er
END IF
do iBody = 1, p%NBody
- indxStart = (iBody-1)*6+1
+ indxStart = p%BDOFStrt(iBody)
indxEnd = indxStart+2
call hiFrameTransform( h2i, u%PtfmRefY, m%F_Rdtn(indxStart:indxEnd), tmpVec3, ErrStat2, ErrMsg2 )
m%F_Rdtn(indxStart:indxEnd) = tmpVec3
@@ -2090,7 +2113,7 @@ SUBROUTINE WAMIT_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat, Er
m%F_PtfmAM = -matmul(p%HdroAdMsI, qdotdot) ! In h-frame
do iBody = 1, p%NBody
- indxStart = (iBody-1)*6+1
+ indxStart = p%BDOFStrt(iBody)
indxEnd = indxStart+2
call hiFrameTransform( h2i, u%PtfmRefY, m%F_PtfmAM(indxStart:indxEnd), tmpVec3, ErrStat2, ErrMsg2 )
m%F_PtfmAM(indxStart:indxEnd) = tmpVec3
@@ -2102,15 +2125,21 @@ SUBROUTINE WAMIT_CalcOutput( Time, u, p, x, xd, z, OtherState, y, m, ErrStat, Er
end do
! Compute outputs here:
+ AddDOFCntr = 0_IntKi
do iBody = 1, p%NBody
- indxStart = (iBody-1)*6
-
+ indxStart = p%BDOFStrt(iBody) - 1_IntKi
DO I=1,3
y%Mesh%Force(I,iBody) = m%F_PtfmAM(indxStart+I) + m%F_Rdtn(indxStart+I) + m%F_Waves1(indxStart+I) + m%F_HS(indxStart+I)
END DO
DO I=1,3
y%Mesh%Moment(I,iBody) = m%F_PtfmAM(indxStart+I+3) + m%F_Rdtn(indxStart+I+3) + m%F_Waves1(indxStart+I+3) + m%F_HS(indxStart+I+3)
END DO
+ IF (p%NAddDOF(iBody) > 0_IntKi) THEN
+ indxStart = p%BDOFStrt(iBody) + 6_IntKi
+ indxEnd = p%BDOFStrt(iBody) + 5_IntKi + p%NAddDOF(iBody)
+ y%FAddDOF(AddDOFCntr+1_IntKi:AddDOFCntr+p%NAddDOF(iBody)) = m%F_PtfmAM(indxStart:indxEnd) + m%F_Rdtn(indxStart:indxEnd) + m%F_Waves1(indxStart:indxEnd) + m%F_HS(indxStart:indxEnd)
+ AddDOFCntr = AddDOFCntr + p%NAddDOF(iBody)
+ END IF
end do
@@ -2188,7 +2217,7 @@ SUBROUTINE WAMIT_UpdateDiscState( Time, n, u, p, x, xd, z, OtherState, m, ErrSta
integer(IntKi) :: iBody ! WAMIT body index
integer(IntKi) :: indxStart, indxEnd ! Starting and ending indices for the iBody_th sub vector in an NBody long vector
-
+ integer(IntKi) :: AddDOFCntr ! Counter for additional DOF
REAL(ReKi) :: tmpVec6(6)
! Initialize ErrStat
@@ -2198,13 +2227,20 @@ SUBROUTINE WAMIT_UpdateDiscState( Time, n, u, p, x, xd, z, OtherState, m, ErrSta
! Update discrete states here:
- IF ( p%RdtnMod == 1 ) THEN ! .TRUE. when we will be modeling wave radiation damping.
+ IF ( p%RdtnMod == 1 ) THEN ! .TRUE. when we will be modeling wave radiation damping.
+ AddDOFCntr = 0_IntKi
do iBody=1,p%NBody
- indxStart = (iBody-1)*6+1
+ indxStart = p%BDOFStrt(iBody)
indxEnd = indxStart+5
call hiFrameTransform( i2h, u%PtfmRefY, u%Mesh%TranslationVel(:,iBody), tmpVec6(1:3), ErrStat, ErrMsg)
call hiFrameTransform( i2h, u%PtfmRefY, u%Mesh%RotationVel(:,iBody), tmpVec6(4:6), ErrStat, ErrMsg)
m%Conv_Rdtn_u%Velocity(indxStart:indxEnd) = tmpVec6
+ if ( p%NAddDOF(iBody) > 0_IntKi ) then
+ indxStart = p%BDOFStrt(iBody)+6
+ indxEnd = indxStart-1+p%NAddDOF(iBody)
+ m%Conv_Rdtn_u%Velocity(indxStart:indxEnd) = u%qAddDOFDot(AddDOFCntr+1:AddDOFCntr+p%NAddDOF(iBody))
+ AddDOFCntr = AddDOFCntr + p%NAddDOF(iBody)
+ end if
end do
CALL Conv_Rdtn_UpdateDiscState( Time, n, m%Conv_Rdtn_u, p%Conv_Rdtn, x%Conv_Rdtn, xd%Conv_Rdtn, z%Conv_Rdtn, &
OtherState%Conv_Rdtn, m%Conv_Rdtn, ErrStat, ErrMsg )
diff --git a/modules/hydrodyn/src/WAMIT.txt b/modules/hydrodyn/src/WAMIT.txt
index f826ab565a..13bb2e67f1 100644
--- a/modules/hydrodyn/src/WAMIT.txt
+++ b/modules/hydrodyn/src/WAMIT.txt
@@ -31,6 +31,7 @@ typedef ^ ^ ReKi
typedef ^ ^ R8Ki PtfmRefztRot {:} - - "The rotation about zt of the body reference frame(s) from xt/yt" radians
typedef ^ ^ ReKi PtfmCOBxt {:} - - "" -
typedef ^ ^ ReKi PtfmCOByt {:} - - "" -
+typedef ^ ^ INTEGER NAddDOF {:} - - "Number of additional generalized degrees of freedom" -
typedef ^ ^ INTEGER RdtnMod - - - "" -
typedef ^ ^ INTEGER ExctnMod - - - "" -
typedef ^ ^ INTEGER ExctnDisp - - - "0: use undisplaced position, 1: use displaced position, 2: use low-pass filtered displaced position) [only used when PotMod=1 and ExctnMod>0]" -
@@ -104,6 +105,10 @@ typedef ^ ^ GridInterp_
#
typedef ^ ParameterType INTEGER NBody - - - "[>=1; only used when PotMod=1. If NBodyMod=1, the WAMIT data contains a vector of size 6*NBody x 1 and matrices of size 6*NBody x 6*NBody; if NBodyMod>1, there are NBody sets of WAMIT data each with a vector of size 6 x 1 and matrices of size 6 x 6]" -
typedef ^ ^ INTEGER NBodyMod - - - "Body coupling model {1: include coupling terms between each body and NBody in HydroDyn equals NBODY in WAMIT, 2: neglect coupling terms between each body and NBODY=1 with XBODY=0 in WAMIT, 3: Neglect coupling terms between each body and NBODY=1 with XBODY=/0 in WAMIT} (switch) [only used when PotMod=1]" -
+typedef ^ ^ LOGICAL HasAddDOF - - - ".TRUE. if additional generalized DOF are present, .FALSE. otherwise" -
+typedef ^ ^ INTEGER NAddDOF {:} - - "Number of additional generalized degrees of freedom" -
+typedef ^ ^ INTEGER NDOF - - - "Total number of degrees of freedom" -
+typedef ^ ^ INTEGER BDOFStrt {:} - - "Starting DOF index for each body" -
typedef ^ ^ ReKi F_HS_Moment_Offset {:}{:} - - "The offset moment due to the COB being offset from the WAMIT body's local location {matrix 3xNBody}" N-m
typedef ^ ^ SiKi HdroAdMsI {:}{:} - - "" (sec)
typedef ^ ^ SiKi HdroSttc {:}{:} - - "" -
@@ -127,10 +132,14 @@ typedef ^ ^ GridInterp_
# ..... Inputs ....................................................................................................................
# Define inputs that are contained on the mesh here:
#
-typedef ^ InputType MeshType Mesh - - - "Displacements at the WAMIT reference point in the inertial frame" -
-typedef ^ ^ ReKi PtfmRefY - - - "Reference yaw offset" (rad)
+typedef ^ InputType MeshType Mesh - - - "Displacements at the WAMIT reference point in the inertial frame" -
+typedef ^ ^ ReKi PtfmRefY - - - "Reference yaw offset" (rad)
+typedef ^ ^ ReKi qAddDOF {:} - - "Displacement of generalized DOF" -
+typedef ^ ^ ReKi qAddDOFDot {:} - - "Velocity of generalized DOF" -
+typedef ^ ^ ReKi qAddDOFDotDot {:} - - "Acceleration of generalized DOF" -
#
#
# ..... Outputs ...................................................................................................................
# Define outputs that are contained on the mesh here:
-typedef ^ OutputType MeshType Mesh - - - "Loads at the WAMIT reference point in the inertial frame" -
+typedef ^ OutputType MeshType Mesh - - - "Loads at the WAMIT reference point in the inertial frame" -
+typedef ^ ^ ReKi FAddDOF {:} - - "Additional generalized DOF forcing " -
diff --git a/modules/hydrodyn/src/WAMIT_Interp.f90 b/modules/hydrodyn/src/WAMIT_Interp.f90
index a41191bcf4..157aa9dc91 100644
--- a/modules/hydrodyn/src/WAMIT_Interp.f90
+++ b/modules/hydrodyn/src/WAMIT_Interp.f90
@@ -30,7 +30,7 @@ MODULE WAMIT_Interp
USE NWTC_Library
use GridInterp_Types, only: GridInterp_ParameterType, GridInterp_MiscVarType
- use GridInterp, only: GridInterpSetup3D, GridInterpSetup4D, GridInterp3DVec6, GridInterp4DVec6
+ use GridInterp, only: GridInterpSetup3D, GridInterpSetup4D, GridInterp3DVec6, GridInterp4DVec6, GridInterp4DVecN
IMPLICIT NONE
@@ -48,6 +48,7 @@ MODULE WAMIT_Interp
interface WAMIT_ForceWaves_Interp
module procedure WAMIT_ForceWaves_Interp_3D_vec6
module procedure WAMIT_ForceWaves_Interp_4D_vec6
+ module procedure WAMIT_ForceWaves_Interp_4D_vecN
end interface
CONTAINS
@@ -687,5 +688,26 @@ function WAMIT_ForceWaves_Interp_4D_vec6(Time, pos, pKinXX, WF_p, WF_m, ErrStat3
end function
+!> retrieve indices from the WaveField info, and do interpolation for this point. This is for interpolating on 4D
+!! NOTE: the WAMIT field passed in here through pKinXX is based on WaveField sizing, which is why we can do this.
+function WAMIT_ForceWaves_Interp_4D_vecN(N, Time, pos, pKinXX, WF_p, WF_m, ErrStat3, ErrMsg3)
+ integer(IntKi), intent(in ) :: N
+ real(DbKi), intent(in ) :: Time
+ real(ReKi), intent(in ) :: pos(3) !< position
+ real(SiKi), intent(in ) :: pKinXX(0:,:,:,:,:) !< 4D Wave excitation data (SiKi for storage space reasons)
+ type(GridInterp_ParameterType), intent(in ) :: WF_p !< wavefield parameters
+ type(GridInterp_MiscVarType), intent(inout) :: WF_m !< wavefield misc/optimization variables
+ integer(IntKi), intent( out) :: ErrStat3
+ character(*), intent( out) :: ErrMsg3
+
+ real(SiKi) :: WAMIT_ForceWaves_Interp_4D_vecN(N)
+
+ ! get the bounding indices from the WaveField info (same indexing used in WAMIT)
+ call GridInterpSetup4D( (/Real(Time,ReKi),pos(1),pos(2),pos(3)/), WF_p, WF_m, ErrStat3, ErrMsg3 )
+ WAMIT_ForceWaves_Interp_4D_vecN = GridInterp4DVecN( N, pKinXX, WF_m )
+
+end function
+
+
!----------------------------------------------------------------------------------------------------------------------------------
END MODULE WAMIT_Interp
diff --git a/modules/hydrodyn/src/WAMIT_Types.f90 b/modules/hydrodyn/src/WAMIT_Types.f90
index 251a720b0b..7d850c9599 100644
--- a/modules/hydrodyn/src/WAMIT_Types.f90
+++ b/modules/hydrodyn/src/WAMIT_Types.f90
@@ -50,6 +50,7 @@ MODULE WAMIT_Types
REAL(R8Ki) , DIMENSION(:), ALLOCATABLE :: PtfmRefztRot !< The rotation about zt of the body reference frame(s) from xt/yt [radians]
REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: PtfmCOBxt !< [-]
REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: PtfmCOByt !< [-]
+ INTEGER(IntKi) , DIMENSION(:), ALLOCATABLE :: NAddDOF !< Number of additional generalized degrees of freedom [-]
INTEGER(IntKi) :: RdtnMod = 0_IntKi !< [-]
INTEGER(IntKi) :: ExctnMod = 0_IntKi !< [-]
INTEGER(IntKi) :: ExctnDisp = 0_IntKi !< 0: use undisplaced position, 1: use displaced position, 2: use low-pass filtered displaced position) [only used when PotMod=1 and ExctnMod>0] [-]
@@ -116,6 +117,10 @@ MODULE WAMIT_Types
TYPE, PUBLIC :: WAMIT_ParameterType
INTEGER(IntKi) :: NBody = 0_IntKi !< [>=1; only used when PotMod=1. If NBodyMod=1, the WAMIT data contains a vector of size 6*NBody x 1 and matrices of size 6*NBody x 6*NBody; if NBodyMod>1, there are NBody sets of WAMIT data each with a vector of size 6 x 1 and matrices of size 6 x 6] [-]
INTEGER(IntKi) :: NBodyMod = 0_IntKi !< Body coupling model {1: include coupling terms between each body and NBody in HydroDyn equals NBODY in WAMIT, 2: neglect coupling terms between each body and NBODY=1 with XBODY=0 in WAMIT, 3: Neglect coupling terms between each body and NBODY=1 with XBODY=/0 in WAMIT} (switch) [only used when PotMod=1] [-]
+ LOGICAL :: HasAddDOF = .false. !< .TRUE. if additional generalized DOF are present, .FALSE. otherwise [-]
+ INTEGER(IntKi) , DIMENSION(:), ALLOCATABLE :: NAddDOF !< Number of additional generalized degrees of freedom [-]
+ INTEGER(IntKi) :: NDOF = 0_IntKi !< Total number of degrees of freedom [-]
+ INTEGER(IntKi) , DIMENSION(:), ALLOCATABLE :: BDOFStrt !< Starting DOF index for each body [-]
REAL(ReKi) , DIMENSION(:,:), ALLOCATABLE :: F_HS_Moment_Offset !< The offset moment due to the COB being offset from the WAMIT body's local location {matrix 3xNBody} [N-m]
REAL(SiKi) , DIMENSION(:,:), ALLOCATABLE :: HdroAdMsI !< [(sec)]
REAL(SiKi) , DIMENSION(:,:), ALLOCATABLE :: HdroSttc !< [-]
@@ -140,11 +145,15 @@ MODULE WAMIT_Types
TYPE, PUBLIC :: WAMIT_InputType
TYPE(MeshType) :: Mesh !< Displacements at the WAMIT reference point in the inertial frame [-]
REAL(ReKi) :: PtfmRefY = 0.0_ReKi !< Reference yaw offset [(rad)]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: qAddDOF !< Displacement of generalized DOF [-]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: qAddDOFDot !< Velocity of generalized DOF [-]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: qAddDOFDotDot !< Acceleration of generalized DOF [-]
END TYPE WAMIT_InputType
! =======================
! ========= WAMIT_OutputType =======
TYPE, PUBLIC :: WAMIT_OutputType
TYPE(MeshType) :: Mesh !< Loads at the WAMIT reference point in the inertial frame [-]
+ REAL(ReKi) , DIMENSION(:), ALLOCATABLE :: FAddDOF !< Additional generalized DOF forcing [-]
END TYPE WAMIT_OutputType
! =======================
integer(IntKi), public, parameter :: WAMIT_x_SS_Rdtn_x = 1 ! WAMIT%SS_Rdtn%x
@@ -152,7 +161,11 @@ MODULE WAMIT_Types
integer(IntKi), public, parameter :: WAMIT_x_Conv_Rdtn_DummyContState = 3 ! WAMIT%Conv_Rdtn%DummyContState
integer(IntKi), public, parameter :: WAMIT_u_Mesh = 4 ! WAMIT%Mesh
integer(IntKi), public, parameter :: WAMIT_u_PtfmRefY = 5 ! WAMIT%PtfmRefY
- integer(IntKi), public, parameter :: WAMIT_y_Mesh = 6 ! WAMIT%Mesh
+ integer(IntKi), public, parameter :: WAMIT_u_qAddDOF = 6 ! WAMIT%qAddDOF
+ integer(IntKi), public, parameter :: WAMIT_u_qAddDOFDot = 7 ! WAMIT%qAddDOFDot
+ integer(IntKi), public, parameter :: WAMIT_u_qAddDOFDotDot = 8 ! WAMIT%qAddDOFDotDot
+ integer(IntKi), public, parameter :: WAMIT_y_Mesh = 9 ! WAMIT%Mesh
+ integer(IntKi), public, parameter :: WAMIT_y_FAddDOF = 10 ! WAMIT%FAddDOF
contains
@@ -257,6 +270,18 @@ subroutine WAMIT_CopyInitInput(SrcInitInputData, DstInitInputData, CtrlCode, Err
end if
DstInitInputData%PtfmCOByt = SrcInitInputData%PtfmCOByt
end if
+ if (allocated(SrcInitInputData%NAddDOF)) then
+ LB(1:1) = lbound(SrcInitInputData%NAddDOF)
+ UB(1:1) = ubound(SrcInitInputData%NAddDOF)
+ if (.not. allocated(DstInitInputData%NAddDOF)) then
+ allocate(DstInitInputData%NAddDOF(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstInitInputData%NAddDOF.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstInitInputData%NAddDOF = SrcInitInputData%NAddDOF
+ end if
DstInitInputData%RdtnMod = SrcInitInputData%RdtnMod
DstInitInputData%ExctnMod = SrcInitInputData%ExctnMod
DstInitInputData%ExctnDisp = SrcInitInputData%ExctnDisp
@@ -303,6 +328,9 @@ subroutine WAMIT_DestroyInitInput(InitInputData, ErrStat, ErrMsg)
if (allocated(InitInputData%PtfmCOByt)) then
deallocate(InitInputData%PtfmCOByt)
end if
+ if (allocated(InitInputData%NAddDOF)) then
+ deallocate(InitInputData%NAddDOF)
+ end if
call Conv_Rdtn_DestroyInitInput(InitInputData%Conv_Rdtn, ErrStat2, ErrMsg2)
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
nullify(InitInputData%WaveField)
@@ -326,6 +354,7 @@ subroutine WAMIT_PackInitInput(RF, Indata)
call RegPackAlloc(RF, InData%PtfmRefztRot)
call RegPackAlloc(RF, InData%PtfmCOBxt)
call RegPackAlloc(RF, InData%PtfmCOByt)
+ call RegPackAlloc(RF, InData%NAddDOF)
call RegPack(RF, InData%RdtnMod)
call RegPack(RF, InData%ExctnMod)
call RegPack(RF, InData%ExctnDisp)
@@ -369,6 +398,7 @@ subroutine WAMIT_UnPackInitInput(RF, OutData)
call RegUnpackAlloc(RF, OutData%PtfmRefztRot); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%PtfmCOBxt); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%PtfmCOByt); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%NAddDOF); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%RdtnMod); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%ExctnMod); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%ExctnDisp); if (RegCheckErr(RF, RoutineName)) return
@@ -859,6 +889,32 @@ subroutine WAMIT_CopyParam(SrcParamData, DstParamData, CtrlCode, ErrStat, ErrMsg
ErrMsg = ''
DstParamData%NBody = SrcParamData%NBody
DstParamData%NBodyMod = SrcParamData%NBodyMod
+ DstParamData%HasAddDOF = SrcParamData%HasAddDOF
+ if (allocated(SrcParamData%NAddDOF)) then
+ LB(1:1) = lbound(SrcParamData%NAddDOF)
+ UB(1:1) = ubound(SrcParamData%NAddDOF)
+ if (.not. allocated(DstParamData%NAddDOF)) then
+ allocate(DstParamData%NAddDOF(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%NAddDOF.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstParamData%NAddDOF = SrcParamData%NAddDOF
+ end if
+ DstParamData%NDOF = SrcParamData%NDOF
+ if (allocated(SrcParamData%BDOFStrt)) then
+ LB(1:1) = lbound(SrcParamData%BDOFStrt)
+ UB(1:1) = ubound(SrcParamData%BDOFStrt)
+ if (.not. allocated(DstParamData%BDOFStrt)) then
+ allocate(DstParamData%BDOFStrt(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstParamData%BDOFStrt.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstParamData%BDOFStrt = SrcParamData%BDOFStrt
+ end if
if (allocated(SrcParamData%F_HS_Moment_Offset)) then
LB(1:2) = lbound(SrcParamData%F_HS_Moment_Offset)
UB(1:2) = ubound(SrcParamData%F_HS_Moment_Offset)
@@ -951,6 +1007,12 @@ subroutine WAMIT_DestroyParam(ParamData, ErrStat, ErrMsg)
character(*), parameter :: RoutineName = 'WAMIT_DestroyParam'
ErrStat = ErrID_None
ErrMsg = ''
+ if (allocated(ParamData%NAddDOF)) then
+ deallocate(ParamData%NAddDOF)
+ end if
+ if (allocated(ParamData%BDOFStrt)) then
+ deallocate(ParamData%BDOFStrt)
+ end if
if (allocated(ParamData%F_HS_Moment_Offset)) then
deallocate(ParamData%F_HS_Moment_Offset)
end if
@@ -985,6 +1047,10 @@ subroutine WAMIT_PackParam(RF, Indata)
if (RF%ErrStat >= AbortErrLev) return
call RegPack(RF, InData%NBody)
call RegPack(RF, InData%NBodyMod)
+ call RegPack(RF, InData%HasAddDOF)
+ call RegPackAlloc(RF, InData%NAddDOF)
+ call RegPack(RF, InData%NDOF)
+ call RegPackAlloc(RF, InData%BDOFStrt)
call RegPackAlloc(RF, InData%F_HS_Moment_Offset)
call RegPackAlloc(RF, InData%HdroAdMsI)
call RegPackAlloc(RF, InData%HdroSttc)
@@ -1024,6 +1090,10 @@ subroutine WAMIT_UnPackParam(RF, OutData)
if (RF%ErrStat /= ErrID_None) return
call RegUnpack(RF, OutData%NBody); if (RegCheckErr(RF, RoutineName)) return
call RegUnpack(RF, OutData%NBodyMod); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%HasAddDOF); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%NAddDOF); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpack(RF, OutData%NDOF); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%BDOFStrt); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%F_HS_Moment_Offset); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%HdroAdMsI); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%HdroSttc); if (RegCheckErr(RF, RoutineName)) return
@@ -1067,6 +1137,7 @@ subroutine WAMIT_CopyInput(SrcInputData, DstInputData, CtrlCode, ErrStat, ErrMsg
integer(IntKi), intent(in ) :: CtrlCode
integer(IntKi), intent( out) :: ErrStat
character(*), intent( out) :: ErrMsg
+ integer(B4Ki) :: LB(1), UB(1)
integer(IntKi) :: ErrStat2
character(ErrMsgLen) :: ErrMsg2
character(*), parameter :: RoutineName = 'WAMIT_CopyInput'
@@ -1076,6 +1147,42 @@ subroutine WAMIT_CopyInput(SrcInputData, DstInputData, CtrlCode, ErrStat, ErrMsg
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
if (ErrStat >= AbortErrLev) return
DstInputData%PtfmRefY = SrcInputData%PtfmRefY
+ if (allocated(SrcInputData%qAddDOF)) then
+ LB(1:1) = lbound(SrcInputData%qAddDOF)
+ UB(1:1) = ubound(SrcInputData%qAddDOF)
+ if (.not. allocated(DstInputData%qAddDOF)) then
+ allocate(DstInputData%qAddDOF(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstInputData%qAddDOF.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstInputData%qAddDOF = SrcInputData%qAddDOF
+ end if
+ if (allocated(SrcInputData%qAddDOFDot)) then
+ LB(1:1) = lbound(SrcInputData%qAddDOFDot)
+ UB(1:1) = ubound(SrcInputData%qAddDOFDot)
+ if (.not. allocated(DstInputData%qAddDOFDot)) then
+ allocate(DstInputData%qAddDOFDot(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstInputData%qAddDOFDot.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstInputData%qAddDOFDot = SrcInputData%qAddDOFDot
+ end if
+ if (allocated(SrcInputData%qAddDOFDotDot)) then
+ LB(1:1) = lbound(SrcInputData%qAddDOFDotDot)
+ UB(1:1) = ubound(SrcInputData%qAddDOFDotDot)
+ if (.not. allocated(DstInputData%qAddDOFDotDot)) then
+ allocate(DstInputData%qAddDOFDotDot(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstInputData%qAddDOFDotDot.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstInputData%qAddDOFDotDot = SrcInputData%qAddDOFDotDot
+ end if
end subroutine
subroutine WAMIT_DestroyInput(InputData, ErrStat, ErrMsg)
@@ -1089,6 +1196,15 @@ subroutine WAMIT_DestroyInput(InputData, ErrStat, ErrMsg)
ErrMsg = ''
call MeshDestroy( InputData%Mesh, ErrStat2, ErrMsg2)
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ if (allocated(InputData%qAddDOF)) then
+ deallocate(InputData%qAddDOF)
+ end if
+ if (allocated(InputData%qAddDOFDot)) then
+ deallocate(InputData%qAddDOFDot)
+ end if
+ if (allocated(InputData%qAddDOFDotDot)) then
+ deallocate(InputData%qAddDOFDotDot)
+ end if
end subroutine
subroutine WAMIT_PackInput(RF, Indata)
@@ -1098,6 +1214,9 @@ subroutine WAMIT_PackInput(RF, Indata)
if (RF%ErrStat >= AbortErrLev) return
call MeshPack(RF, InData%Mesh)
call RegPack(RF, InData%PtfmRefY)
+ call RegPackAlloc(RF, InData%qAddDOF)
+ call RegPackAlloc(RF, InData%qAddDOFDot)
+ call RegPackAlloc(RF, InData%qAddDOFDotDot)
if (RegCheckErr(RF, RoutineName)) return
end subroutine
@@ -1105,9 +1224,15 @@ subroutine WAMIT_UnPackInput(RF, OutData)
type(RegFile), intent(inout) :: RF
type(WAMIT_InputType), intent(inout) :: OutData
character(*), parameter :: RoutineName = 'WAMIT_UnPackInput'
+ integer(B4Ki) :: LB(1), UB(1)
+ integer(IntKi) :: stat
+ logical :: IsAllocAssoc
if (RF%ErrStat /= ErrID_None) return
call MeshUnpack(RF, OutData%Mesh) ! Mesh
call RegUnpack(RF, OutData%PtfmRefY); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%qAddDOF); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%qAddDOFDot); if (RegCheckErr(RF, RoutineName)) return
+ call RegUnpackAlloc(RF, OutData%qAddDOFDotDot); if (RegCheckErr(RF, RoutineName)) return
end subroutine
subroutine WAMIT_CopyOutput(SrcOutputData, DstOutputData, CtrlCode, ErrStat, ErrMsg)
@@ -1116,6 +1241,7 @@ subroutine WAMIT_CopyOutput(SrcOutputData, DstOutputData, CtrlCode, ErrStat, Err
integer(IntKi), intent(in ) :: CtrlCode
integer(IntKi), intent( out) :: ErrStat
character(*), intent( out) :: ErrMsg
+ integer(B4Ki) :: LB(1), UB(1)
integer(IntKi) :: ErrStat2
character(ErrMsgLen) :: ErrMsg2
character(*), parameter :: RoutineName = 'WAMIT_CopyOutput'
@@ -1124,6 +1250,18 @@ subroutine WAMIT_CopyOutput(SrcOutputData, DstOutputData, CtrlCode, ErrStat, Err
call MeshCopy(SrcOutputData%Mesh, DstOutputData%Mesh, CtrlCode, ErrStat2, ErrMsg2 )
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
if (ErrStat >= AbortErrLev) return
+ if (allocated(SrcOutputData%FAddDOF)) then
+ LB(1:1) = lbound(SrcOutputData%FAddDOF)
+ UB(1:1) = ubound(SrcOutputData%FAddDOF)
+ if (.not. allocated(DstOutputData%FAddDOF)) then
+ allocate(DstOutputData%FAddDOF(LB(1):UB(1)), stat=ErrStat2)
+ if (ErrStat2 /= 0) then
+ call SetErrStat(ErrID_Fatal, 'Error allocating DstOutputData%FAddDOF.', ErrStat, ErrMsg, RoutineName)
+ return
+ end if
+ end if
+ DstOutputData%FAddDOF = SrcOutputData%FAddDOF
+ end if
end subroutine
subroutine WAMIT_DestroyOutput(OutputData, ErrStat, ErrMsg)
@@ -1137,6 +1275,9 @@ subroutine WAMIT_DestroyOutput(OutputData, ErrStat, ErrMsg)
ErrMsg = ''
call MeshDestroy( OutputData%Mesh, ErrStat2, ErrMsg2)
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName)
+ if (allocated(OutputData%FAddDOF)) then
+ deallocate(OutputData%FAddDOF)
+ end if
end subroutine
subroutine WAMIT_PackOutput(RF, Indata)
@@ -1145,6 +1286,7 @@ subroutine WAMIT_PackOutput(RF, Indata)
character(*), parameter :: RoutineName = 'WAMIT_PackOutput'
if (RF%ErrStat >= AbortErrLev) return
call MeshPack(RF, InData%Mesh)
+ call RegPackAlloc(RF, InData%FAddDOF)
if (RegCheckErr(RF, RoutineName)) return
end subroutine
@@ -1152,8 +1294,12 @@ subroutine WAMIT_UnPackOutput(RF, OutData)
type(RegFile), intent(inout) :: RF
type(WAMIT_OutputType), intent(inout) :: OutData
character(*), parameter :: RoutineName = 'WAMIT_UnPackOutput'
+ integer(B4Ki) :: LB(1), UB(1)
+ integer(IntKi) :: stat
+ logical :: IsAllocAssoc
if (RF%ErrStat /= ErrID_None) return
call MeshUnpack(RF, OutData%Mesh) ! Mesh
+ call RegUnpackAlloc(RF, OutData%FAddDOF); if (RegCheckErr(RF, RoutineName)) return
end subroutine
subroutine WAMIT_Input_ExtrapInterp(u, t, u_out, t_out, ErrStat, ErrMsg)
@@ -1234,6 +1380,8 @@ SUBROUTINE WAMIT_Input_ExtrapInterp1(u1, u2, tin, u_out, tin_out, ErrStat, ErrMs
REAL(DbKi) :: a1, a2 ! temporary for extrapolation/interpolation
INTEGER(IntKi) :: ErrStat2 ! local errors
CHARACTER(ErrMsgLen) :: ErrMsg2 ! local errors
+ INTEGER :: i01 ! dim1 level 0 counter variable for arrays of ddts
+ INTEGER :: i1 ! dim1 counter variable for arrays
! Initialize ErrStat
ErrStat = ErrID_None
ErrMsg = ''
@@ -1254,6 +1402,15 @@ SUBROUTINE WAMIT_Input_ExtrapInterp1(u1, u2, tin, u_out, tin_out, ErrStat, ErrMs
CALL MeshExtrapInterp1(u1%Mesh, u2%Mesh, tin, u_out%Mesh, tin_out, ErrStat2, ErrMsg2)
CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
u_out%PtfmRefY = a1*u1%PtfmRefY + a2*u2%PtfmRefY
+ IF (ALLOCATED(u_out%qAddDOF) .AND. ALLOCATED(u1%qAddDOF)) THEN
+ u_out%qAddDOF = a1*u1%qAddDOF + a2*u2%qAddDOF
+ END IF ! check if allocated
+ IF (ALLOCATED(u_out%qAddDOFDot) .AND. ALLOCATED(u1%qAddDOFDot)) THEN
+ u_out%qAddDOFDot = a1*u1%qAddDOFDot + a2*u2%qAddDOFDot
+ END IF ! check if allocated
+ IF (ALLOCATED(u_out%qAddDOFDotDot) .AND. ALLOCATED(u1%qAddDOFDotDot)) THEN
+ u_out%qAddDOFDotDot = a1*u1%qAddDOFDotDot + a2*u2%qAddDOFDotDot
+ END IF ! check if allocated
END SUBROUTINE
SUBROUTINE WAMIT_Input_ExtrapInterp2(u1, u2, u3, tin, u_out, tin_out, ErrStat, ErrMsg )
@@ -1286,6 +1443,8 @@ SUBROUTINE WAMIT_Input_ExtrapInterp2(u1, u2, u3, tin, u_out, tin_out, ErrStat, E
INTEGER(IntKi) :: ErrStat2 ! local errors
CHARACTER(ErrMsgLen) :: ErrMsg2 ! local errors
CHARACTER(*), PARAMETER :: RoutineName = 'WAMIT_Input_ExtrapInterp2'
+ INTEGER :: i01 ! dim1 level 0 counter variable for arrays of ddts
+ INTEGER :: i1 ! dim1 counter variable for arrays
! Initialize ErrStat
ErrStat = ErrID_None
ErrMsg = ''
@@ -1312,6 +1471,15 @@ SUBROUTINE WAMIT_Input_ExtrapInterp2(u1, u2, u3, tin, u_out, tin_out, ErrStat, E
CALL MeshExtrapInterp2(u1%Mesh, u2%Mesh, u3%Mesh, tin, u_out%Mesh, tin_out, ErrStat2, ErrMsg2)
CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
u_out%PtfmRefY = a1*u1%PtfmRefY + a2*u2%PtfmRefY + a3*u3%PtfmRefY
+ IF (ALLOCATED(u_out%qAddDOF) .AND. ALLOCATED(u1%qAddDOF)) THEN
+ u_out%qAddDOF = a1*u1%qAddDOF + a2*u2%qAddDOF + a3*u3%qAddDOF
+ END IF ! check if allocated
+ IF (ALLOCATED(u_out%qAddDOFDot) .AND. ALLOCATED(u1%qAddDOFDot)) THEN
+ u_out%qAddDOFDot = a1*u1%qAddDOFDot + a2*u2%qAddDOFDot + a3*u3%qAddDOFDot
+ END IF ! check if allocated
+ IF (ALLOCATED(u_out%qAddDOFDotDot) .AND. ALLOCATED(u1%qAddDOFDotDot)) THEN
+ u_out%qAddDOFDotDot = a1*u1%qAddDOFDotDot + a2*u2%qAddDOFDotDot + a3*u3%qAddDOFDotDot
+ END IF ! check if allocated
END SUBROUTINE
subroutine WAMIT_Output_ExtrapInterp(y, t, y_out, t_out, ErrStat, ErrMsg)
@@ -1392,6 +1560,8 @@ SUBROUTINE WAMIT_Output_ExtrapInterp1(y1, y2, tin, y_out, tin_out, ErrStat, ErrM
REAL(DbKi) :: a1, a2 ! temporary for extrapolation/interpolation
INTEGER(IntKi) :: ErrStat2 ! local errors
CHARACTER(ErrMsgLen) :: ErrMsg2 ! local errors
+ INTEGER :: i01 ! dim1 level 0 counter variable for arrays of ddts
+ INTEGER :: i1 ! dim1 counter variable for arrays
! Initialize ErrStat
ErrStat = ErrID_None
ErrMsg = ''
@@ -1411,6 +1581,9 @@ SUBROUTINE WAMIT_Output_ExtrapInterp1(y1, y2, tin, y_out, tin_out, ErrStat, ErrM
CALL MeshExtrapInterp1(y1%Mesh, y2%Mesh, tin, y_out%Mesh, tin_out, ErrStat2, ErrMsg2)
CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
+ IF (ALLOCATED(y_out%FAddDOF) .AND. ALLOCATED(y1%FAddDOF)) THEN
+ y_out%FAddDOF = a1*y1%FAddDOF + a2*y2%FAddDOF
+ END IF ! check if allocated
END SUBROUTINE
SUBROUTINE WAMIT_Output_ExtrapInterp2(y1, y2, y3, tin, y_out, tin_out, ErrStat, ErrMsg )
@@ -1443,6 +1616,8 @@ SUBROUTINE WAMIT_Output_ExtrapInterp2(y1, y2, y3, tin, y_out, tin_out, ErrStat,
INTEGER(IntKi) :: ErrStat2 ! local errors
CHARACTER(ErrMsgLen) :: ErrMsg2 ! local errors
CHARACTER(*), PARAMETER :: RoutineName = 'WAMIT_Output_ExtrapInterp2'
+ INTEGER :: i01 ! dim1 level 0 counter variable for arrays of ddts
+ INTEGER :: i1 ! dim1 counter variable for arrays
! Initialize ErrStat
ErrStat = ErrID_None
ErrMsg = ''
@@ -1468,6 +1643,9 @@ SUBROUTINE WAMIT_Output_ExtrapInterp2(y1, y2, y3, tin, y_out, tin_out, ErrStat,
a3 = (t_out - t(1))*(t_out - t(2))/((t(3) - t(1))*(t(3) - t(2)))
CALL MeshExtrapInterp2(y1%Mesh, y2%Mesh, y3%Mesh, tin, y_out%Mesh, tin_out, ErrStat2, ErrMsg2)
CALL SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg,RoutineName)
+ IF (ALLOCATED(y_out%FAddDOF) .AND. ALLOCATED(y1%FAddDOF)) THEN
+ y_out%FAddDOF = a1*y1%FAddDOF + a2*y2%FAddDOF + a3*y3%FAddDOF
+ END IF ! check if allocated
END SUBROUTINE
function WAMIT_InputMeshPointer(u, DL) result(Mesh)
@@ -1609,6 +1787,12 @@ subroutine WAMIT_VarPackInput(V, u, ValAry)
call MV_PackMesh(V, u%Mesh, ValAry) ! Mesh
case (WAMIT_u_PtfmRefY)
VarVals(1) = u%PtfmRefY ! Scalar
+ case (WAMIT_u_qAddDOF)
+ VarVals = u%qAddDOF(V%iLB:V%iUB) ! Rank 1 Array
+ case (WAMIT_u_qAddDOFDot)
+ VarVals = u%qAddDOFDot(V%iLB:V%iUB) ! Rank 1 Array
+ case (WAMIT_u_qAddDOFDotDot)
+ VarVals = u%qAddDOFDotDot(V%iLB:V%iUB) ! Rank 1 Array
case default
VarVals = 0.0_R8Ki
end select
@@ -1635,6 +1819,12 @@ subroutine WAMIT_VarUnpackInput(V, ValAry, u)
call MV_UnpackMesh(V, ValAry, u%Mesh) ! Mesh
case (WAMIT_u_PtfmRefY)
u%PtfmRefY = VarVals(1) ! Scalar
+ case (WAMIT_u_qAddDOF)
+ u%qAddDOF(V%iLB:V%iUB) = VarVals ! Rank 1 Array
+ case (WAMIT_u_qAddDOFDot)
+ u%qAddDOFDot(V%iLB:V%iUB) = VarVals ! Rank 1 Array
+ case (WAMIT_u_qAddDOFDotDot)
+ u%qAddDOFDotDot(V%iLB:V%iUB) = VarVals ! Rank 1 Array
end select
end associate
end subroutine
@@ -1647,6 +1837,12 @@ function WAMIT_InputFieldName(DL) result(Name)
Name = "u%Mesh"
case (WAMIT_u_PtfmRefY)
Name = "u%PtfmRefY"
+ case (WAMIT_u_qAddDOF)
+ Name = "u%qAddDOF"
+ case (WAMIT_u_qAddDOFDot)
+ Name = "u%qAddDOFDot"
+ case (WAMIT_u_qAddDOFDotDot)
+ Name = "u%qAddDOFDotDot"
case default
Name = "Unknown Field"
end select
@@ -1670,6 +1866,8 @@ subroutine WAMIT_VarPackOutput(V, y, ValAry)
select case (DL%Num)
case (WAMIT_y_Mesh)
call MV_PackMesh(V, y%Mesh, ValAry) ! Mesh
+ case (WAMIT_y_FAddDOF)
+ VarVals = y%FAddDOF(V%iLB:V%iUB) ! Rank 1 Array
case default
VarVals = 0.0_R8Ki
end select
@@ -1694,6 +1892,8 @@ subroutine WAMIT_VarUnpackOutput(V, ValAry, y)
select case (DL%Num)
case (WAMIT_y_Mesh)
call MV_UnpackMesh(V, ValAry, y%Mesh) ! Mesh
+ case (WAMIT_y_FAddDOF)
+ y%FAddDOF(V%iLB:V%iUB) = VarVals ! Rank 1 Array
end select
end associate
end subroutine
@@ -1704,6 +1904,8 @@ function WAMIT_OutputFieldName(DL) result(Name)
select case (DL%Num)
case (WAMIT_y_Mesh)
Name = "y%Mesh"
+ case (WAMIT_y_FAddDOF)
+ Name = "y%FAddDOF"
case default
Name = "Unknown Field"
end select
diff --git a/modules/nwtc-library/src/GridInterp.f90 b/modules/nwtc-library/src/GridInterp.f90
index 3398ca5269..769b905fca 100644
--- a/modules/nwtc-library/src/GridInterp.f90
+++ b/modules/nwtc-library/src/GridInterp.f90
@@ -43,6 +43,11 @@ MODULE GridInterp
MODULE PROCEDURE GridInterp4DVec6R8
END INTERFACE
+INTERFACE GridInterp4DVecN
+ MODULE PROCEDURE GridInterp4DVecNR4
+ MODULE PROCEDURE GridInterp4DVecNR8
+END INTERFACE
+
INTERFACE GridInterpN
MODULE PROCEDURE GridInterpNR4
MODULE PROCEDURE GridInterpNR8
@@ -726,6 +731,61 @@ function GridInterp4DVec6R8( data, m )
end function GridInterp4DVec6R8
+!=============================================================================================================
+! INTERFACE GridInterp4DVec6
+! - GridInterp4DVec6R4
+! - GridInterp4DVec6R8
+!=============================================================================================================
+function GridInterp4DVecNR4( vDim, data, m )
+ integer(IntKi), intent(in ) :: vDim
+ real(SiKi), intent(in ) :: data(0:,0:,0:,0:,:) !< 4D grid of vector data
+ type(GridInterp_MiscVarType), intent(in ) :: m !< MiscVars
+
+ character(*), parameter :: RoutineName = 'GridInterp4DVecNR4'
+ integer(IntKi) :: i,j,k,l,vi
+ real(SiKi) :: GridInterp4DVecNR4(vDim)
+
+ ! interpolate
+ GridInterp4DVecNR4 = 0.0_SiKi
+ do l = 1,4
+ do k = 1,4
+ do j = 1,4
+ do i = 1,4
+ do vi = 1,vDim
+ GridInterp4DVecNR4(vi) = GridInterp4DVecNR4(vi) + m%N4D(i,j,k,l) * data( m%Indx(i,1), m%Indx(j,2), m%Indx(k,3), m%Indx(l,4), vi )
+ end do
+ end do
+ end do
+ end do
+ end do
+
+end function GridInterp4DVecNR4
+
+function GridInterp4DVecNR8( vDim, data, m )
+ integer(IntKi), intent(in ) :: vDim
+ real(DbKi), intent(in ) :: data(0:,0:,0:,0:,:) !< 4D grid of vector data
+ type(GridInterp_MiscVarType), intent(in ) :: m !< MiscVars
+
+ character(*), parameter :: RoutineName = 'GridInterp4DVecNR8'
+ integer(IntKi) :: i,j,k,l,vi
+ real(DbKi) :: GridInterp4DVecNR8(vDim)
+
+ ! interpolate
+ GridInterp4DVecNR8 = 0.0_DbKi
+ do l = 1,4
+ do k = 1,4
+ do j = 1,4
+ do i = 1,4
+ do vi = 1,vDim
+ GridInterp4DVecNR8(vi) = GridInterp4DVecNR8(vi) + m%N4D(i,j,k,l) * data( m%Indx(i,1), m%Indx(j,2), m%Indx(k,3), m%Indx(l,4), vi )
+ end do
+ end do
+ end do
+ end do
+ end do
+
+end function GridInterp4DVecNR8
+
!=============================================================================================================
! INTERFACE GridInterpN
! - GridInterpNR4
diff --git a/modules/openfast-library/src/FAST_Funcs.f90 b/modules/openfast-library/src/FAST_Funcs.f90
index e43ec8e7af..46caafe03a 100644
--- a/modules/openfast-library/src/FAST_Funcs.f90
+++ b/modules/openfast-library/src/FAST_Funcs.f90
@@ -1516,7 +1516,7 @@ subroutine FAST_JacobianPContState(ModData, ThisTime, iInput, iState, T, ErrStat
dYdx=dYdx, dXdx=dXdx)
case (Module_ExtPtfm)
- call ExtPtfm_JacobianPContState(ThisTime, T%ExtPtfm%Input(iInput), T%ExtPtfm%p, &
+ call ExtPtfm_JacobianPContState(ModData%Vars, ThisTime, T%ExtPtfm%Input(iInput), T%ExtPtfm%p, &
T%ExtPtfm%x(iState), T%ExtPtfm%xd(iState), &
T%ExtPtfm%z(iState), T%ExtPtfm%OtherSt(iState), &
T%ExtPtfm%y, T%ExtPtfm%m, ErrStat2, ErrMsg2, &
diff --git a/modules/openfast-library/src/FAST_Mapping.f90 b/modules/openfast-library/src/FAST_Mapping.f90
index 5d0386d654..a150e6f066 100644
--- a/modules/openfast-library/src/FAST_Mapping.f90
+++ b/modules/openfast-library/src/FAST_Mapping.f90
@@ -1090,7 +1090,7 @@ subroutine InitMappings_ED(Mappings, SrcMod, DstMod, Turbine, ErrStat, ErrMsg)
SrcDispDL=DatLoc(FEAM_u_PtFairleadDisplacement), & ! FEAM%u%PtFairleadDisplacement
DstDL=DatLoc(ED_u_PlatformPtMesh), & ! ED%u%PlatformPtMesh
DstDispDL=DatLoc(ED_y_PlatformPtMesh), & ! ED%y%PlatformPtMesh
- Active=Turbine%p_FAST%CompSub /= Module_SD, &
+ Active=Turbine%p_FAST%CompSub == Module_None, &
ErrStat=ErrStat2, ErrMsg=ErrMsg2)
if (Failed()) return
@@ -1148,7 +1148,7 @@ subroutine InitMappings_ED(Mappings, SrcMod, DstMod, Turbine, ErrStat, ErrMsg)
SrcDispDL=DatLoc(MAP_u_PtFairDisplacement), & ! MAP%u%PtFairDisplacement
DstDL=DatLoc(ED_u_PlatformPtMesh), & ! ED%u%PlatformPtMesh
DstDispDL=DatLoc(ED_y_PlatformPtMesh), & ! ED%y%PlatformPtMesh
- Active=Turbine%p_FAST%CompSub /= Module_SD, &
+ Active=Turbine%p_FAST%CompSub == Module_None, &
ErrStat=ErrStat2, ErrMsg=ErrMsg2)
if (Failed()) return
@@ -1160,7 +1160,7 @@ subroutine InitMappings_ED(Mappings, SrcMod, DstMod, Turbine, ErrStat, ErrMsg)
SrcDispDL=DatLoc(MD_u_CoupledKinematics, 1), & ! MD%u%CoupledKinematics(1)
DstDL=DatLoc(ED_u_PlatformPtMesh), & ! ED%u%PlatformPtMesh
DstDispDL=DatLoc(ED_y_PlatformPtMesh), & ! ED%y%PlatformPtMesh
- Active=Turbine%p_FAST%CompSub /= Module_SD, &
+ Active=Turbine%p_FAST%CompSub == Module_None, &
ErrStat=ErrStat2, ErrMsg=ErrMsg2)
if (Failed()) return
@@ -1489,9 +1489,58 @@ subroutine InitMappings_ExtPtfm(Mappings, SrcMod, DstMod, Turbine, ErrStat, ErrM
call MapMotionMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
SrcDL=DatLoc(ED_y_PlatformPtMesh), & ! ED%y%PlatformPtMesh
DstDL=DatLoc(ExtPtfm_u_PtfmMesh), & ! ExtPtfm%u%PtfmMesh
- Active=Turbine%p_FAST%CompSub /= Module_SD, &
ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
+ case (Module_HD)
+
+ call MapLoadMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
+ SrcDL=DatLoc(HydroDyn_y_Morison_Mesh), &
+ SrcDispDL=DatLoc(HydroDyn_u_Morison_Mesh), &
+ DstDL=DatLoc(ExtPtfm_u_FBMesh), &
+ DstDispDL=DatLoc(ExtPtfm_y_FBMesh), &
+ ErrStat=ErrStat2, ErrMsg=ErrMsg2); if (Failed()) return
+
+ call MapLoadMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
+ SrcDL=DatLoc(HydroDyn_y_WAMITMesh), &
+ SrcDispDL=DatLoc(HydroDyn_u_WAMITMesh), &
+ DstDL=DatLoc(ExtPtfm_u_FBMesh), &
+ DstDispDL=DatLoc(ExtPtfm_y_FBMesh), &
+ ErrStat=ErrStat2, ErrMsg=ErrMsg2); if (Failed()) return
+
+ if ( Turbine%ExtPtfm%p%nCB>0_IntKi) then
+ call MapVariable(Mappings, &
+ SrcMod=SrcMod, SrcDL=DatLoc(HydroDyn_y_FAddDOF), &
+ DstMod=DstMod, DstDL=DatLoc(ExtPtfm_u_Fm), &
+ ErrStat=ErrStat2, ErrMsg=ErrMsg2); if (Failed()) return
+ end if
+
+ case (Module_MD)
+
+ call MapLoadMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
+ SrcDL=DatLoc(MD_y_CoupledLoads, 1), & ! MD%y%CoupledLoads(1)
+ SrcDispDL=DatLoc(MD_u_CoupledKinematics, 1), & ! MD%u%CoupledKinematics(1)
+ DstDL=DatLoc(ExtPtfm_u_ConnLDMesh), & ! ExtPtfm%u%ConnLDMesh
+ DstDispDL=DatLoc(ExtPtfm_y_ConnMesh), & ! ExtPtfm%y%ConnMesh
+ ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
+
+ case (Module_MAP)
+
+ call MapLoadMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
+ SrcDL=DatLoc(MAP_y_ptFairleadLoad), & ! MAP%y%PtFairleadLoad
+ SrcDispDL=DatLoc(MAP_u_PtFairDisplacement), & ! MAP%u%PtFairDisplacement
+ DstDL=DatLoc(ExtPtfm_u_ConnLDMesh), & ! ExtPtfm%u%ConnLDMesh
+ DstDispDL=DatLoc(ExtPtfm_y_ConnMesh), & ! ExtPtfm%y%ConnMesh
+ ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
+
+ case (Module_FEAM)
+
+ call MapLoadMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
+ SrcDL=DatLoc(FEAM_y_PtFairleadLoad), & ! FEAM%y%PtFairleadLoad, &
+ SrcDispDL=DatLoc(FEAM_u_PtFairleadDisplacement), & ! FEAM%u%PtFairleadDisplacement
+ DstDL=DatLoc(ExtPtfm_u_ConnLDMesh), & ! ExtPtfm%u%ConnLDMesh
+ DstDispDL=DatLoc(ExtPtfm_y_ConnMesh), & ! ExtPtfm%y%ConnMesh
+ ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
+
end select
contains
@@ -1523,7 +1572,7 @@ subroutine InitMappings_FEAM(Mappings, SrcMod, DstMod, Turbine, ErrStat, ErrMsg)
call MapMotionMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
SrcDL=DatLoc(ED_y_PlatformPtMesh), & ! ED%y%PlatformPtMesh
DstDL=DatLoc(FEAM_u_PtFairleadDisplacement), & ! FEAM%u%PtFairleadDisplacement
- Active=Turbine%p_FAST%CompSub /= Module_SD, &
+ Active=Turbine%p_FAST%CompSub == Module_None, &
ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
case (Module_SD)
@@ -1533,6 +1582,13 @@ subroutine InitMappings_FEAM(Mappings, SrcMod, DstMod, Turbine, ErrStat, ErrMsg)
DstDL=DatLoc(FEAM_u_PtFairleadDisplacement), & ! FEAM%u%PtFairleadDisplacement
ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
+ case (Module_ExtPtfm)
+
+ call MapMotionMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
+ SrcDL=DatLoc(ExtPtfm_y_ConnMesh), & ! ExtPtfm_y_ConnMesh
+ DstDL=DatLoc(FEAM_u_PtFairleadDisplacement), & ! MD%u%CoupledKinematics(1)
+ ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
+
end select
contains
@@ -1564,20 +1620,20 @@ subroutine InitMappings_HD(Mappings, SrcMod, DstMod, Turbine, ErrStat, ErrMsg)
call MapMotionMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
SrcDL=DatLoc(ED_y_PlatformPtMesh), & ! ED%y%PlatformPtMesh
DstDL=DatLoc(HydroDyn_u_PRPMesh), & ! HD%u%PRPMesh
- Active=Turbine%p_FAST%NRotors == 1, &
+ Active=Turbine%p_FAST%CompSub == Module_None, &
ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
call MapMotionMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
SrcDL=DatLoc(ED_y_PlatformPtMesh), & ! ED%y%PlatformPtMesh
DstDL=DatLoc(HydroDyn_u_Morison_Mesh), & ! HD%u%Morison%Mesh
ErrStat=ErrStat2, ErrMsg=ErrMsg2, &
- Active=Turbine%p_FAST%CompSub /= Module_SD); if(Failed()) return
+ Active=Turbine%p_FAST%CompSub == Module_None); if(Failed()) return
call MapMotionMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
SrcDL=DatLoc(ED_y_PlatformPtMesh), & ! ED%y%PlatformPtMesh
DstDL=DatLoc(HydroDyn_u_WAMITMesh), & ! HD%u%WAMITMesh
ErrStat=ErrStat2, ErrMsg=ErrMsg2, &
- Active=Turbine%p_FAST%CompSub /= Module_SD); if(Failed()) return
+ Active=Turbine%p_FAST%CompSub == Module_None); if(Failed()) return
case (Module_SeaSt)
@@ -1592,7 +1648,6 @@ subroutine InitMappings_HD(Mappings, SrcMod, DstMod, Turbine, ErrStat, ErrMsg)
call MapMotionMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
SrcDL=DatLoc(SD_y_Y0Mesh), & ! SD%y%Y0Mesh
DstDL=DatLoc(HydroDyn_u_PRPMesh), & ! HD%u%PRPMesh
- Active=Turbine%p_FAST%NRotors > 1, &
ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
call MapMotionMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
@@ -1604,6 +1659,40 @@ subroutine InitMappings_HD(Mappings, SrcMod, DstMod, Turbine, ErrStat, ErrMsg)
SrcDL=DatLoc(SD_y_Y2Mesh), & ! SD%y%Y2Mesh
DstDL=DatLoc(HydroDyn_u_WAMITMesh), & ! HD%u%WAMITMesh
ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
+
+ case (Module_ExtPtfm)
+
+ call MapMotionMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
+ SrcDL=DatLoc(ExtPtfm_y_FBMesh), & ! ExtPtfm%y%FBMesh
+ DstDL=DatLoc(HydroDyn_u_PRPMesh), & ! HD%u%PRPMesh
+ ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
+
+ call MapMotionMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
+ SrcDL=DatLoc(ExtPtfm_y_FBMesh), & ! ExtPtfm%y%FBMesh
+ DstDL=DatLoc(HydroDyn_u_Morison_Mesh), & ! HD%u%Morison%Mesh
+ ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
+
+ call MapMotionMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
+ SrcDL=DatLoc(ExtPtfm_y_FBMesh), & ! ExtPtfm%y%FBMesh
+ DstDL=DatLoc(HydroDyn_u_WAMITMesh), & ! HD%u%WAMITMesh
+ ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
+
+ if ( Turbine%HD%p%HasAddDOF ) then
+ call MapVariable(Mappings, &
+ SrcMod=SrcMod, SrcDL=DatLoc(ExtPtfm_y_qm), &
+ DstMod=DstMod, DstDL=DatLoc(HydroDyn_u_qAddDOF), &
+ ErrStat=ErrStat2, ErrMsg=ErrMsg2); if (Failed()) return
+
+ call MapVariable(Mappings, &
+ SrcMod=SrcMod, SrcDL=DatLoc(ExtPtfm_y_qmdot), &
+ DstMod=DstMod, DstDL=DatLoc(HydroDyn_u_qAddDOFDot), &
+ ErrStat=ErrStat2, ErrMsg=ErrMsg2); if (Failed()) return
+
+ call MapVariable(Mappings, &
+ SrcMod=SrcMod, SrcDL=DatLoc(ExtPtfm_y_qmdotdot), &
+ DstMod=DstMod, DstDL=DatLoc(HydroDyn_u_qAddDOFDotDot), &
+ ErrStat=ErrStat2, ErrMsg=ErrMsg2); if (Failed()) return
+ end if
end select
contains
@@ -1741,7 +1830,7 @@ subroutine InitMappings_MAP(Mappings, SrcMod, DstMod, Turbine, ErrStat, ErrMsg)
call MapMotionMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
SrcDL=DatLoc(ED_y_PlatformPtMesh), & ! ED%y%PlatformPtMesh
DstDL=DatLoc(MAP_u_PtFairDisplacement), & ! MAPp%u%PtFairDisplacement
- Active=Turbine%p_FAST%CompSub /= Module_SD, &
+ Active=Turbine%p_FAST%CompSub == Module_None, &
ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
case (Module_SD)
@@ -1751,6 +1840,13 @@ subroutine InitMappings_MAP(Mappings, SrcMod, DstMod, Turbine, ErrStat, ErrMsg)
DstDL=DatLoc(MAP_u_PtFairDisplacement), & ! MAPp%u%PtFairDisplacement
ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
+ case (Module_ExtPtfm)
+
+ call MapMotionMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
+ SrcDL=DatLoc(ExtPtfm_y_ConnMesh), & ! ExtPtfm_y_ConnMesh
+ DstDL=DatLoc(MAP_u_PtFairDisplacement), & ! MD%u%CoupledKinematics(1)
+ ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
+
end select
contains
@@ -1781,7 +1877,7 @@ subroutine InitMappings_MD(Mappings, SrcMod, DstMod, Turbine, ErrStat, ErrMsg)
call MapMotionMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
SrcDL=DatLoc(ED_y_PlatformPtMesh), & ! ED%y%PlatformPtMesh
DstDL=DatLoc(MD_u_CoupledKinematics, 1), & ! MD%u%CoupledKinematics(1)
- Active=Turbine%p_FAST%CompSub /= Module_SD, &
+ Active=Turbine%p_FAST%CompSub == Module_None, &
ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
case (Module_SD)
@@ -1791,6 +1887,13 @@ subroutine InitMappings_MD(Mappings, SrcMod, DstMod, Turbine, ErrStat, ErrMsg)
DstDL=DatLoc(MD_u_CoupledKinematics, 1), & ! MD%u%CoupledKinematics(1)
ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
+ case (Module_ExtPtfm)
+
+ call MapMotionMesh(Turbine, Mappings, SrcMod=SrcMod, DstMod=DstMod, &
+ SrcDL=DatLoc(ExtPtfm_y_ConnMesh), & ! ExtPtfm%y%ConnMesh
+ DstDL=DatLoc(MD_u_CoupledKinematics, 1), & ! MD%u%CoupledKinematics(1)
+ ErrStat=ErrStat2, ErrMsg=ErrMsg2); if(Failed()) return
+
case (Module_SrvD)
call MapCustom(Mappings, Custom_SrvD_to_MD, SrcMod, DstMod)
diff --git a/modules/openfast-library/src/FAST_ModGlue.f90 b/modules/openfast-library/src/FAST_ModGlue.f90
index a817f29c1a..645ca2626d 100644
--- a/modules/openfast-library/src/FAST_ModGlue.f90
+++ b/modules/openfast-library/src/FAST_ModGlue.f90
@@ -467,6 +467,7 @@ subroutine ModGlue_Init(p, m, y, p_FAST, m_FAST, Turbine, ErrStat, ErrMsg)
pack(modIdx, ModIDs == Module_AD), &
pack(modIdx, ModIDs == Module_HD), &
pack(modIdx, ModIDs == Module_SD), &
+ pack(modIdx, ModIDs == Module_ExtPtfm), &
pack(modIdx, ModIDs == Module_MAP), &
pack(modIdx, ModIDs == Module_MD)]
diff --git a/modules/openfast-library/src/FAST_Solver.f90 b/modules/openfast-library/src/FAST_Solver.f90
index fa5b395a21..3caa4681fa 100644
--- a/modules/openfast-library/src/FAST_Solver.f90
+++ b/modules/openfast-library/src/FAST_Solver.f90
@@ -106,21 +106,23 @@ subroutine FAST_SolverInit(p_FAST, p, m, GlueModData, GlueModMaps, Turbine, ErrS
pack(modInds, ModIDs == Module_ED), &
pack(modInds, ModIDs == Module_BD), &
pack(modInds, ModIDs == Module_SD), &
+ pack(modInds, ModIDs == Module_ExtPtfm), &
pack(modInds, ModIDs == Module_IfW), &
pack(modInds, ModIDs == Module_ExtLd)]
! Indices of tight coupling modules
p%iModTC = [pack(modInds, ModIDs == Module_ED .and. p%ModCoupling /= LooseCoupling), &
pack(modInds, ModIDs == Module_BD .and. p%ModCoupling /= LooseCoupling), &
- pack(modInds, ModIDs == Module_SD .and. p%ModCoupling /= LooseCoupling)]
+ pack(modInds, ModIDs == Module_SD .and. p%ModCoupling /= LooseCoupling), &
+ pack(modInds, ModIDs == Module_ExtPtfm .and. p%ModCoupling /= LooseCoupling)]
! Indices of Option 1 modules
p%iModOpt1 = [pack(modInds, ModIDs == Module_ED .and. p%ModCoupling == LooseCoupling), &
pack(modInds, ModIDs == Module_BD .and. p%ModCoupling == LooseCoupling), &
pack(modInds, ModIDs == Module_SD .and. p%ModCoupling == LooseCoupling), &
+ pack(modInds, ModIDs == Module_ExtPtfm .and. p%ModCoupling == LooseCoupling), &
pack(modInds, ModIDs == Module_SED), &
pack(modInds, ModIDs == Module_AD .and. p_FAST%MHK /= MHK_None), &
- pack(modInds, ModIDs == Module_ExtPtfm), &
pack(modInds, ModIDs == Module_HD), &
pack(modInds, ModIDs == Module_Orca), &
pack(modInds, ModIDs == Module_MD)]
@@ -131,6 +133,7 @@ subroutine FAST_SolverInit(p_FAST, p, m, GlueModData, GlueModMaps, Turbine, ErrS
pack(modInds, ModIDs == Module_ED), &
pack(modInds, ModIDs == Module_BD), &
pack(modInds, ModIDs == Module_SD), &
+ pack(modInds, ModIDs == Module_ExtPtfm), &
pack(modInds, ModIDs == Module_IfW), &
pack(modInds, ModIDs == Module_SeaSt), &
pack(modInds, ModIDs == Module_AD .and. p_FAST%MHK == MHK_None), &
@@ -323,10 +326,10 @@ subroutine SetVarSolveFlags()
DstMod => GlueModData(GlueModMaps(j)%iModDst))
! Determine if source and destination modules are in tight coupling or Option 1
- SrcModTC = any(SrcMod%iMod == p%iModTC)
- SrcModO1 = any(SrcMod%iMod == p%iModOpt1)
- DstModTC = any(DstMod%iMod == p%iModTC)
- DstModO1 = any(DstMod%iMod == p%iModOpt1)
+ SrcModTC = iand(SrcMod%Category, MC_Tight) /= 0
+ SrcModO1 = iand(SrcMod%Category, MC_Option1) /= 0
+ DstModTC = iand(DstMod%Category, MC_Tight) /= 0
+ DstModO1 = iand(DstMod%Category, MC_Option1) /= 0
! If source or destination module is not in TC or Option 1, continue
if (.not. (SrcModTC .or. SrcModO1)) cycle
@@ -453,6 +456,28 @@ subroutine SetVarSolveFlags()
end if
+ case (Map_Variable)
+
+ ! This includes all variable-to-variable mappings for modules
+ ! that are in tight coupling and/or Option 1. May need to limit
+ ! this in the future to just loads and accelerations.
+
+ ! Add flag to source variable
+ do i = 1, size(SrcMod%Vars%y)
+ associate (Var => SrcMod%Vars%y(i))
+ if (.not. MV_EqualDL(Mapping%SrcDL, Var%DL)) cycle
+ call MV_SetFlags(Var, VF_Solve)
+ end associate
+ end do
+
+ ! Add flag to destination variable
+ do i = 1, size(DstMod%Vars%u)
+ associate (Var => DstMod%Vars%u(i))
+ if (.not. MV_EqualDL(Mapping%DstDL, Var%DL)) cycle
+ call MV_SetFlags(Var, VF_Solve)
+ end associate
+ end do
+
end select
end associate
diff --git a/modules/openfast-library/src/FAST_Subs.f90 b/modules/openfast-library/src/FAST_Subs.f90
index f1cdb30760..ece8ac85fd 100644
--- a/modules/openfast-library/src/FAST_Subs.f90
+++ b/modules/openfast-library/src/FAST_Subs.f90
@@ -996,6 +996,8 @@ SUBROUTINE FAST_InitializeAll( t_initial, m_Glue, p_FAST, y_FAST, m_FAST, ED, SE
Init%InData_ExtPtfm%InputFile = p_FAST%SubFile
Init%InData_ExtPtfm%RootName = trim(p_FAST%OutFileRoot)//'.'//y_FAST%Module_Abrev(Module_ExtPtfm)
Init%InData_ExtPtfm%Linearize = p_FAST%Linearize
+ Init%InData_ExtPtfm%PtfmRefxt = ED%p(1)%PtfmRefxt
+ Init%InData_ExtPtfm%PtfmRefyt = ED%p(1)%PtfmRefyt
Init%InData_ExtPtfm%PtfmRefzt = ED%p(1)%PtfmRefzt ! Required
! Call module initialization routine
@@ -2023,7 +2025,7 @@ SUBROUTINE ValidateInputData(p, m_FAST, ErrStat, ErrMsg)
END IF
ELSE
IF (p%CompMooring == Module_Orca) CALL SetErrStat( ErrID_Fatal, 'HydroDyn cannot be used if OrcaFlex is used. Set CompHydro = 0 or CompMooring < 4 in the FAST input file.', ErrStat, ErrMsg, RoutineName )
- IF (p%CompSub == Module_ExtPtfm) CALL SetErrStat( ErrID_Fatal, 'HydroDyn cannot be used if ExtPtfm_MCKF is used. Set CompHydro = 0 or CompSub < 2 in the FAST input file.', ErrStat, ErrMsg, RoutineName )
+ ! IF (p%CompSub == Module_ExtPtfm) CALL SetErrStat( ErrID_Fatal, 'HydroDyn cannot be used if ExtPtfm_MCKF is used. Set CompHydro = 0 or CompSub < 2 in the FAST input file.', ErrStat, ErrMsg, RoutineName )
END IF
! SED cannot be used with certain modules
@@ -2139,7 +2141,6 @@ SUBROUTINE ValidateInputData(p, m_FAST, ErrStat, ErrMsg)
! now, make sure we haven't asked for any modules that we can't yet linearize:
if (p%CompAero == MODULE_ADsk) call SetErrStat(ErrID_Fatal,'Linearization is not implemented for the AeroDisk module.',ErrStat, ErrMsg, RoutineName)
if (p%CompInflow == MODULE_ExtInfw) call SetErrStat(ErrID_Fatal,'Linearization is not implemented for the ExternalInflow coupling.',ErrStat, ErrMsg, RoutineName)
- if (p%CompSub /= MODULE_None .and. p%CompSub /= MODULE_SD ) call SetErrStat(ErrID_Fatal,'Linearization is not implemented for the ExtPtfm_MCKF substructure module.',ErrStat, ErrMsg, RoutineName)
if (p%CompMooring /= MODULE_None .and. p%CompMooring == MODULE_FEAM) call SetErrStat(ErrID_Fatal,'Linearization is not implemented for the FEAMooring mooring module.',ErrStat, ErrMsg, RoutineName)
if (p%CompIce /= MODULE_None) call SetErrStat(ErrID_Fatal,'Linearization is not implemented for any of the ice loading modules.',ErrStat, ErrMsg, RoutineName)
diff --git a/openfast_io/openfast_io/FAST_reader.py b/openfast_io/openfast_io/FAST_reader.py
index 681491afcd..cab9249ec0 100644
--- a/openfast_io/openfast_io/FAST_reader.py
+++ b/openfast_io/openfast_io/FAST_reader.py
@@ -1933,6 +1933,7 @@ def read_HydroDyn(self, hd_file):
self.fst_vt['HydroDyn']['PtfmVol0'] = read_array(f,self.fst_vt['HydroDyn']['NBody'], array_type=float)
self.fst_vt['HydroDyn']['PtfmCOBxt'] = read_array(f,self.fst_vt['HydroDyn']['NBody'], array_type=float)
self.fst_vt['HydroDyn']['PtfmCOByt'] = read_array(f,self.fst_vt['HydroDyn']['NBody'], array_type=float)
+ self.fst_vt['HydroDyn']['NAddDOF'] = read_array(f,self.fst_vt['HydroDyn']['NBody'], array_type=int)
# 2ND-ORDER FLOATING PLATFORM FORCES
f.readline()
@@ -2891,9 +2892,8 @@ def read_ExtPtfm(self, ep_file):
f.readline()
# Reduction inputs
- self.fst_vt['ExtPtfm']['FileFormat'] = int_read(f.readline().split()[0])
+ self.fst_vt['ExtPtfm']['RBMod'] = int_read(f.readline().split()[0])
self.fst_vt['ExtPtfm']['Red_FileName'] = os.path.join(os.path.dirname(ep_file), quoted_read(f.readline().split()[0]))
- self.fst_vt['ExtPtfm']['RedCst_FileName'] = os.path.join(os.path.dirname(ep_file), quoted_read(f.readline().split()[0]))
self.fst_vt['ExtPtfm']['NActiveDOFList'] = int_read(f.readline().split()[0])
self.fst_vt['ExtPtfm']['ActiveDOFList'] = read_array(f,None,split_val='ActiveDOFList',array_type=int)
self.fst_vt['ExtPtfm']['NInitPosList'] = int_read(f.readline().split()[0])
@@ -2902,6 +2902,18 @@ def read_ExtPtfm(self, ep_file):
self.fst_vt['ExtPtfm']['InitVelList'] = read_array(f,None,split_val='InitVelList',array_type=float)
f.readline()
+ # Connection inputs
+ self.fst_vt['ExtPtfm']['HasConnections'] = bool_read(f.readline().split()[0])
+ self.fst_vt['ExtPtfm']['Conn_FileName'] = os.path.join(os.path.dirname(ep_file), quoted_read(f.readline().split()[0]))
+ f.readline()
+
+ # User forcing inputs
+ self.fst_vt['ExtPtfm']['HasUserForcing'] = bool_read(f.readline().split()[0])
+ self.fst_vt['ExtPtfm']['Force_FileName'] = os.path.join(os.path.dirname(ep_file), quoted_read(f.readline().split()[0]))
+ self.fst_vt['ExtPtfm']['HasConnForcing'] = bool_read(f.readline().split()[0])
+ self.fst_vt['ExtPtfm']['FConn_FileName'] = os.path.join(os.path.dirname(ep_file), quoted_read(f.readline().split()[0]))
+ f.readline()
+
# Output
self.fst_vt['ExtPtfm']['SumPrint'] = bool_read(f.readline().split()[0])
self.fst_vt['ExtPtfm']['OutFile'] = int_read(f.readline().split()[0])
@@ -2930,18 +2942,25 @@ def read_ExtPtfm(self, ep_file):
self.set_outlist(self.fst_vt['outlist']['ExtPtfm'], channel_list) # TODO: Need to figure this out as we dont have a full outlist for now, similar to MoorDyn
data = f.readline()
- if self.fst_vt['ExtPtfm']['FileFormat'] == 0:
- self.fst_vt['ExtPtfm']['Guyan'] = {}
- # self.read_Guyan(f) # TODO: need to impliment this. An example file not found to test
- elif self.fst_vt['ExtPtfm']['FileFormat'] == 1:
- self.fst_vt['ExtPtfm']['FlexASCII'] = {}
- self.read_Superelement(self.fst_vt['ExtPtfm']['Red_FileName'])
+ self.fst_vt['ExtPtfm']['FlexASCII'] = {}
+ self.read_Superelement(self.fst_vt['ExtPtfm']['Red_FileName'])
+
+ if self.fst_vt['ExtPtfm']['HasConnections']:
+ self.fst_vt['ExtPtfm']['Connections'] = {}
+ self.read_Connections(self.fst_vt['ExtPtfm']['Conn_FileName'], self.fst_vt['ExtPtfm']['FlexASCII']['nDOF'])
+
+ if self.fst_vt['ExtPtfm']['HasUserForcing']:
+ self.fst_vt['ExtPtfm']['UserForcing'] = {}
+ self.read_UserForcing(self.fst_vt['ExtPtfm']['Force_FileName'], self.fst_vt['ExtPtfm']['FlexASCII']['nDOF'])
+
+ if self.fst_vt['ExtPtfm']['HasConnForcing']:
+ self.fst_vt['ExtPtfm']['ConnForcing'] = {}
+ self.read_ConnForcing(self.fst_vt['ExtPtfm']['FConn_FileName'], self.fst_vt['ExtPtfm']['Connections']['nConn'])
f.close()
def read_Superelement(self, superelement_file):
-
def detectAndReadExtPtfmSE(lines):
# Function based on https://github.com/OpenFAST/openfast_toolbox/blob/353643ed917d113ec8dfd765813fef7d09752757/openfast_toolbox/io/fast_input_file.py#L1932
@@ -2953,59 +2972,43 @@ def readmat(n,m,lines,iStart):
i=iStart+j
M[j,:]=np.array(lines[i].split()).astype(float)
return M
-
- if len(lines)<10:
- return False
- if not (lines[0][0]=='!' and lines[1][0]=='!'):
- return False
- if lines[1].lower().find('flex')<0:
- return
- if lines[2].lower().find('!dimension')<0:
- return
-
+
# --- At this stage we assume it's in the proper format
- nDOFCommon = -1
- i=2
+ nDOF = -1
+ i=0
try:
while i0:
if l[0]=='!':
if l.find('!dimension')==0:
self.fst_vt['ExtPtfm']['FlexASCII']['nDOF'] = int(l.split(':')[1])
- nDOFCommon = self.fst_vt['ExtPtfm']['FlexASCII']['nDOF']
- elif l.find('!time increment')==0:
- self.fst_vt['ExtPtfm']['FlexASCII']['dt'] = float(l.split(':')[1])
- elif l.find('!total simulation time')==0:
- self.fst_vt['ExtPtfm']['FlexASCII']['T'] = float(l.split(':')[1])
+ nDOF = self.fst_vt['ExtPtfm']['FlexASCII']['nDOF']
elif len(l.strip())==0:
pass
else:
@@ -3025,6 +3028,159 @@ def readmat(n,m,lines,iStart):
raise NameError('Could not read Superelement file')
f.close()
+
+ def read_Connections(self, connection_file, nDOF):
+
+ def detectAndReadExtPtfmConnections(lines):
+ # Function based on https://github.com/OpenFAST/openfast_toolbox/blob/353643ed917d113ec8dfd765813fef7d09752757/openfast_toolbox/io/fast_input_file.py#L1932
+ # Developed by Emmanuel Branlard (https://github.com/ebranlard)
+
+ def readmat(n,m,lines,iStart):
+ M=np.zeros((n,m))
+ for j in np.arange(n):
+ i=iStart+j
+ M[j,:]=np.array(lines[i].split()).astype(float)
+ return M
+
+ # --- At this stage we assume it's in the proper format
+ nConn = -1
+ i=0
+ try:
+ while i0:
+ if l[0]=='!':
+ if l.find('!nconn')==0:
+ self.fst_vt['ExtPtfm']['Connections']['nConn'] = int(l.split(':')[1])
+ nConn = self.fst_vt['ExtPtfm']['Connections']['nConn']
+ elif len(l.strip())==0:
+ pass
+ else:
+ raise NameError('Unexcepted content found on line {}'.format(i))
+ i+=1
+ except NameError as e:
+ raise e
+ except:
+ raise
+
+ return True
+
+
+ f = open(connection_file)
+ lines=f.read().splitlines()
+ if not detectAndReadExtPtfmConnections(lines):
+ raise NameError('Could not read Connections file')
+ f.close()
+
+
+ def read_UserForcing(self, userforcing_file, nDOF):
+
+ def detectAndReadExtPtfmUserForcing(lines):
+ # Function based on https://github.com/OpenFAST/openfast_toolbox/blob/353643ed917d113ec8dfd765813fef7d09752757/openfast_toolbox/io/fast_input_file.py#L1932
+ # Developed by Emmanuel Branlard (https://github.com/ebranlard)
+
+ def readmat(n,m,lines,iStart):
+ M=np.zeros((n,m))
+ for j in np.arange(n):
+ i=iStart+j
+ M[j,:]=np.array(lines[i].split()).astype(float)
+ return M
+
+ # --- At this stage we assume it's in the proper format
+ NSteps = -1
+ i=0
+ try:
+ while i0:
+ if l[0]=='!':
+ if l.find('!nsteps')==0:
+ self.fst_vt['ExtPtfm']['UserForcing']['nSteps'] = int(l.split(':')[1])
+ nSteps = self.fst_vt['ExtPtfm']['UserForcing']['nSteps']
+ elif len(l.strip())==0:
+ pass
+ else:
+ raise NameError('Unexcepted content found on line {}'.format(i))
+ i+=1
+ except NameError as e:
+ raise e
+ except:
+ raise
+
+ return True
+
+
+ f = open(userforcing_file)
+ lines=f.read().splitlines()
+ if not detectAndReadExtPtfmUserForcing(lines):
+ raise NameError('Could not read User Forcing file')
+ f.close()
+
+
+ def read_ConnForcing(self, connforcing_file, nConn):
+
+ def detectAndReadExtPtfmConnForcing(lines):
+ # Function based on https://github.com/OpenFAST/openfast_toolbox/blob/353643ed917d113ec8dfd765813fef7d09752757/openfast_toolbox/io/fast_input_file.py#L1932
+ # Developed by Emmanuel Branlard (https://github.com/ebranlard)
+
+ def readmat(n,m,lines,iStart):
+ M=np.zeros((n,m))
+ for j in np.arange(n):
+ i=iStart+j
+ M[j,:]=np.array(lines[i].split()).astype(float)
+ return M
+
+ # --- At this stage we assume it's in the proper format
+ NSteps = -1
+ i=0
+ try:
+ while i0:
+ if l[0]=='!':
+ if l.find('!nsteps')==0:
+ self.fst_vt['ExtPtfm']['ConnForcing']['nSteps'] = int(l.split(':')[1])
+ nSteps = self.fst_vt['ExtPtfm']['ConnForcing']['nSteps']
+ elif len(l.strip())==0:
+ pass
+ else:
+ raise NameError('Unexcepted content found on line {}'.format(i))
+ i+=1
+ except NameError as e:
+ raise e
+ except:
+ raise
+
+ return True
+
+
+ f = open(connforcing_file)
+ lines=f.read().splitlines()
+ if not detectAndReadExtPtfmConnForcing(lines):
+ raise NameError('Could not read Connections Forcing file')
+ f.close()
+
+
def read_MAP(self, map_file):
# MAP++
diff --git a/openfast_io/openfast_io/FAST_vars_out.py b/openfast_io/openfast_io/FAST_vars_out.py
index fb551bdaaf..b92a0a2abe 100644
--- a/openfast_io/openfast_io/FAST_vars_out.py
+++ b/openfast_io/openfast_io/FAST_vars_out.py
@@ -9602,55 +9602,96 @@
ExtPtfm['IntrfMx'] = False # - Platform interface moment - Directed along the x-direction (Nm)
ExtPtfm['IntrfMy'] = False # - Platform interface moment - Directed along the y-direction (Nm)
ExtPtfm['IntrfMz'] = False # - Platform interface moment - Directed along the z-direction (Nm)
-ExtPtfm['InpF_Fx'] = False # - Reduced Input force at interface point - Directed along the x-direction (N)
-ExtPtfm['InpF_Fy'] = False # - Reduced Input force at interface point - Directed along the y-direction (N)
-ExtPtfm['InpF_Fz'] = False # - Reduced Input force at interface point - Directed along the z-direction (N)
-ExtPtfm['InpF_Mx'] = False # - Reduced Input moment at interface point - Directed along the x-direction (Nm)
-ExtPtfm['InpF_My'] = False # - Reduced Input moment at interface point - Directed along the y-direction (Nm)
-ExtPtfm['InpF_Mz'] = False # - Reduced Input moment at interface point - Directed along the z-direction (Nm)
-ExtPtfm['CBQ_001'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_002'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_003'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_004'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_005'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_006'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_007'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_010'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_011'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_012'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_013'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_014'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_015'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_016'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_017'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_020'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_021'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_022'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_023'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_024'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBQ_025'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_001'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_002'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_003'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_004'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_005'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_006'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_007'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_010'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_011'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_012'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_013'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_014'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_015'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_016'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_017'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_020'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_021'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_022'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_023'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_024'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['CBF_025'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
-ExtPtfm['WavElev'] = False # - Wave elevation (m)
+ExtPtfm['ExtrnFx'] = False # - Reduced Input force at interface point - Directed along the x-direction (N)
+ExtPtfm['ExtrnFy'] = False # - Reduced Input force at interface point - Directed along the y-direction (N)
+ExtPtfm['ExtrnFz'] = False # - Reduced Input force at interface point - Directed along the z-direction (N)
+ExtPtfm['ExtrnMx'] = False # - Reduced Input moment at interface point - Directed along the x-direction (Nm)
+ExtPtfm['ExtrnMy'] = False # - Reduced Input moment at interface point - Directed along the y-direction (Nm)
+ExtPtfm['ExtrnMz'] = False # - Reduced Input moment at interface point - Directed along the z-direction (Nm)
+ExtPtfm['CBD001'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD002'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD003'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD004'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD005'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD006'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD007'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD010'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD011'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD012'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD013'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD014'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD015'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD016'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD017'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD020'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD021'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD022'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD023'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD024'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBD025'] = False # - Modal displacement of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV001'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV002'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV003'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV004'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV005'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV006'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV007'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV010'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV011'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV012'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV013'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV014'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV015'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV016'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV017'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV020'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV021'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV022'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV023'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV024'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBV025'] = False # - Modal velocity of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA001'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA002'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA003'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA004'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA005'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA006'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA007'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA010'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA011'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA012'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA013'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA014'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA015'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA016'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA017'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA020'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA021'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA022'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA023'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA024'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBA025'] = False # - Modal acceleration of internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF001'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF002'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF003'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF004'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF005'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF006'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF007'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF010'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF011'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF012'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF013'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF014'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF015'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF016'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF017'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF020'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF021'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF022'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF023'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF024'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
+ExtPtfm['CBF025'] = False # - Modal force on internal Craig-Bampton mode number XXX (-)
""" AeroDisk """
AeroDisk = {}
@@ -9745,4 +9786,4 @@
FstOutput['MoorDyn'] = MoorDyn
FstOutput['ExtPtfm'] = ExtPtfm
FstOutput['AeroDisk'] = AeroDisk
-FstOutput['SimpleElastoDyn'] = SimpleElastoDyn
\ No newline at end of file
+FstOutput['SimpleElastoDyn'] = SimpleElastoDyn
diff --git a/openfast_io/openfast_io/FAST_writer.py b/openfast_io/openfast_io/FAST_writer.py
index 2c40bc4e32..9353648468 100644
--- a/openfast_io/openfast_io/FAST_writer.py
+++ b/openfast_io/openfast_io/FAST_writer.py
@@ -1644,6 +1644,7 @@ def write_HydroDyn(self):
f.write('{:<22} {:<11} {:}'.format(', '.join([f'{val}' for val in self.fst_vt['HydroDyn']['PtfmVol0']]), 'PtfmVol0', '- Displaced volume of water when the body is in its undisplaced position (m^3) [1 to NBody] [only used when PotMod=1; USE THE SAME VALUE COMPUTED BY WAMIT AS OUTPUT IN THE .OUT FILE!]\n'))
f.write('{:<22} {:<11} {:}'.format(', '.join([f'{val}' for val in self.fst_vt['HydroDyn']['PtfmCOBxt']]), 'PtfmCOBxt', '- The xt offset of the center of buoyancy (COB) from (0,0) (meters) [1 to NBody] [only used when PotMod=1]\n'))
f.write('{:<22} {:<11} {:}'.format(', '.join([f'{val}' for val in self.fst_vt['HydroDyn']['PtfmCOByt']]), 'PtfmCOByt', '- The yt offset of the center of buoyancy (COB) from (0,0) (meters) [1 to NBody] [only used when PotMod=1]\n'))
+ f.write('{:<22} {:<11} {:}'.format(', '.join([f'{val}' for val in self.fst_vt['HydroDyn']['NAddDOF']]), 'NAddDOF', '- Number of additional generalized DOF of each WAMIT body (-) [1 to NBody] [>=0; =0 if NBody>1; only used when PotMod=1]\n'))
f.write('---------------------- 2ND-ORDER FLOATING PLATFORM FORCES ---------------------- [unused with WaveMod=0 or 6, or PotMod=0 or 2]\n')
f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['MnDrift'], 'MnDrift', "- Mean-drift 2nd-order forces computed {0: None; [7, 8, 9, 10, 11, or 12]: WAMIT file to use} [Only one of MnDrift, NewmanApp, or DiffQTF can be non-zero]\n"))
f.write('{:<22} {:<11} {:}'.format(self.fst_vt['HydroDyn']['NewmanApp'], 'NewmanApp', "- Mean- and slow-drift 2nd-order forces computed with Newman's approximation {0: None; [7, 8, 9, 10, 11, or 12]: WAMIT file to use} [Only one of MnDrift, NewmanApp, or DiffQTF can be non-zero. Used only when WaveDirMod=0]\n"))
@@ -2366,14 +2367,18 @@ def write_SubDyn(self):
f.close()
def write_ExtPtfm(self):
- # Generate ExtPtfm input file
+ # Generate ExtPtfm input files
- if self.fst_vt['ExtPtfm']['FileFormat'] == 0:
- None
- # self.write_Guyan() # TODO: need to impliment this. An example file not found to test
- elif self.fst_vt['ExtPtfm']['FileFormat'] == 1:
- self.write_Superelement()
+ self.write_Superelement()
+ if self.fst_vt['ExtPtfm']['HasConnections']:
+ self.write_Connections()
+
+ if self.fst_vt['ExtPtfm']['HasUserForcing']:
+ self.write_UserForcing()
+
+ if self.fst_vt['ExtPtfm']['HasConnForcing']:
+ self.write_ConnForcing()
self.fst_vt['Fst']['SubFile'] = self.FAST_namingOut + '_ExtPtfm.dat'
ep_file = os.path.join(self.FAST_runDirectory, self.fst_vt['Fst']['SubFile'])
@@ -2386,16 +2391,22 @@ def write_ExtPtfm(self):
f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ExtPtfm']['DT'], 'DT', '- Communication interval for controllers (s) (or "default")\n'))
f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['ExtPtfm']['IntMethod'], 'IntMethod', '- Integration Method {1:RK4; 2:AB4, 3:ABM4} (switch)\n'))
f.write('---------------------- REDUCTION INPUTS ----------------------------------------\n')
- f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['ExtPtfm']['FileFormat'], 'FileFormat', '- File Format {0:Guyan; 1:FlexASCII} (switch)\n'))
+ f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['ExtPtfm']['RBMod'], 'RBMod', '- Method for handling rigid-body motion (switch) {0: No special handling for rigid-body motion; 1: Transform to rigid-body frame of reference; 2: Transform to rigid-body frame of reference and add fictitious forces and exact self-weight}\n'))
f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ExtPtfm']['Red_FileName'], 'Red_FileName', '- Path of the file containing Guyan/Craig-Bampton inputs (-)\n'))
- f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ExtPtfm']['RedCst_FileName'], 'RedCst_FileName', '- Path of the file containing Guyan/Craig-Bampton constant inputs (-) (currently unused)\n'))
f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['ExtPtfm']['NActiveDOFList'], 'NActiveDOFList', '- Number of active CB mode listed in ActiveDOFList, use -1 for all modes (integer)\n'))
f.write('{:<22} {:<11} {:}'.format(', '.join([f'{val}' for val in self.fst_vt['ExtPtfm']['ActiveDOFList']]), 'ActiveDOFList', '- List of CB modes index that are active, [unused if NActiveDOFList<=0]\n'))
f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['ExtPtfm']['NInitPosList'], 'NInitPosList', '- Number of initial positions listed in InitPosList, using 0 implies all DOF initialized to 0 (integer)\n'))
f.write('{:<22} {:<11} {:}'.format(', '.join([f'{val}' for val in self.fst_vt['ExtPtfm']['InitPosList']]), 'InitPosList', '- List of initial positions for the CB modes [unused if NInitPosList<=0 or EquilStart=True]\n'))
f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['ExtPtfm']['NInitVelList'], 'NInitVelList', '- Number of initial positions listed in InitVelList, using 0 implies all DOF initialized to 0 (integer)\n'))
f.write('{:<22} {:<11} {:}'.format(', '.join([f'{val}' for val in self.fst_vt['ExtPtfm']['InitVelList']]), 'InitVelList', '- List of initial velocities for the CB modes [unused if NInitVelPosList<=0 or EquilStart=True]\n'))
-
+ f.write('---------------------- CONNECTION INPUTS ---------------------------------------\n')
+ f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ExtPtfm']['HasConnections'], 'Connections', '- Flag for connection points on the structure (flag)\n'))
+ f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ExtPtfm']['Conn_FileName'], 'Conn_FileName', '- Path of the file containing connection points (-)\n'))
+ f.write('---------------------- USER FORCING INPUTS -------------------------------------\n')
+ f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ExtPtfm']['HasUserForcing'], 'UserForcing', '- Flag for user-prescribed modal forcing (flag)\n'))
+ f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ExtPtfm']['Force_FileName'], 'Force_FileName', '- Path of the file containing user forcing time series (-)\n'))
+ f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ExtPtfm']['HasConnForcing'], 'ConnForcing', '- Flag for user-prescribed connection forcing (flag)\n'))
+ f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ExtPtfm']['FConn_FileName'], 'FConn_FileName', '- Path of the file containing user connection force time series (-)\n'))
f.write('---------------------- OUTPUT --------------------------------------------------\n')
f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['ExtPtfm']['SumPrint'], 'SumPrint', '- Print summary data to .sum (flag)\n'))
f.write('{:<22d} {:<11} {:}'.format(self.fst_vt['ExtPtfm']['OutFile'], 'OutFile', '- Switch to determine where output will be placed: {1: in module output file only; 2: in glue code output file only; 3: both} (currently unused)\n'))
@@ -2414,34 +2425,29 @@ def write_ExtPtfm(self):
f.close()
-
def write_Superelement(self):
def toString(SuperElement):
# Function based on https://github.com/OpenFAST/openfast_toolbox/blob/353643ed917d113ec8dfd765813fef7d09752757/openfast_toolbox/io/fast_input_file.py#L2034
# Developed by Emmanuel Branlard (https://github.com/ebranlard)
s=''
- s+='!Comment\n'
- s+='!Comment Flex 5 Format\n'
s+='!Dimension: {}\n'.format(SuperElement['nDOF'])
- s+='!Time increment in simulation: {}\n'.format(SuperElement['dt'])
- s+='!Total simulation time in file: {}\n'.format(SuperElement['T'])
s+='\n!Mass Matrix\n'
- s+='!Dimension: {}\n'.format(SuperElement['nDOF'])
s+='\n'.join(''.join('{:16.8e}'.format(x) for x in y) for y in SuperElement['MassMatrix'])
s+='\n\n!Stiffness Matrix\n'
- s+='!Dimension: {}\n'.format(SuperElement['nDOF'])
s+='\n'.join(''.join('{:16.8e}'.format(x) for x in y) for y in SuperElement['StiffnessMatrix'])
s+='\n\n!Damping Matrix\n'
- s+='!Dimension: {}\n'.format(SuperElement['nDOF'])
s+='\n'.join(''.join('{:16.8e}'.format(x) for x in y) for y in SuperElement['DampingMatrix'])
- s+='\n\n!Loading and Wave Elevation\n'
- s+='!Dimension: 1 time column - {} force columns\n'.format(SuperElement['nDOF'])
- s+='\n'.join(''.join('{:16.8e}'.format(x) for x in y) for y in SuperElement['Loading'])
+ s+='\n\n!Weight constant\n'
+ s+='\n'.join(''.join('{:16.8e}'.format(x) for x in y) for y in SuperElement['WeightConstant'])
+
+ s+='\n\n!Weight stiffness matrix\n'
+ s+='\n'.join(''.join('{:16.8e}'.format(x) for x in y) for y in SuperElement['WeightStiffness'])
+
return s
# Generate Superelement input file
@@ -2455,6 +2461,85 @@ def toString(SuperElement):
os.fsync(f)
f.close()
+
+ def write_Connections(self):
+
+ def toString(Connections):
+ # Function based on https://github.com/OpenFAST/openfast_toolbox/blob/353643ed917d113ec8dfd765813fef7d09752757/openfast_toolbox/io/fast_input_file.py#L2034
+ # Developed by Emmanuel Branlard (https://github.com/ebranlard)
+ s=''
+ s+='!nConn: {}\n'.format(Connections['nConn'])
+
+ s+='\n!Connections\n'
+ s+='\n'.join(''.join('{:16.8e}'.format(x) for x in y) for y in Connections['Position'])
+
+ s+='\n\n!Displacement\n'
+ s+='\n'.join(''.join('{:16.8e}'.format(x) for x in y) for y in Connections['Displacement'])
+
+ return s
+
+ # Generate Superelement input file
+ self.fst_vt['ExtPtfm']['Conn_FileName'] = self.FAST_namingOut + '_ExtPtfm_Conn.dat'
+ conn_file = os.path.join(self.FAST_runDirectory, self.fst_vt['ExtPtfm']['Conn_FileName'])
+ f = open(conn_file, 'w')
+
+ f.write(toString(self.fst_vt['ExtPtfm']['Connections']))
+
+ f.flush()
+ os.fsync(f)
+ f.close()
+
+
+ def write_UserForcing(self):
+
+ def toString(UserForcing):
+ # Function based on https://github.com/OpenFAST/openfast_toolbox/blob/353643ed917d113ec8dfd765813fef7d09752757/openfast_toolbox/io/fast_input_file.py#L2034
+ # Developed by Emmanuel Branlard (https://github.com/ebranlard)
+ s=''
+ s+='!nSteps: {}\n'.format(UserForcing['nSteps'])
+
+ s+='\n!Forcing:\n'
+ s+='\n'.join(''.join('{:16.8e}'.format(x) for x in y) for y in UserForcing['ForceTimeSeries'])
+
+ return s
+
+ # Generate user forcing input file
+ self.fst_vt['ExtPtfm']['Force_FileName'] = self.FAST_namingOut + '_ExtPtfm_UserFrc.dat'
+ UserFrc_file = os.path.join(self.FAST_runDirectory, self.fst_vt['ExtPtfm']['Force_FileName'])
+ f = open(UserFrc_file, 'w')
+
+ f.write(toString(self.fst_vt['ExtPtfm']['UserForcing']))
+
+ f.flush()
+ os.fsync(f)
+ f.close()
+
+
+ def write_ConnForcing(self):
+
+ def toString(ConnForcing):
+ # Function based on https://github.com/OpenFAST/openfast_toolbox/blob/353643ed917d113ec8dfd765813fef7d09752757/openfast_toolbox/io/fast_input_file.py#L2034
+ # Developed by Emmanuel Branlard (https://github.com/ebranlard)
+ s=''
+ s+='!nSteps: {}\n'.format(ConnForcing['nSteps'])
+
+ s+='\n!Forcing:\n'
+ s+='\n'.join(''.join('{:16.8e}'.format(x) for x in y) for y in ConnForcing['ForceTimeSeries'])
+
+ return s
+
+ # Generate user forcing input file
+ self.fst_vt['ExtPtfm']['FConn_FileName'] = self.FAST_namingOut + '_ExtPtfm_ConnFrc.dat'
+ ConnFrc_file = os.path.join(self.FAST_runDirectory, self.fst_vt['ExtPtfm']['FConn_FileName'])
+ f = open(ConnFrc_file, 'w')
+
+ f.write(toString(self.fst_vt['ExtPtfm']['ConnForcing']))
+
+ f.flush()
+ os.fsync(f)
+ f.close()
+
+
def write_MAP(self):
# Generate MAP++ input file
diff --git a/openfast_io/openfast_io/FileTools.py b/openfast_io/openfast_io/FileTools.py
index e372ee2e72..b9ee030ca4 100644
--- a/openfast_io/openfast_io/FileTools.py
+++ b/openfast_io/openfast_io/FileTools.py
@@ -389,7 +389,7 @@ def cleanup_fstvt(fst_vt, ignoreVars=None, removeFileRef=False, removeArrayProps
'HydroFile',
'SubFile',
'MooringFile',
- 'Red_FileName',
+ 'Red_FileName', 'Conn_FileName', 'Force_FileName', 'FConn_FileName',
'PrescribedForcesFile',
'actuatorDiskFile',
'BDBldFile(1)', 'BDBldFile(2)', 'BDBldFile(3)',
diff --git a/reg_tests/r-test b/reg_tests/r-test
index 5c1b8ad8ed..6e3a6427a7 160000
--- a/reg_tests/r-test
+++ b/reg_tests/r-test
@@ -1 +1 @@
-Subproject commit 5c1b8ad8edfddf34b4458d3e1e238faaa980d38b
+Subproject commit 6e3a6427a7d7e9eb19dae4ba3219c0822bd7458e