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.8 KiB

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