module CWellSurveyData use CWellSurveyDataVariables implicit none public contains integer function SetSurveyData(count, array) !DEC$ ATTRIBUTES DLLEXPORT::SetSurveyData !DEC$ ATTRIBUTES ALIAS: 'SetSurveyData' :: SetSurveyData implicit none integer, intent(in) :: count integer :: i type(CSurveyDataItem), intent(inout), target :: array(count) type(CSurveyDataItem), pointer :: item WellSurveyData%Count = count if(size(WellSurveyData%Items) > 0) then deallocate(WellSurveyData%Items) end if if(count > 0) then allocate(WellSurveyData%Items(count)) do i = 1, count item => array(i) WellSurveyData%Items(i)%MeasuredDepth = item%MeasuredDepth WellSurveyData%Items(i)%Inclination = item%Inclination WellSurveyData%Items(i)%Azimoth = item%Azimoth WellSurveyData%Items(i)%TotalVerticalDepth = item%TotalVerticalDepth WellSurveyData%Items(i)%X = item%X WellSurveyData%Items(i)%Y = item%Y WellSurveyData%Items(i)%Z = item%Z end do end if SetSurveyData = 0 end function SetSurveyData end module CWellSurveyData