Simulation Core
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

37 lines
1.5 KiB

  1. module CFormation
  2. use CFormationVariables
  3. implicit none
  4. public
  5. contains
  6. integer function SetFormations(count, array)
  7. !DEC$ ATTRIBUTES DLLEXPORT::SetFormations
  8. !DEC$ ATTRIBUTES ALIAS: 'SetFormations' :: SetFormations
  9. implicit none
  10. integer, intent(in) :: count
  11. integer :: i
  12. type(CFormationItem), intent(inout), target :: array(count)
  13. type(CFormationItem), pointer :: item
  14. Formation%Count = count
  15. if(size(Formation%Formations) > 0) then
  16. deallocate(Formation%Formations)
  17. end if
  18. if(count > 0) then
  19. allocate(Formation%Formations(count))
  20. do i = 1, count
  21. item => array(i)
  22. Formation%Formations(i)%Top = item%Top
  23. Formation%Formations(i)%Thickness = item%Thickness
  24. Formation%Formations(i)%Drillablity = item%Drillablity
  25. Formation%Formations(i)%Abrasiveness = item%Abrasiveness
  26. Formation%Formations(i)%ThresholdWeight = item%ThresholdWeight
  27. Formation%Formations(i)%PorePressureGradient = item%PorePressureGradient
  28. !print*, "==========================="
  29. !print*, "Formations(", i, ")%Top=", Formations(i)%Top
  30. !print*, "Formations(",i,")%Thickness", Formations(i)%Thickness
  31. !print*, "Formations(",i,")%Drillablity", Formations(i)%Drillablity
  32. end do
  33. end if
  34. SetFormations = 0
  35. end function SetFormations
  36. end module CFormation