Skip to content

Commit

Permalink
Merge pull request #2365 from deslaughter/b/registry_restore_cobj
Browse files Browse the repository at this point in the history
Bugfix for OpenFAST Registry incorrectly restoring pointers in modules with CObjs (ExtLd)
  • Loading branch information
andrew-platt authored Aug 12, 2024
2 parents 8b09b6d + 68f8f75 commit 0c50beb
Show file tree
Hide file tree
Showing 19 changed files with 201 additions and 179 deletions.
2 changes: 1 addition & 1 deletion glue-codes/fast-farm/src/FASTWrapper_Types.f90
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@ subroutine FWrap_UnPackInitInput(RF, OutData)
call RegUnpack(RF, OutData%UseSC); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%fromSCGlob); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackAlloc(RF, OutData%fromSC); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%Vdist_High); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%Vdist_High, LB, UB); if (RegCheckErr(RF, RoutineName)) return
end subroutine

subroutine FWrap_CopyInitOutput(SrcInitOutputData, DstInitOutputData, CtrlCode, ErrStat, ErrMsg)
Expand Down
2 changes: 1 addition & 1 deletion glue-codes/openfast-cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ if (BUILD_OPENFAST_CPP_DRIVER)

install(TARGETS openfastcpp
EXPORT "${CMAKE_PROJECT_NAME}Libraries"
RUNTIME DESTINATION lib
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
PUBLIC_HEADER DESTINATION include
Expand Down
4 changes: 2 additions & 2 deletions modules/awae/src/AWAE_Types.f90
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,7 @@ subroutine AWAE_UnPackHighWindGrid(RF, OutData)
integer(B8Ki) :: PtrIdx
type(c_ptr) :: Ptr
if (RF%ErrStat /= ErrID_None) return
call RegUnpackPtr(RF, OutData%data); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%data, LB, UB); if (RegCheckErr(RF, RoutineName)) return
end subroutine

subroutine AWAE_CopyHighWindGridPtr(SrcHighWindGridPtrData, DstHighWindGridPtrData, CtrlCode, ErrStat, ErrMsg)
Expand Down Expand Up @@ -359,7 +359,7 @@ subroutine AWAE_UnPackHighWindGridPtr(RF, OutData)
integer(B8Ki) :: PtrIdx
type(c_ptr) :: Ptr
if (RF%ErrStat /= ErrID_None) return
call RegUnpackPtr(RF, OutData%data); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%data, LB, UB); if (RegCheckErr(RF, RoutineName)) return
end subroutine

