module CPathGeneration use CPathGenerationVariables implicit none public contains integer function SetPathGeneration(count, array) !DEC$ ATTRIBUTES DLLEXPORT::SetPathGeneration !DEC$ ATTRIBUTES ALIAS: 'SetPathGeneration' :: SetPathGeneration implicit none integer, intent(in) :: count integer :: i type(CPathGenerationItem), intent(inout), target :: array(count) type(CPathGenerationItem), pointer :: item PathGeneration%ItemCount = count if(size(PathGeneration%Items) > 0) then deallocate(PathGeneration%Items) end if if(count > 0) then allocate(PathGeneration%Items(count)) do i = 1, count item => array(i) PathGeneration%Items(i)%HoleType = item%HoleType PathGeneration%Items(i)%Angle = item%Angle PathGeneration%Items(i)%Length = item%Length PathGeneration%Items(i)%FinalAngle = item%FinalAngle PathGeneration%Items(i)%TotalLength = item%TotalLength PathGeneration%Items(i)%MeasuredDepth = item%MeasuredDepth PathGeneration%Items(i)%TotalVerticalDepth = item%TotalVerticalDepth end do end if SetPathGeneration = 0 end function SetPathGeneration integer function SetPathGenerationDataPoints(count, array) !DEC$ ATTRIBUTES DLLEXPORT::SetPathGenerationDataPoints !DEC$ ATTRIBUTES ALIAS: 'SetPathGenerationDataPoints' :: SetPathGenerationDataPoints implicit none integer, intent(in) :: count integer :: i type(CDataPointItem), intent(inout), target :: array(count) type(CDataPointItem), pointer :: item PathGeneration%DataPointsCount = count if(size(PathGeneration%DataPoints) > 0) then deallocate(PathGeneration%DataPoints) end if if(count > 0) then allocate(PathGeneration%DataPoints(count)) do i = 1, count item => array(i) PathGeneration%DataPoints(i)%X = item%X PathGeneration%DataPoints(i)%Y = item%Y end do end if SetPathGenerationDataPoints = 0 end function SetPathGenerationDataPoints end module CPathGeneration