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.

CFormation.f90 1.8 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
12345678910111213141516171819202122232425262728293031323334353637
  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