@@ -29,5 +29,32 @@ module CPower | |||||
call json%add(parent,p) | call json%add(parent,p) | ||||
end subroutine | end subroutine | ||||
subroutine PowerFromJson(parent) | |||||
use json_module,IK =>json_ik | |||||
type(json_value),pointer :: parent | |||||
type(json_core) :: json | |||||
type(json_value),pointer :: p,pitems,pitem,pval,pbit | |||||
call json%get(parent,'Power',p) | |||||
call json%get(p,"CementPump",pitem) | |||||
call json%get(pitem,data%Configuration%Power%CementPump) | |||||
call json%get(p,"Drawworks",pitem) | |||||
call json%get(pitem,data%Configuration%Power%Drawworks) | |||||
call json%get(p,"GeneratorPowerRating",pitem) | |||||
call json%get(pitem,data%Configuration%Power%GeneratorPowerRating) | |||||
call json%get(p,"MudPump1",pitem) | |||||
call json%get(pitem,data%Configuration%Power%MudPump1) | |||||
call json%get(p,"MudPump2",pitem) | |||||
call json%get(pitem,data%Configuration%Power%MudPump2) | |||||
call json%get(p,"NumberOfgenerators",pitem) | |||||
call json%get(pitem,data%Configuration%Power%NumberOfgenerators) | |||||
call json%get(p,"RotaryTable",pitem) | |||||
call json%get(pitem,data%Configuration%Power%RotaryTable) | |||||
call json%get(p,"TopDrive",pitem) | |||||
call json%get(pitem,data%Configuration%Power%TopDrive) | |||||
end subroutine | |||||
end module CPower | end module CPower |
@@ -55,6 +55,83 @@ module CPumps | |||||
call json%add(parent,p) | call json%add(parent,p) | ||||
end subroutine | end subroutine | ||||
subroutine PumpsFromJson(parent) | |||||
use json_module,IK =>json_ik | |||||
type(json_value),pointer :: parent | |||||
type(json_core) :: json | |||||
type(json_value),pointer :: p,pitems,pitem,pval,pbit | |||||
call json%get(parent,'Pumps',p) | |||||
call json%get(p,"MudPump1LinerDiameter",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%MudPump1LinerDiameter) | |||||
call json%get(p,"MudPump1Stroke",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%MudPump1Stroke) | |||||
call json%get(p,"MudPump1MechanicalEfficiency",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%MudPump1MechanicalEfficiency) | |||||
call json%get(p,"MudPump1VolumetricEfficiency",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%MudPump1VolumetricEfficiency) | |||||
call json%get(p,"MudPump1Output",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%MudPump1Output) | |||||
call json%get(p,"MudPump1OutputBblStroke",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%MudPump1OutputBblStroke) | |||||
call json%get(p,"MudPump1Maximum",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%MudPump1Maximum) | |||||
call json%get(p,"MudPump1ReliefValvePressure",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%MudPump1ReliefValvePressure) | |||||
call json%get(p,"MudPump2LinerDiameter",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%MudPump2LinerDiameter) | |||||
call json%get(p,"MudPump2Stroke",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%MudPump2Stroke) | |||||
call json%get(p,"MudPump2MechanicalEfficiency",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%MudPump2MechanicalEfficiency) | |||||
call json%get(p,"MudPump2VolumetricEfficiency",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%MudPump2VolumetricEfficiency) | |||||
call json%get(p,"MudPump2Output",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%MudPump2Output) | |||||
call json%get(p,"MudPump2OutputBblStroke",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%MudPump2OutputBblStroke) | |||||
call json%get(p,"MudPump2Maximum",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%MudPump2Maximum) | |||||
call json%get(p,"MudPump2ReliefValvePressure",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%MudPump2ReliefValvePressure) | |||||
call json%get(p,"CementPumpLinerDiameter",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%CementPumpLinerDiameter) | |||||
call json%get(p,"CementPumpStroke",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%CementPumpStroke) | |||||
call json%get(p,"CementPumpMechanicalEfficiency",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%CementPumpMechanicalEfficiency) | |||||
call json%get(p,"CementPumpVolumetricEfficiency",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%CementPumpVolumetricEfficiency) | |||||
call json%get(p,"CementPumpOutput",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%CementPumpOutput) | |||||
call json%get(p,"CementPumpOutputBblStroke",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%CementPumpOutputBblStroke) | |||||
call json%get(p,"CementPumpMaximum",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%CementPumpMaximum) | |||||
call json%get(p,"CementPumpReliefValvePressure",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%CementPumpReliefValvePressure) | |||||
call json%get(p,"MudPump1ReliefValveIsSet",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%MudPump1ReliefValveIsSet) | |||||
call json%get(p,"MudPump2ReliefValveIsSet",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%MudPump2ReliefValveIsSet) | |||||
call json%get(p,"CementPumpReliefValveIsSet",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%CementPumpReliefValveIsSet) | |||||
call json%get(p,"ManualPumpPower",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%ManualPumpPower) | |||||
call json%get(p,"Valve1",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%Valve1) | |||||
call json%get(p,"Valve2",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%Valve2) | |||||
call json%get(p,"Valve3",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%Valve3) | |||||
call json%get(p,"Valve4",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%Valve4) | |||||
call json%get(p,"Valve5",pitem) | |||||
call json%get(pitem,data%Configuration%Pumps%Valve5) | |||||
end subroutine | |||||
subroutine OpenPump1() | subroutine OpenPump1() | ||||
use CManifolds | use CManifolds | ||||
@@ -25,4 +25,23 @@ module CRigSize | |||||
call json%add(parent,p) | call json%add(parent,p) | ||||
end subroutine | end subroutine | ||||
subroutine RigSizeFromJson(parent) | |||||
use json_module,IK =>json_ik | |||||
type(json_value),pointer :: parent | |||||
type(json_core) :: json | |||||
type(json_value),pointer :: p,pitems,pitem,pval,pbit | |||||
call json%get(parent,'RigSize',p) | |||||
call json%get(p,"RigType",pitem) | |||||
call json%get(pitem,data%Configuration%RigSize%RigType) | |||||
call json%get(p,"CrownHeight",pitem) | |||||
call json%get(pitem,data%Configuration%RigSize%CrownHeight) | |||||
call json%get(p,"MonkeyBoandHeight",pitem) | |||||
call json%get(pitem,data%Configuration%RigSize%MonkeyBoandHeight) | |||||
call json%get(p,"RigFloorHeight",pitem) | |||||
call json%get(pitem,data%Configuration%RigSize%RigFloorHeight) | |||||
end subroutine | |||||
end module CRigSize | end module CRigSize |
@@ -36,5 +36,46 @@ module CCasingLinerChoke | |||||
call json%add(parent,p) | call json%add(parent,p) | ||||
end subroutine | end subroutine | ||||
subroutine CasingLinerChokeFromJson(parent) | |||||
use json_module,IK =>json_ik | |||||
type(json_value),pointer :: parent | |||||
type(json_core) :: json | |||||
type(json_value),pointer :: p,pitems,pitem,pval,pbit | |||||
call json%get(parent,'CasingLinerChoke',p) | |||||
call json%get(p,"CasingDepth",pitem) | |||||
call json%get(pitem,data%Configuration%CasingLinerChoke%CasingDepth) | |||||
call json%get(p,"CasingId",pitem) | |||||
call json%get(pitem,data%Configuration%CasingLinerChoke%CasingId) | |||||
call json%get(p,"CasingOd",pitem) | |||||
call json%get(pitem,data%Configuration%CasingLinerChoke%CasingOd) | |||||
call json%get(p,"CasingWeight",pitem) | |||||
call json%get(pitem,data%Configuration%CasingLinerChoke%CasingWeight) | |||||
call json%get(p,"CasingCollapsePressure",pitem) | |||||
call json%get(pitem,data%Configuration%CasingLinerChoke%CasingCollapsePressure) | |||||
call json%get(p,"CasingTensileStrength",pitem) | |||||
call json%get(pitem,data%Configuration%CasingLinerChoke%CasingTensileStrength) | |||||
call json%get(p,"LinerTopDepth",pitem) | |||||
call json%get(pitem,data%Configuration%CasingLinerChoke%LinerTopDepth) | |||||
call json%get(p,"LinerLength",pitem) | |||||
call json%get(pitem,data%Configuration%CasingLinerChoke%LinerLength) | |||||
call json%get(p,"LinerId",pitem) | |||||
call json%get(pitem,data%Configuration%CasingLinerChoke%LinerId) | |||||
call json%get(p,"LinerOd",pitem) | |||||
call json%get(pitem,data%Configuration%CasingLinerChoke%LinerOd) | |||||
call json%get(p,"LinerWeight",pitem) | |||||
call json%get(pitem,data%Configuration%CasingLinerChoke%LinerWeight) | |||||
call json%get(p,"LinerCollapsePressure",pitem) | |||||
call json%get(pitem,data%Configuration%CasingLinerChoke%LinerCollapsePressure) | |||||
call json%get(p,"LinerTensileStrength",pitem) | |||||
call json%get(pitem,data%Configuration%CasingLinerChoke%LinerTensileStrength) | |||||
call json%get(p,"OpenHoleId",pitem) | |||||
call json%get(pitem,data%Configuration%CasingLinerChoke%OpenHoleId) | |||||
call json%get(p,"OpenHoleLength",pitem) | |||||
call json%get(pitem,data%Configuration%CasingLinerChoke%OpenHoleLength) | |||||
end subroutine | |||||
end module CCasingLinerChoke | end module CCasingLinerChoke |
@@ -42,4 +42,55 @@ module CPathGeneration | |||||
call json%add(parent,ppath) | call json%add(parent,ppath) | ||||
end subroutine | end subroutine | ||||
subroutine PathGenerationFromJson(parent) | |||||
use json_module,IK =>json_ik | |||||
type(json_value),pointer :: parent | |||||
type(json_core) :: json | |||||
type(json_value),pointer :: p,pitems,pitem,pval,pbit,dpoints,dpoint | |||||
logical::is_found | |||||
type(CStringItem) :: item | |||||
integer::i,n_children | |||||
CHARACTER(KIND=JSON_CK, LEN=:), ALLOCATABLE :: val | |||||
call json%get(parent,'Path',p) | |||||
call json%get(p,'Items',pitems) | |||||
call json%info(pitems, n_children=n_children) | |||||
if (.not. allocated(data%Configuration%Path%Items) .or. size(data%Configuration%Configuration%Path%Items)/=n_children) then | |||||
ALLOCATE(data%Configuration%Configuration%Path%Items(n_children)) | |||||
endif | |||||
do i=1,n_children | |||||
call json%get_child(pitems, i, pitem, found=is_found) | |||||
call json%get(pitem,"HoleType",pval) | |||||
call json%get(pval,data%Configuration%Path%Items(i)%HoleType) | |||||
call json%get(pitem,"Angle",pval) | |||||
call json%get(pval,data%Configuration%Path%Items(i)%Angle) | |||||
call json%get(pitem,"Length",pval) | |||||
call json%get(pval,data%Configuration%Path%Items(i)%Length) | |||||
call json%get(pitem,"FinalAngle",pval) | |||||
call json%get(pval,data%Configuration%Path%Items(i)%FinalAngle) | |||||
call json%get(pitem,"TotalLength",pval) | |||||
call json%get(pval,data%Configuration%Path%Items(i)%TotalLength) | |||||
call json%get(pitem,"MeasuredDepth",pval) | |||||
call json%get(pval,data%Configuration%Path%Items(i)%MeasuredDepth) | |||||
call json%get(pitem,"TotalVerticalDepth",pval) | |||||
call json%get(pval,data%Configuration%Path%Items(i)%TotalVerticalDepth) | |||||
end do | |||||
call json%get(p,'DataPoints',dpoints) | |||||
call json%info(dpoints, n_children=n_children) | |||||
if (.not. allocated(data%Configuration%Path%DataPoints) .or. size(data%Configuration%Configuration%Path%DataPoints)/=n_children) then | |||||
ALLOCATE(data%Configuration%Configuration%Path%DataPoints(n_children)) | |||||
endif | |||||
do i=1,n_children | |||||
call json%get_child(dpoints, i, dpoint, found=is_found) | |||||
call json%get(dpoint,"X",pval) | |||||
call json%get(pval,data%Configuration%Path%DataPoints(i)%X) | |||||
call json%get(dpoint,"Y",pval) | |||||
call json%get(pval,data%Configuration%Path%DataPoints(i)%Y) | |||||
end do | |||||
end subroutine | |||||
end module CPathGeneration | end module CPathGeneration |