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 PathGenerationCount = count if(size(PathGenerations) > 0) then deallocate(PathGenerations) end if if(count > 0) then allocate(PathGenerations(count)) do i = 1, count item => array(i) PathGenerations(i)%HoleType = item%HoleType PathGenerations(i)%Angle = item%Angle PathGenerations(i)%Length = item%Length PathGenerations(i)%FinalAngle = item%FinalAngle PathGenerations(i)%TotalLength = item%TotalLength PathGenerations(i)%MeasuredDepth = item%MeasuredDepth PathGenerations(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 PathGenerationDataPointsCount = count if(size(PathGenerationDataPoints) > 0) then deallocate(PathGenerationDataPoints) end if if(count > 0) then allocate(PathGenerationDataPoints(count)) do i = 1, count item => array(i) PathGenerationDataPoints(i)%X = item%X PathGenerationDataPoints(i)%Y = item%Y end do end if SetPathGenerationDataPoints = 0 end function SetPathGenerationDataPoints end module CPathGeneration