subroutine AWAE_CopyInputFileType(SrcInputFileTypeData, DstInputFileTypeData, CtrlCode, ErrStat, ErrMsg)
Expand Down
48 changes: 24 additions & 24 deletions modules/externalinflow/src/ExternalInflow_Types.f90
Original file line number Diff line number Diff line change
Expand Up @@ -317,12 +317,12 @@ subroutine ExtInfw_UnPackInitInput(RF, OutData)
OutData%C_obj%NumActForcePtsBlade = OutData%NumActForcePtsBlade
call RegUnpack(RF, OutData%NumActForcePtsTower); if (RegCheckErr(RF, RoutineName)) return
OutData%C_obj%NumActForcePtsTower = OutData%NumActForcePtsTower
call RegUnpackPtr(RF, OutData%StructBldRNodes); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%StructBldRNodes, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%StructBldRNodes)) then
OutData%C_obj%StructBldRNodes_Len = size(OutData%StructBldRNodes)
if (OutData%C_obj%StructBldRNodes_Len > 0) OutData%C_obj%StructBldRNodes = c_loc(OutData%StructBldRNodes(LB(1)))
end if
call RegUnpackPtr(RF, OutData%StructTwrHNodes); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%StructTwrHNodes, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%StructTwrHNodes)) then
OutData%C_obj%StructTwrHNodes_Len = size(OutData%StructTwrHNodes)
if (OutData%C_obj%StructTwrHNodes_Len > 0) OutData%C_obj%StructTwrHNodes = c_loc(OutData%StructTwrHNodes(LB(1)))
Expand Down Expand Up @@ -1034,12 +1034,12 @@ subroutine ExtInfw_UnPackParam(RF, OutData)
OutData%C_obj%NnodesForceBlade = OutData%NnodesForceBlade
call RegUnpack(RF, OutData%NnodesForceTower); if (RegCheckErr(RF, RoutineName)) return
OutData%C_obj%NnodesForceTower = OutData%NnodesForceTower
call RegUnpackPtr(RF, OutData%forceBldRnodes); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%forceBldRnodes, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%forceBldRnodes)) then
OutData%C_obj%forceBldRnodes_Len = size(OutData%forceBldRnodes)
if (OutData%C_obj%forceBldRnodes_Len > 0) OutData%C_obj%forceBldRnodes = c_loc(OutData%forceBldRnodes(LB(1)))
end if
call RegUnpackPtr(RF, OutData%forceTwrHnodes); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%forceTwrHnodes, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%forceTwrHnodes)) then
OutData%C_obj%forceTwrHnodes_Len = size(OutData%forceTwrHnodes)
if (OutData%C_obj%forceTwrHnodes_Len > 0) OutData%C_obj%forceTwrHnodes = c_loc(OutData%forceTwrHnodes(LB(1)))
Expand Down Expand Up @@ -1571,87 +1571,87 @@ subroutine ExtInfw_UnPackInput(RF, OutData)
integer(B8Ki) :: PtrIdx
type(c_ptr) :: Ptr
if (RF%ErrStat /= ErrID_None) return
call RegUnpackPtr(RF, OutData%pxVel); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%pxVel, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%pxVel)) then
OutData%C_obj%pxVel_Len = size(OutData%pxVel)
if (OutData%C_obj%pxVel_Len > 0) OutData%C_obj%pxVel = c_loc(OutData%pxVel(LB(1)))
end if
call RegUnpackPtr(RF, OutData%pyVel); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%pyVel, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%pyVel)) then
OutData%C_obj%pyVel_Len = size(OutData%pyVel)
if (OutData%C_obj%pyVel_Len > 0) OutData%C_obj%pyVel = c_loc(OutData%pyVel(LB(1)))
end if
call RegUnpackPtr(RF, OutData%pzVel); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%pzVel, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%pzVel)) then
OutData%C_obj%pzVel_Len = size(OutData%pzVel)
if (OutData%C_obj%pzVel_Len > 0) OutData%C_obj%pzVel = c_loc(OutData%pzVel(LB(1)))
end if
call RegUnpackPtr(RF, OutData%pxForce); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%pxForce, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%pxForce)) then
OutData%C_obj%pxForce_Len = size(OutData%pxForce)
if (OutData%C_obj%pxForce_Len > 0) OutData%C_obj%pxForce = c_loc(OutData%pxForce(LB(1)))
end if
call RegUnpackPtr(RF, OutData%pyForce); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%pyForce, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%pyForce)) then
OutData%C_obj%pyForce_Len = size(OutData%pyForce)
if (OutData%C_obj%pyForce_Len > 0) OutData%C_obj%pyForce = c_loc(OutData%pyForce(LB(1)))
end if
call RegUnpackPtr(RF, OutData%pzForce); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%pzForce, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%pzForce)) then
OutData%C_obj%pzForce_Len = size(OutData%pzForce)
if (OutData%C_obj%pzForce_Len > 0) OutData%C_obj%pzForce = c_loc(OutData%pzForce(LB(1)))
end if
call RegUnpackPtr(RF, OutData%xdotForce); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%xdotForce, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%xdotForce)) then
OutData%C_obj%xdotForce_Len = size(OutData%xdotForce)
if (OutData%C_obj%xdotForce_Len > 0) OutData%C_obj%xdotForce = c_loc(OutData%xdotForce(LB(1)))
end if
call RegUnpackPtr(RF, OutData%ydotForce); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%ydotForce, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%ydotForce)) then
OutData%C_obj%ydotForce_Len = size(OutData%ydotForce)
if (OutData%C_obj%ydotForce_Len > 0) OutData%C_obj%ydotForce = c_loc(OutData%ydotForce(LB(1)))
end if
call RegUnpackPtr(RF, OutData%zdotForce); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%zdotForce, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%zdotForce)) then
OutData%C_obj%zdotForce_Len = size(OutData%zdotForce)
if (OutData%C_obj%zdotForce_Len > 0) OutData%C_obj%zdotForce = c_loc(OutData%zdotForce(LB(1)))
end if
call RegUnpackPtr(RF, OutData%pOrientation); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%pOrientation, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%pOrientation)) then
OutData%C_obj%pOrientation_Len = size(OutData%pOrientation)
if (OutData%C_obj%pOrientation_Len > 0) OutData%C_obj%pOrientation = c_loc(OutData%pOrientation(LB(1)))
end if
call RegUnpackPtr(RF, OutData%fx); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%fx, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%fx)) then
OutData%C_obj%fx_Len = size(OutData%fx)
if (OutData%C_obj%fx_Len > 0) OutData%C_obj%fx = c_loc(OutData%fx(LB(1)))
end if
call RegUnpackPtr(RF, OutData%fy); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%fy, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%fy)) then
OutData%C_obj%fy_Len = size(OutData%fy)
if (OutData%C_obj%fy_Len > 0) OutData%C_obj%fy = c_loc(OutData%fy(LB(1)))
end if
call RegUnpackPtr(RF, OutData%fz); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%fz, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%fz)) then
OutData%C_obj%fz_Len = size(OutData%fz)
if (OutData%C_obj%fz_Len > 0) OutData%C_obj%fz = c_loc(OutData%fz(LB(1)))
end if
call RegUnpackPtr(RF, OutData%momentx); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%momentx, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%momentx)) then
OutData%C_obj%momentx_Len = size(OutData%momentx)
if (OutData%C_obj%momentx_Len > 0) OutData%C_obj%momentx = c_loc(OutData%momentx(LB(1)))
end if
call RegUnpackPtr(RF, OutData%momenty); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%momenty, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%momenty)) then
OutData%C_obj%momenty_Len = size(OutData%momenty)
if (OutData%C_obj%momenty_Len > 0) OutData%C_obj%momenty = c_loc(OutData%momenty(LB(1)))
end if
call RegUnpackPtr(RF, OutData%momentz); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%momentz, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%momentz)) then
OutData%C_obj%momentz_Len = size(OutData%momentz)
if (OutData%C_obj%momentz_Len > 0) OutData%C_obj%momentz = c_loc(OutData%momentz(LB(1)))
end if
call RegUnpackPtr(RF, OutData%forceNodesChord); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%forceNodesChord, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%forceNodesChord)) then
OutData%C_obj%forceNodesChord_Len = size(OutData%forceNodesChord)
if (OutData%C_obj%forceNodesChord_Len > 0) OutData%C_obj%forceNodesChord = c_loc(OutData%forceNodesChord(LB(1)))
Expand Down Expand Up @@ -2176,17 +2176,17 @@ subroutine ExtInfw_UnPackOutput(RF, OutData)
integer(B8Ki) :: PtrIdx
type(c_ptr) :: Ptr
if (RF%ErrStat /= ErrID_None) return
call RegUnpackPtr(RF, OutData%u); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%u, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%u)) then
OutData%C_obj%u_Len = size(OutData%u)
if (OutData%C_obj%u_Len > 0) OutData%C_obj%u = c_loc(OutData%u(LB(1)))
end if
call RegUnpackPtr(RF, OutData%v); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%v, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%v)) then
OutData%C_obj%v_Len = size(OutData%v)
if (OutData%C_obj%v_Len > 0) OutData%C_obj%v = c_loc(OutData%v(LB(1)))
end if
call RegUnpackPtr(RF, OutData%w); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%w, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%w)) then
OutData%C_obj%w_Len = size(OutData%w)
if (OutData%C_obj%w_Len > 0) OutData%C_obj%w = c_loc(OutData%w(LB(1)))
Expand Down
40 changes: 20 additions & 20 deletions modules/extloads/src/ExtLoadsDX_Types.f90
Original file line number Diff line number Diff line change
Expand Up @@ -296,32 +296,32 @@ subroutine ExtLdDX_UnPackInput(RF, OutData)
integer(B8Ki) :: PtrIdx
type(c_ptr) :: Ptr
if (RF%ErrStat /= ErrID_None) return
call RegUnpackPtr(RF, OutData%twrDef); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%twrDef, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%twrDef)) then
OutData%C_obj%twrDef_Len = size(OutData%twrDef)
if (OutData%C_obj%twrDef_Len > 0) OutData%C_obj%twrDef = c_loc(OutData%twrDef(LB(1)))
end if
call RegUnpackPtr(RF, OutData%bldDef); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%bldDef, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%bldDef)) then
OutData%C_obj%bldDef_Len = size(OutData%bldDef)
if (OutData%C_obj%bldDef_Len > 0) OutData%C_obj%bldDef = c_loc(OutData%bldDef(LB(1)))
end if
call RegUnpackPtr(RF, OutData%hubDef); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%hubDef, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%hubDef)) then
OutData%C_obj%hubDef_Len = size(OutData%hubDef)
if (OutData%C_obj%hubDef_Len > 0) OutData%C_obj%hubDef = c_loc(OutData%hubDef(LB(1)))
end if
call RegUnpackPtr(RF, OutData%nacDef); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%nacDef, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%nacDef)) then
OutData%C_obj%nacDef_Len = size(OutData%nacDef)
if (OutData%C_obj%nacDef_Len > 0) OutData%C_obj%nacDef = c_loc(OutData%nacDef(LB(1)))
end if
call RegUnpackPtr(RF, OutData%bldRootDef); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%bldRootDef, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%bldRootDef)) then
OutData%C_obj%bldRootDef_Len = size(OutData%bldRootDef)
if (OutData%C_obj%bldRootDef_Len > 0) OutData%C_obj%bldRootDef = c_loc(OutData%bldRootDef(LB(1)))
end if
call RegUnpackPtr(RF, OutData%bldPitch); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%bldPitch, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%bldPitch)) then
OutData%C_obj%bldPitch_Len = size(OutData%bldPitch)
if (OutData%C_obj%bldPitch_Len > 0) OutData%C_obj%bldPitch = c_loc(OutData%bldPitch(LB(1)))
Expand Down Expand Up @@ -797,62 +797,62 @@ subroutine ExtLdDX_UnPackParam(RF, OutData)
integer(B8Ki) :: PtrIdx
type(c_ptr) :: Ptr
if (RF%ErrStat /= ErrID_None) return
call RegUnpackPtr(RF, OutData%nBlades); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%nBlades, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%nBlades)) then
OutData%C_obj%nBlades_Len = size(OutData%nBlades)
if (OutData%C_obj%nBlades_Len > 0) OutData%C_obj%nBlades = c_loc(OutData%nBlades(LB(1)))
end if
call RegUnpackPtr(RF, OutData%nBladeNodes); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%nBladeNodes, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%nBladeNodes)) then
OutData%C_obj%nBladeNodes_Len = size(OutData%nBladeNodes)
if (OutData%C_obj%nBladeNodes_Len > 0) OutData%C_obj%nBladeNodes = c_loc(OutData%nBladeNodes(LB(1)))
end if
call RegUnpackPtr(RF, OutData%nTowerNodes); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%nTowerNodes, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%nTowerNodes)) then
OutData%C_obj%nTowerNodes_Len = size(OutData%nTowerNodes)
if (OutData%C_obj%nTowerNodes_Len > 0) OutData%C_obj%nTowerNodes = c_loc(OutData%nTowerNodes(LB(1)))
end if
call RegUnpackPtr(RF, OutData%twrRefPos); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%twrRefPos, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%twrRefPos)) then
OutData%C_obj%twrRefPos_Len = size(OutData%twrRefPos)
if (OutData%C_obj%twrRefPos_Len > 0) OutData%C_obj%twrRefPos = c_loc(OutData%twrRefPos(LB(1)))
end if
call RegUnpackPtr(RF, OutData%bldRefPos); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%bldRefPos, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%bldRefPos)) then
OutData%C_obj%bldRefPos_Len = size(OutData%bldRefPos)
if (OutData%C_obj%bldRefPos_Len > 0) OutData%C_obj%bldRefPos = c_loc(OutData%bldRefPos(LB(1)))
end if
call RegUnpackPtr(RF, OutData%hubRefPos); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%hubRefPos, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%hubRefPos)) then
OutData%C_obj%hubRefPos_Len = size(OutData%hubRefPos)
if (OutData%C_obj%hubRefPos_Len > 0) OutData%C_obj%hubRefPos = c_loc(OutData%hubRefPos(LB(1)))
end if
call RegUnpackPtr(RF, OutData%nacRefPos); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%nacRefPos, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%nacRefPos)) then
OutData%C_obj%nacRefPos_Len = size(OutData%nacRefPos)
if (OutData%C_obj%nacRefPos_Len > 0) OutData%C_obj%nacRefPos = c_loc(OutData%nacRefPos(LB(1)))
end if
call RegUnpackPtr(RF, OutData%bldRootRefPos); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%bldRootRefPos, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%bldRootRefPos)) then
OutData%C_obj%bldRootRefPos_Len = size(OutData%bldRootRefPos)
if (OutData%C_obj%bldRootRefPos_Len > 0) OutData%C_obj%bldRootRefPos = c_loc(OutData%bldRootRefPos(LB(1)))
end if
call RegUnpackPtr(RF, OutData%bldChord); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%bldChord, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%bldChord)) then
OutData%C_obj%bldChord_Len = size(OutData%bldChord)
if (OutData%C_obj%bldChord_Len > 0) OutData%C_obj%bldChord = c_loc(OutData%bldChord(LB(1)))
end if
call RegUnpackPtr(RF, OutData%bldRloc); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%bldRloc, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%bldRloc)) then
OutData%C_obj%bldRloc_Len = size(OutData%bldRloc)
if (OutData%C_obj%bldRloc_Len > 0) OutData%C_obj%bldRloc = c_loc(OutData%bldRloc(LB(1)))
end if
call RegUnpackPtr(RF, OutData%twrDia); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%twrDia, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%twrDia)) then
OutData%C_obj%twrDia_Len = size(OutData%twrDia)
if (OutData%C_obj%twrDia_Len > 0) OutData%C_obj%twrDia = c_loc(OutData%twrDia(LB(1)))
end if
call RegUnpackPtr(RF, OutData%twrHloc); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%twrHloc, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%twrHloc)) then
OutData%C_obj%twrHloc_Len = size(OutData%twrHloc)
if (OutData%C_obj%twrHloc_Len > 0) OutData%C_obj%twrHloc = c_loc(OutData%twrHloc(LB(1)))
Expand Down Expand Up @@ -1234,12 +1234,12 @@ subroutine ExtLdDX_UnPackOutput(RF, OutData)
integer(B8Ki) :: PtrIdx
type(c_ptr) :: Ptr
if (RF%ErrStat /= ErrID_None) return
call RegUnpackPtr(RF, OutData%twrLd); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%twrLd, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%twrLd)) then
OutData%C_obj%twrLd_Len = size(OutData%twrLd)
if (OutData%C_obj%twrLd_Len > 0) OutData%C_obj%twrLd = c_loc(OutData%twrLd(LB(1)))
end if
call RegUnpackPtr(RF, OutData%bldLd); if (RegCheckErr(RF, RoutineName)) return
call RegUnpackPtr(RF, OutData%bldLd, LB, UB); if (RegCheckErr(RF, RoutineName)) return
if (associated(OutData%bldLd)) then
OutData%C_obj%bldLd_Len = size(OutData%bldLd)
if (OutData%C_obj%bldLd_Len > 0) OutData%C_obj%bldLd = c_loc(OutData%bldLd(LB(1)))
Expand Down
Loading

0 comments on commit 0c50beb

Please sign in to comment.