module CFormation use CFormationVariables use ConfigurationVariables implicit none public contains integer function SetFormations(count, array) !DEC$ ATTRIBUTES DLLEXPORT::SetFormations !DEC$ ATTRIBUTES ALIAS: 'SetFormations' :: SetFormations implicit none integer, intent(in) :: count integer :: i type(CFormationItem), intent(inout), target :: array(count) type(CFormationItem), pointer :: item data%Configuration%Formation%Count = count if(size(data%Configuration%Formation%Formations) > 0) then deallocate(data%Configuration%Formation%Formations) end if if(count > 0) then allocate(data%Configuration%Formation%Formations(count)) do i = 1, count item => array(i) data%Configuration%Formation%Formations(i)%Top = item%Top data%Configuration%Formation%Formations(i)%Thickness = item%Thickness data%Configuration%Formation%Formations(i)%Drillablity = item%Drillablity data%Configuration%Formation%Formations(i)%Abrasiveness = item%Abrasiveness data%Configuration%Formation%Formations(i)%ThresholdWeight = item%ThresholdWeight data%Configuration%Formation%Formations(i)%PorePressureGradient = item%PorePressureGradient !print*, "===========================" !print*, "Formations(", i, ")%Top=", Formations(i)%Top !print*, "Formations(",i,")%Thickness", Formations(i)%Thickness !print*, "Formations(",i,")%Drillablity", Formations(i)%Drillablity end do end if SetFormations = 0 end function SetFormations end module CFormation