@@ -0,0 +1,532 @@ | |||||
{ | |||||
"cells": [ | |||||
{ | |||||
"cell_type": "code", | |||||
"execution_count": 19, | |||||
"metadata": {}, | |||||
"outputs": [ | |||||
{ | |||||
"data": { | |||||
"text/plain": [ | |||||
"[' integer :: RigType\\n',\n", | |||||
" ' real(8) :: CrownHeight\\n',\n", | |||||
" ' real(8) :: MonkeyBoandHeight\\n',\n", | |||||
" ' real(8) :: RigFloorHeight\\n']" | |||||
] | |||||
}, | |||||
"execution_count": 19, | |||||
"metadata": {}, | |||||
"output_type": "execute_result" | |||||
} | |||||
], | |||||
"source": [ | |||||
"lines" | |||||
] | |||||
}, | |||||
{ | |||||
"cell_type": "code", | |||||
"execution_count": 1, | |||||
"metadata": {}, | |||||
"outputs": [ | |||||
{ | |||||
"name": "stdout", | |||||
"output_type": "stream", | |||||
"text": [ | |||||
"call json%add(p,\"CasingDepth\",data%Configuration%CasingLinerChoke%CasingDepth)\n", | |||||
"call json%add(p,\"CasingId\",data%Configuration%CasingLinerChoke%CasingId)\n", | |||||
"call json%add(p,\"CasingOd\",data%Configuration%CasingLinerChoke%CasingOd)\n", | |||||
"call json%add(p,\"CasingWeight\",data%Configuration%CasingLinerChoke%CasingWeight)\n", | |||||
"call json%add(p,\"CasingCollapsePressure\",data%Configuration%CasingLinerChoke%CasingCollapsePressure)\n", | |||||
"call json%add(p,\"CasingTensileStrength\",data%Configuration%CasingLinerChoke%CasingTensileStrength)\n", | |||||
"call json%add(p,\"LinerTopDepth\",data%Configuration%CasingLinerChoke%LinerTopDepth)\n", | |||||
"call json%add(p,\"LinerLength\",data%Configuration%CasingLinerChoke%LinerLength)\n", | |||||
"call json%add(p,\"LinerId\",data%Configuration%CasingLinerChoke%LinerId)\n", | |||||
"call json%add(p,\"LinerOd\",data%Configuration%CasingLinerChoke%LinerOd)\n", | |||||
"call json%add(p,\"LinerWeight\",data%Configuration%CasingLinerChoke%LinerWeight)\n", | |||||
"call json%add(p,\"LinerCollapsePressure\",data%Configuration%CasingLinerChoke%LinerCollapsePressure)\n", | |||||
"call json%add(p,\"LinerTensileStrength\",data%Configuration%CasingLinerChoke%LinerTensileStrength)\n", | |||||
"call json%add(p,\"OpenHoleId\",data%Configuration%CasingLinerChoke%OpenHoleId)\n", | |||||
"call json%add(p,\"OpenHoleLength\",data%Configuration%CasingLinerChoke%OpenHoleLength)\n" | |||||
] | |||||
} | |||||
], | |||||
"source": [ | |||||
"precode = \"\"\"call json%add(p,\"\",data%Configuration%CasingLinerChoke%\"\"\"\n", | |||||
"input = open(\"Text1.txt\")\n", | |||||
"lines = input.readlines()\n", | |||||
"for line in lines:\n", | |||||
" name = line.split(\"::\")[-1].strip()\n", | |||||
" icoute = precode.index(\"\\\"\")+1\n", | |||||
" # name = line.split(\"%\")[-1][:-1]\n", | |||||
" # print(name)\n", | |||||
" newline = precode[:icoute]+name+precode[icoute:]+name+\")\"\n", | |||||
" print(newline)\n" | |||||
] | |||||
}, | |||||
{ | |||||
"cell_type": "code", | |||||
"execution_count": 3, | |||||
"metadata": {}, | |||||
"outputs": [ | |||||
{ | |||||
"name": "stdout", | |||||
"output_type": "stream", | |||||
"text": [ | |||||
"\tGeo/GeoMain.f90 \\\n", | |||||
"\n" | |||||
] | |||||
} | |||||
], | |||||
"source": [ | |||||
"##Replace space with _ in filenames and list them for put them in makefile\n", | |||||
"import os\n", | |||||
"dir = 'Geo'\n", | |||||
"files = os.listdir(dir)\n", | |||||
"fstring = ''\n", | |||||
"for f in files:\n", | |||||
" if f.endswith('90'):\n", | |||||
" newf = f.replace(' ','_')\n", | |||||
" os.rename(os.path.join(dir,f),os.path.join(dir,newf))\n", | |||||
" if newf.lower().endswith('variables.f90'):\n", | |||||
" fstring = '\\t'+os.path.join(dir,newf).replace('\\\\','/') +' \\\\\\n' + fstring\n", | |||||
" else:\n", | |||||
" fstring = fstring + '\\t'+os.path.join(dir,newf).replace('\\\\','/') +' \\\\\\n'\n", | |||||
"\n", | |||||
"print(fstring)" | |||||
] | |||||
}, | |||||
{ | |||||
"cell_type": "markdown", | |||||
"metadata": {}, | |||||
"source": [ | |||||
"## Extract variable names from definition lines" | |||||
] | |||||
}, | |||||
{ | |||||
"cell_type": "code", | |||||
"execution_count": 1, | |||||
"metadata": {}, | |||||
"outputs": [], | |||||
"source": [ | |||||
"# %pwd\n", | |||||
"lines = input(\"Enter lines:\").split(\" \")\n", | |||||
"lines = [l.strip() for l in lines if len(l.strip())>0]\n", | |||||
"vars = []\n", | |||||
"for l in lines:\n", | |||||
" if '::' in l:\n", | |||||
" vars.append(l.split('::')[1].strip())" | |||||
] | |||||
}, | |||||
{ | |||||
"cell_type": "code", | |||||
"execution_count": 8, | |||||
"metadata": {}, | |||||
"outputs": [ | |||||
{ | |||||
"data": { | |||||
"text/plain": [ | |||||
"'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'" | |||||
] | |||||
}, | |||||
"execution_count": 8, | |||||
"metadata": {}, | |||||
"output_type": "execute_result" | |||||
} | |||||
], | |||||
"source": [ | |||||
"import string\n", | |||||
"string.ascii_letters" | |||||
] | |||||
}, | |||||
{ | |||||
"cell_type": "code", | |||||
"execution_count": 9, | |||||
"metadata": {}, | |||||
"outputs": [ | |||||
{ | |||||
"name": "stdout", | |||||
"output_type": "stream", | |||||
"text": [ | |||||
"var: AnnularRegulatorSetControl\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: AirMasterValve\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: ByePassValve\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: AnnularValve\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: UpperRamsValve\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: MiddleRamsValve\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: KillLineValve\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: ChokeLineValve\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: LowerRamsValve\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: ManifoldPressureGauge\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: AirSupplyPressureGauge\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: AccumulatorPressureGauge\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: AnnularPressureGauge\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: AnnularOpenLED\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: AnnularCloseLED\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: UpperRamsOpenLED\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: UpperRamsCloseLED\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: MiddleRamsOpenLED\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: MiddleRamsCloseLED\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: KillLineOpenLED\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: KillLineCloseLED\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: ChokeLineOpenLED\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: ChokeLineCloseLED\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: LowerRamsOpenLED\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: LowerRamsCloseLED\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: AnnularStatus\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: UpperRamsStatus\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: MiddleRamsStatus\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n", | |||||
"var: LowerRamsStatus\n", | |||||
"file = .\\CSharp\\Equipments\\ControlPanels\\CBopControlPanelVariables.f90\n", | |||||
"Char before: \n", | |||||
"Char after: \n", | |||||
"\n" | |||||
] | |||||
} | |||||
], | |||||
"source": [ | |||||
"import os\n", | |||||
"import sys\n", | |||||
"import re\n", | |||||
"dir = '.'\n", | |||||
"varNameChars = string.ascii_letters + '_'\n", | |||||
"log = open(os.path.join(dir,'ReplaceVars.log',),'a')\n", | |||||
"end=False\n", | |||||
"for dir,subdirs,files in os.walk(dir):\n", | |||||
" for filename in files:\n", | |||||
" if filename.lower().endswith('.f90'):\n", | |||||
" # print(filename)\n", | |||||
" file = open(os.path.join(dir,filename))\n", | |||||
" code = file.read()\n", | |||||
" for var in vars:\n", | |||||
" if var not in code:\n", | |||||
" continue\n", | |||||
" occurs = [m.start() for m in re.finditer(var, code)]\n", | |||||
" for occurance in occurs:\n", | |||||
" if code[occurs[0]-1] in varNameChars or code[occurs[0]+len(var)] in varNameChars:\n", | |||||
" continue\n", | |||||
" print(f\"var: {var}\")\n", | |||||
" print(f\"file = {os.path.join(dir,filename)}\")\n", | |||||
" print(f\"Char before: {code[occurs[0]-1]}\")\n", | |||||
" print(f\"Char after: {code[occurs[0]+len(var)]}\")\n", | |||||
" end = True\n", | |||||
" if end:\n", | |||||
" break" | |||||
] | |||||
}, | |||||
{ | |||||
"cell_type": "code", | |||||
"execution_count": 9, | |||||
"metadata": {}, | |||||
"outputs": [ | |||||
{ | |||||
"name": "stdout", | |||||
"output_type": "stream", | |||||
"text": [ | |||||
"State\n", | |||||
"Hoisting\n", | |||||
"OperationScenario\n", | |||||
"notifications\n", | |||||
"permissions\n", | |||||
"unitySignals\n", | |||||
"StudentStation\n", | |||||
"BopStackInput\n", | |||||
"BopStackAcc\n", | |||||
"RamLine\n", | |||||
"AnnularComputational\n", | |||||
"Annular\n", | |||||
"PipeRam1\n", | |||||
"ShearRam\n", | |||||
"PipeRam2\n", | |||||
"ChokeLine\n", | |||||
"KillLine\n", | |||||
"Pumps\n", | |||||
"RAM\n", | |||||
"RAMS\n", | |||||
"Choke\n", | |||||
"AirDrivenPump\n", | |||||
"AirPumpLine\n", | |||||
"CHOOKE\n", | |||||
"Drawworks\n", | |||||
"MudSystem\n", | |||||
"MUD\n", | |||||
"PUMP\n", | |||||
"RTable\n", | |||||
"TDS\n", | |||||
"GasType(3)\n", | |||||
"PressureDisplay\n", | |||||
"ObservationPoint(:)\n", | |||||
"FricPressDrop\n", | |||||
"ROP_Spec\n", | |||||
"ROP_Bit\n", | |||||
"TDGeo\n", | |||||
"F_String(:)\n", | |||||
"F_Counts\n", | |||||
"F_Interval(:)\n", | |||||
"OD_Annulus(4)\n", | |||||
"TD_DrillStem\n", | |||||
"TD_DrillStems\n", | |||||
"TD_String\n", | |||||
"TD_Count\n", | |||||
"G_StringElement\n", | |||||
"TD_Vol\n", | |||||
"TD_General\n", | |||||
"TD_BOP\n", | |||||
"TD_BOPElement(4)\n", | |||||
"TD_StConn\n", | |||||
"TD_Load\n", | |||||
"TD_WellEl\n", | |||||
"TD_Casing\n", | |||||
"data%State%TD_Liner\n", | |||||
"TD_OpenHole\n", | |||||
"TD_ROPHole\n", | |||||
"TD_WellGeneral\n", | |||||
"TD_WellGeo(:)\n", | |||||
"EquipmentControl\n", | |||||
"BopControlPanel\n", | |||||
"ChokeControlPanel\n", | |||||
"ChokeManifold\n", | |||||
"DataDisplayConsole\n", | |||||
"DrillingConsole\n", | |||||
"Hook\n", | |||||
"StandPipeManifold\n", | |||||
"TopDrivePanel\n", | |||||
"DrillingWatch\n", | |||||
"Tank\n", | |||||
"Configuration\n", | |||||
"StringConfiguration\n", | |||||
"Formation\n", | |||||
"Reservoir\n", | |||||
"Shoe\n", | |||||
"Accumulator\n", | |||||
"BopStackSpecification\n", | |||||
"Hoisting\n", | |||||
"Power\n", | |||||
"PumpsSpecification\n", | |||||
"RigSize\n", | |||||
"CasingLinerChoke\n", | |||||
"PathGeneration\n", | |||||
"WellSurveyData\n", | |||||
"MudProperties\n", | |||||
"problems\n", | |||||
"BitProblems\n", | |||||
"BopProblems\n", | |||||
"ChokeProblems\n", | |||||
"DrillStemProblems\n", | |||||
"GaugesProblems\n", | |||||
"HoistingProblems\n", | |||||
"KickProblems\n", | |||||
"LostProblems\n", | |||||
"MudTreatmentProblems\n", | |||||
"OtherProblems\n", | |||||
"PumpProblems\n", | |||||
"RotaryProblems\n" | |||||
] | |||||
}, | |||||
{ | |||||
"ename": "IndexError", | |||||
"evalue": "list index out of range", | |||||
"output_type": "error", | |||||
"traceback": [ | |||||
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", | |||||
"\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)", | |||||
"\u001b[1;32mc:\\Projects\\VSIM\\SimulationCore2\\helper.ipynb Cell 6\u001b[0m in \u001b[0;36m<cell line: 3>\u001b[1;34m()\u001b[0m\n\u001b[0;32m <a href='vscode-notebook-cell:/c%3A/Projects/VSIM/SimulationCore2/helper.ipynb#W5sZmlsZQ%3D%3D?line=5'>6</a>\u001b[0m nsp\u001b[39m+\u001b[39m\u001b[39m=\u001b[39m\u001b[39m1\u001b[39m\n\u001b[0;32m <a href='vscode-notebook-cell:/c%3A/Projects/VSIM/SimulationCore2/helper.ipynb#W5sZmlsZQ%3D%3D?line=6'>7</a>\u001b[0m splits \u001b[39m=\u001b[39m line\u001b[39m.\u001b[39msplit(\u001b[39m\"\u001b[39m\u001b[39m::\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[1;32m----> <a href='vscode-notebook-cell:/c%3A/Projects/VSIM/SimulationCore2/helper.ipynb#W5sZmlsZQ%3D%3D?line=7'>8</a>\u001b[0m \u001b[39mprint\u001b[39m(splits[\u001b[39m1\u001b[39;49m]\u001b[39m.\u001b[39mstrip())\n", | |||||
"\u001b[1;31mIndexError\u001b[0m: list index out of range" | |||||
] | |||||
} | |||||
], | |||||
"source": [ | |||||
"f = open(\"hier.txt\")\n", | |||||
"lines = f.readlines()\n", | |||||
"for line in lines[1:]:\n", | |||||
" nsp=0\n", | |||||
" while line[nsp]==' ':\n", | |||||
" nsp+=1\n", | |||||
" splits = line.split(\"::\")\n", | |||||
" print(splits[1].strip())" | |||||
] | |||||
}, | |||||
{ | |||||
"cell_type": "code", | |||||
"execution_count": 4, | |||||
"metadata": {}, | |||||
"outputs": [ | |||||
{ | |||||
"data": { | |||||
"text/plain": [ | |||||
"'type SimulationDataType type(SimulationStateType)::State Type(HoistingType)::Hoisting type(OperationScenarioType)::OperationScenario type(NotificationType)::notifications type(PermissionsType):: permissions type(UnitySignalsType):: unitySignals type(StudentStationType)::StudentStation type(BopStackInputType)::BopStackInput type(BopStackAccType)::BopStackAcc type(RamLineType)::RamLine type(AnnularComputationalType)::AnnularComputational type(AnnularType)::Annular type(PipeRams1Type)::PipeRam1 type(ShearRamType)::ShearRam type(PipeRam2Type)::PipeRam2 type(ChokeLineType)::ChokeLine type(KillLineType)::KillLine type(PumpsType)::Pumps TYPE(BOP_TypeVars), DIMENSION(1:6) :: RAM TYPE(BOP_TypeVars2D) :: RAMS type(ChokeType)::Choke type(AirDrivenPumpType)::AirDrivenPump type(AirPumpLineType)::AirPumpLine TYPE(CHOKE_TypeVars), DIMENSION(1:2) :: CHOOKE TYPE(Drawworks_Var) :: Drawworks type(MudSystemType)::MudSystem TYPE(MUD_TypeVars), DIMENSION(1:10) :: MUD TYPE(Pump_Var), DIMENSION(1:3) :: PUMP TYPE(RTable_Var) :: RTable TYPE(TDS_Var) :: TDS TYPE(GasData) :: GasType(3) ! 1 = methane , 2 = Hydrogen sulfide , 3 = Carbon dioxid TYPE(PressureDisplayVARIABLESTYPE) :: PressureDisplay TYPE(ObservationAndGaugePointsInformations) , ALLOCATABLE :: ObservationPoint(:) TYPE(FricPressDropVarsTYPE) :: FricPressDrop TYPE(ROPSpecificationInfo) :: ROP_Spec TYPE(ROPInfo) :: ROP_Bit TYPE(Geo_Data) :: TDGeo TYPE(F_StringData) , Allocatable :: F_String(:) TYPE(F_IntervalsCountsData):: F_Counts TYPE(F_IntervalData) , Allocatable :: F_Interval(:) TYPE(OD_AnnulusData) :: OD_Annulus(4) TYPE(TD_DrillStemInfo), ALLOCATABLE, DIMENSION(:) :: TD_DrillStem TYPE(TD_SeparatedDrillStemInfo), ALLOCATABLE, DIMENSION(:) :: TD_DrillStems TYPE(TD_StringInfo) :: TD_String TYPE(TD_AddRemoveInfo) :: TD_Count TYPE(CStringComponents), ALLOCATABLE, DIMENSION(:) :: G_StringElement TYPE(TD_RemovedVolumeInfo) :: TD_Vol TYPE(TD_GeneralInfo) :: TD_General TYPE(TD_BOPInfo) :: TD_BOP TYPE(CBopElement) :: TD_BOPElement(4) TYPE(TD_StringconnectionInfo) :: TD_StConn TYPE(TD_LoadInfo) :: TD_Load TYPE(TD_WellElementsInfo) :: TD_WellEl TYPE(TD_CasingInfo), ALLOCATABLE, DIMENSION(:) :: TD_Casing TYPE(TD_LinerInfo), ALLOCATABLE, DIMENSION(:) :: data%State%TD_Liner TYPE(TD_OpenHoleInfo), ALLOCATABLE, DIMENSION(:) :: TD_OpenHole TYPE(TD_ROPHoleInfo), ALLOCATABLE, DIMENSION(:) :: TD_ROPHole TYPE(TD_WellGeneralInfo) :: TD_WellGeneral TYPE(TD_WellGeometryData), Allocatable :: TD_WellGeo(:) type(EquipmentControlType)::EquipmentControl type(BopControlPanelType) :: BopControlPanel Type(ChokeControlPanelType)::ChokeControlPanel Type(ChokeManifoldType)::ChokeManifold Type(DataDisplayConsoleType) :: DataDisplayConsole TYPE(DrillingConsoleType) :: DrillingConsole Type(HookType)::Hook type(StandPipeManifoldType)::StandPipeManifold Type(TopDrivePanelType)::TopDrivePanel Type(DrillingWatchType)::DrillingWatch Type(TankType)::Tank type(ConfigurationType)::Configuration Type(StringConfigurationType)::StringConfiguration Type(FormationType) :: Formation Type(ReservoirType)::Reservoir Type(ShoeType)::Shoe Type(AccumulatorType)::Accumulator Type(BopStackSpecificationType)::BopStackSpecification Type(HoistingType)::Hoisting Type(PowerType)::Power Type(PumpSpecificationType)::PumpsSpecification Type(RigSizeType)::RigSize Type(CasingLinerChokeType)::CasingLinerChoke Type(PathGenerationType)::PathGeneration Type(WellSurveyDataType)::WellSurveyData Type(MudPropertiesType)::MudProperties type(ProblemsType)::problems type(BitProblemsType)::BitProblems type(BopProblemsType)::BopProblems type(ChokeProblemsType)::ChokeProblems type(DrillStemProblemsType)::DrillStemProblems type(GaugesProblemsType)::GaugesProblems type(HoistingProblemsType):: HoistingProblems type(KickProblemsType)::KickProblems type(LostProblemsType)::LostProblems type(MudTreatmentProblemsType)::MudTreatmentProblems type(OtherProblemsType)::OtherProblems type(PumpProblemsType)::PumpProblems type(RotaryProblemsType)::RotaryProblems end type SimulationDataType'" | |||||
] | |||||
}, | |||||
"execution_count": 4, | |||||
"metadata": {}, | |||||
"output_type": "execute_result" | |||||
} | |||||
], | |||||
"source": [ | |||||
"line" | |||||
] | |||||
}, | |||||
{ | |||||
"cell_type": "code", | |||||
"execution_count": null, | |||||
"metadata": {}, | |||||
"outputs": [], | |||||
"source": [ | |||||
"for fn in modules:\n", | |||||
" f = open(fn)\n", | |||||
" lines = f.readlines()\n", | |||||
" module_filenames = {}\n", | |||||
" used_modules = []\n", | |||||
" mod_count = 0\n", | |||||
" for l in lines:\n", | |||||
" l = l.strip().lower()\n", | |||||
" if l.startswith('module ') and not l.startswith('module procedure '):\n", | |||||
" mod_name = l.split(' ')[1]\n", | |||||
" module_filenames[mod_name] = fn\n", | |||||
" mod_count +=1\n", | |||||
" if l.startswith('use'):\n", | |||||
" used_modules.append(l.split(' ')[1])\n", | |||||
" if mod_count !=1:\n", | |||||
" print(f\"{fn} has {mod_count} modules\")\n", | |||||
" module_filenames,used_modules" | |||||
] | |||||
} | |||||
], | |||||
"metadata": { | |||||
"kernelspec": { | |||||
"display_name": "Python 3 (ipykernel)", | |||||
"language": "python", | |||||
"name": "python3" | |||||
}, | |||||
"language_info": { | |||||
"codemirror_mode": { | |||||
"name": "ipython", | |||||
"version": 3 | |||||
}, | |||||
"file_extension": ".py", | |||||
"mimetype": "text/x-python", | |||||
"name": "python", | |||||
"nbconvert_exporter": "python", | |||||
"pygments_lexer": "ipython3", | |||||
"version": "3.11.4" | |||||
}, | |||||
"vscode": { | |||||
"interpreter": { | |||||
"hash": "1ef4a26de7183d96d6da1045a38581e0a15b2215d0c1b98c7b273c6e514c6c7e" | |||||
} | |||||
} | |||||
}, | |||||
"nbformat": 4, | |||||
"nbformat_minor": 2 | |||||
} |
@@ -14,12 +14,12 @@ module CPathGeneration | |||||
! 1. create new node | ! 1. create new node | ||||
call json%create_object(p,'Path') | call json%create_object(p,'Path') | ||||
! 2. add member of data type to new node | ! 2. add member of data type to new node | ||||
! call StringConfigurationToJson(p) | ! call StringConfigurationToJson(p) | ||||
! call FormationToJson(p) | ! call FormationToJson(p) | ||||
! call json%add(p,"",data%Configuration%Formation%Formations(i)%Abrasiveness) | ! call json%add(p,"",data%Configuration%Formation%Formations(i)%Abrasiveness) | ||||
! 3. add new node to parent | ! 3. add new node to parent | ||||
call json%add(parent,p) | call json%add(parent,p) | ||||
end subroutine | end subroutine | ||||
@@ -4,6 +4,52 @@ module CBopControlPanel | |||||
implicit none | implicit none | ||||
public | public | ||||
contains | contains | ||||
subroutine CBopToJson(parent) | |||||
type(json_value),pointer :: parent | |||||
type(json_core) :: json | |||||
type(json_value),pointer :: p | |||||
! 1. create new node | |||||
call json%create_object(p,'CBop') | |||||
call json%add(p,"AnnularRegulatorSetControl",data%Equipments%ContolPanel%CBop%AnnularRegulatorSetControl) | |||||
call json%add(p,"AirMasterValve",data%Equipments%ContolPanel%CBop%AirMasterValve) | |||||
call json%add(p,"ByePassValve",data%Equipments%ContolPanel%CBop%ByePassValve) | |||||
call json%add(p,"AnnularValve",data%Equipments%ContolPanel%CBop%AnnularValve) | |||||
call json%add(p,"UpperRamsValve",data%Equipments%ContolPanel%CBop%UpperRamsValve) | |||||
call json%add(p,"MiddleRamsValve",data%Equipments%ContolPanel%CBop%MiddleRamsValve) | |||||
call json%add(p,"KillLineValve",data%Equipments%ContolPanel%CBop%KillLineValve) | |||||
call json%add(p,"ChokeLineValve",data%Equipments%ContolPanel%CBop%ChokeLineValve) | |||||
call json%add(p,"LowerRamsValve",data%Equipments%ContolPanel%CBop%LowerRamsValve) | |||||
call json%add(p,"ManifoldPressureGauge",data%Equipments%ContolPanel%CBop%ManifoldPressureGauge) | |||||
call json%add(p,"AirSupplyPressureGauge",data%Equipments%ContolPanel%CBop%AirSupplyPressureGauge) | |||||
call json%add(p,"AccumulatorPressureGauge",data%Equipments%ContolPanel%CBop%AccumulatorPressureGauge) | |||||
call json%add(p,"AnnularPressureGauge",data%Equipments%ContolPanel%CBop%AnnularPressureGauge) | |||||
call json%add(p,"AnnularOpenLED",data%Equipments%ContolPanel%CBop%AnnularOpenLED) | |||||
call json%add(p,"AnnularCloseLED",data%Equipments%ContolPanel%CBop%AnnularCloseLED) | |||||
call json%add(p,"UpperRamsOpenLED",data%Equipments%ContolPanel%CBop%UpperRamsOpenLED) | |||||
call json%add(p,"UpperRamsCloseLED",data%Equipments%ContolPanel%CBop%UpperRamsCloseLED) | |||||
call json%add(p,"MiddleRamsOpenLED",data%Equipments%ContolPanel%CBop%MiddleRamsOpenLED) | |||||
call json%add(p,"MiddleRamsCloseLED",data%Equipments%ContolPanel%CBop%MiddleRamsCloseLED) | |||||
call json%add(p,"KillLineOpenLED",data%Equipments%ContolPanel%CBop%KillLineOpenLED) | |||||
call json%add(p,"KillLineCloseLED",data%Equipments%ContolPanel%CBop%KillLineCloseLED) | |||||
call json%add(p,"ChokeLineOpenLED",data%Equipments%ContolPanel%CBop%ChokeLineOpenLED) | |||||
call json%add(p,"ChokeLineCloseLED",data%Equipments%ContolPanel%CBop%ChokeLineCloseLED) | |||||
call json%add(p,"LowerRamsOpenLED",data%Equipments%ContolPanel%CBop%LowerRamsOpenLED) | |||||
call json%add(p,"LowerRamsCloseLED",data%Equipments%ContolPanel%CBop%LowerRamsCloseLED) | |||||
call json%add(p,"AnnularStatus",data%Equipments%ContolPanel%CBop%AnnularStatus) | |||||
call json%add(p,"UpperRamsStatus",data%Equipments%ContolPanel%CBop%UpperRamsStatus) | |||||
call json%add(p,"MiddleRamsStatus",data%Equipments%ContolPanel%CBop%MiddleRamsStatus) | |||||
call json%add(p,"LowerRamsStatus",data%Equipments%ContolPanel%CBop%LowerRamsStatus) | |||||
call json%add(parent,p) | |||||
end subroutine | |||||
subroutine OpenAnnular() | subroutine OpenAnnular() | ||||
use CManifolds | use CManifolds | ||||
implicit none | implicit none | ||||
@@ -4,6 +4,33 @@ module CChokeControlPanel | |||||
implicit none | implicit none | ||||
public | public | ||||
contains | contains | ||||
subroutine CChokeToJson(parent) | |||||
type(json_value),pointer :: parent | |||||
type(json_core) :: json | |||||
type(json_value),pointer :: p | |||||
! 1. create new node | |||||
call json%create_object(p,'CChoke') | |||||
call json%add(p,"ChokePanelPumpSelectorSwitch",data%Equipments%ContolPanel%CChoke%ChokePanelPumpSelectorSwitch) | |||||
call json%add(p,"ChokePanelStrokeResetSwitch",data%Equipments%ContolPanel%CChoke%ChokePanelStrokeResetSwitch) | |||||
call json%add(p,"ChokeSelectorSwitch",data%Equipments%ContolPanel%CChoke%ChokeSelectorSwitch) | |||||
call json%add(p,"ChokeRateControlKnob",data%Equipments%ContolPanel%CChoke%ChokeRateControlKnob) | |||||
call json%add(p,"ChokeControlLever",data%Equipments%ContolPanel%CChoke%ChokeControlLever) | |||||
call json%add(p,"ChokePanelRigAirSwitch",data%Equipments%ContolPanel%CChoke%ChokePanelRigAirSwitch) | |||||
call json%add(p,"EnableAutoChoke",data%Equipments%ContolPanel%CChoke%EnableAutoChoke) | |||||
call json%add(p,"StandPipePressure",data%Equipments%ContolPanel%CChoke%StandPipePressure) | |||||
call json%add(p,"CasingPressure",data%Equipments%ContolPanel%CChoke%CasingPressure) | |||||
call json%add(p,"ChokePosition",data%Equipments%ContolPanel%CChoke%ChokePosition) | |||||
call json%add(p,"ChokePanelSPMCounter",data%Equipments%ContolPanel%CChoke%ChokePanelSPMCounter) | |||||
call json%add(p,"ChokePanelTotalStrokeCounter",data%Equipments%ContolPanel%CChoke%ChokePanelTotalStrokeCounter) | |||||
call json%add(p,"Choke1LED",data%Equipments%ContolPanel%CChoke%Choke1LED) | |||||
call json%add(p,"Choke2LED",data%Equipments%ContolPanel%CChoke%Choke2LED) | |||||
call json%add(parent,p) | |||||
end subroutine | |||||
! Input routines | ! Input routines | ||||
subroutine SetChokePanelPumpSelectorSwitch(v) | subroutine SetChokePanelPumpSelectorSwitch(v) | ||||
@@ -6,6 +6,40 @@ module CChokeManifold | |||||
implicit none | implicit none | ||||
public | public | ||||
contains | contains | ||||
subroutine CChokeManifoldToJson(parent) | |||||
type(json_value),pointer :: parent | |||||
type(json_core) :: json | |||||
type(json_value),pointer :: p | |||||
! 1. create new node | |||||
call json%create_object(p,'CChokeManifold') | |||||
call json%add(p,"ChokeManifoldValve1",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve1) | |||||
call json%add(p,"ChokeManifoldValve2",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve2) | |||||
call json%add(p,"LeftManualChoke",data%Equipments%ContolPanel%CChokeManifold%LeftManualChoke) | |||||
call json%add(p,"ChokeManifoldValve4",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve4) | |||||
call json%add(p,"ChokeManifoldValve5",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve5) | |||||
call json%add(p,"RightManualChoke",data%Equipments%ContolPanel%CChokeManifold%RightManualChoke) | |||||
call json%add(p,"ChokeManifoldValve7",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve7) | |||||
call json%add(p,"ChokeManifoldValve8",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve8) | |||||
call json%add(p,"ChokeManifoldValve9",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve9) | |||||
call json%add(p,"ChokeManifoldValve10",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve10) | |||||
call json%add(p,"ChokeManifoldValve11",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve11) | |||||
call json%add(p,"ChokeManifoldValve12",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve12) | |||||
call json%add(p,"ChokeManifoldValve13",data%Equipments%ContolPanel%CChokeManifold%ChokeManifoldValve13) | |||||
call json%add(p,"HydraulicChock1",data%Equipments%ContolPanel%CChokeManifold%HydraulicChock1) | |||||
call json%add(p,"HydraulicChock2",data%Equipments%ContolPanel%CChokeManifold%HydraulicChock2) | |||||
call json%add(p,"HyChock1OnProblem",data%Equipments%ContolPanel%CChokeManifold%HyChock1OnProblem) | |||||
call json%add(p,"HyChock2OnProblem",data%Equipments%ContolPanel%CChokeManifold%HyChock2OnProblem) | |||||
call json%add(p,"LeftManChokeOnProblem",data%Equipments%ContolPanel%CChokeManifold%LeftManChokeOnProblem) | |||||
call json%add(p,"RightManChokeOnProblem",data%Equipments%ContolPanel%CChokeManifold%RightManChokeOnProblem) | |||||
call json%add(parent,p) | |||||
end subroutine | |||||
subroutine SetHydraulicChock1(v) | subroutine SetHydraulicChock1(v) | ||||
implicit none | implicit none | ||||
integer, intent(in) :: v | integer, intent(in) :: v | ||||
@@ -4,6 +4,103 @@ module CDataDisplayConsole | |||||
implicit none | implicit none | ||||
public | public | ||||
contains | contains | ||||
subroutine CDataDisplayToJson(parent) | |||||
type(json_value),pointer :: parent | |||||
type(json_core) :: json | |||||
type(json_value),pointer :: p | |||||
! 1. create new node | |||||
call json%create_object(p,'CDataDisplay') | |||||
call json%add(p,"TripAlarmLow",data%Equipments%ControlPanel%CDataDisplay%TripAlarmLow) | |||||
call json%add(p,"TripAlarmHigh",data%Equipments%ControlPanel%CDataDisplay%TripAlarmHigh) | |||||
call json%add(p,"RetFlowAlarmLow",data%Equipments%ControlPanel%CDataDisplay%RetFlowAlarmLow) | |||||
call json%add(p,"RetFlowAlarmHigh",data%Equipments%ControlPanel%CDataDisplay%RetFlowAlarmHigh) | |||||
call json%add(p,"PitAlarmLow",data%Equipments%ControlPanel%CDataDisplay%PitAlarmLow) | |||||
call json%add(p,"PitAlarmHigh",data%Equipments%ControlPanel%CDataDisplay%PitAlarmHigh) | |||||
call json%add(p,"PortWeightOnBit",data%Equipments%ControlPanel%CDataDisplay%PortWeightOnBit) | |||||
call json%add(p,"PortHookLoad",data%Equipments%ControlPanel%CDataDisplay%PortHookLoad) | |||||
call json%add(p,"PortCasingPressure",data%Equipments%ControlPanel%CDataDisplay%PortCasingPressure) | |||||
call json%add(p,"PortPumpPressure",data%Equipments%ControlPanel%CDataDisplay%PortPumpPressure) | |||||
call json%add(p,"TripTankSetAlarmLow",data%Equipments%ControlPanel%CDataDisplay%TripTankSetAlarmLow) | |||||
call json%add(p,"TripTankSetAlarmHigh",data%Equipments%ControlPanel%CDataDisplay%TripTankSetAlarmHigh) | |||||
call json%add(p,"TripTankSetAlarmSwitch",data%Equipments%ControlPanel%CDataDisplay%TripTankSetAlarmSwitch) | |||||
call json%add(p,"TripTankPowerSwitch",data%Equipments%ControlPanel%CDataDisplay%TripTankPowerSwitch) | |||||
call json%add(p,"TripTankPumpSwitch",data%Equipments%ControlPanel%CDataDisplay%TripTankPumpSwitch) | |||||
call json%add(p,"TripTankHornSwitch",data%Equipments%ControlPanel%CDataDisplay%TripTankHornSwitch) | |||||
call json%add(p,"AcidGasDetectionHornSwitch",data%Equipments%ControlPanel%CDataDisplay%AcidGasDetectionHornSwitch) | |||||
call json%add(p,"TotalStrokeCounterResetSwitch",data%Equipments%ControlPanel%CDataDisplay%TotalStrokeCounterResetSwitch) | |||||
call json%add(p,"DrillingTrippingSelectorSwitch",data%Equipments%ControlPanel%CDataDisplay%DrillingTrippingSelectorSwitch) | |||||
call json%add(p,"MVTSetAlarmLowKnob",data%Equipments%ControlPanel%CDataDisplay%MVTSetAlarmLowKnob) | |||||
call json%add(p,"MVTSetAlarmHighKnob",data%Equipments%ControlPanel%CDataDisplay%MVTSetAlarmHighKnob) | |||||
call json%add(p,"MVTSetAlarmSwitch",data%Equipments%ControlPanel%CDataDisplay%MVTSetAlarmSwitch) | |||||
call json%add(p,"MudTank1Switch",data%Equipments%ControlPanel%CDataDisplay%MudTank1Switch) | |||||
call json%add(p,"MudTank2Switch",data%Equipments%ControlPanel%CDataDisplay%MudTank2Switch) | |||||
call json%add(p,"MudTank3Switch",data%Equipments%ControlPanel%CDataDisplay%MudTank3Switch) | |||||
call json%add(p,"MudTank4Switch",data%Equipments%ControlPanel%CDataDisplay%MudTank4Switch) | |||||
call json%add(p,"MVTFineKnob",data%Equipments%ControlPanel%CDataDisplay%MVTFineKnob) | |||||
call json%add(p,"MVTCoarseKnob",data%Equipments%ControlPanel%CDataDisplay%MVTCoarseKnob) | |||||
call json%add(p,"MVTHornSwitch",data%Equipments%ControlPanel%CDataDisplay%MVTHornSwitch) | |||||
call json%add(p,"MVTDeviationTripSelectionSwitch",data%Equipments%ControlPanel%CDataDisplay%MVTDeviationTripSelectionSwitch) | |||||
call json%add(p,"MVTPowerSwitch",data%Equipments%ControlPanel%CDataDisplay%MVTPowerSwitch) | |||||
call json%add(p,"MFFIResetTotalStrokes",data%Equipments%ControlPanel%CDataDisplay%MFFIResetTotalStrokes) | |||||
call json%add(p,"MFFIResetFillCounter",data%Equipments%ControlPanel%CDataDisplay%MFFIResetFillCounter) | |||||
call json%add(p,"MFFIPumpSelectorSwitch",data%Equipments%ControlPanel%CDataDisplay%MFFIPumpSelectorSwitch) | |||||
call json%add(p,"MFFIFillSPMSelectorSwitch",data%Equipments%ControlPanel%CDataDisplay%MFFIFillSPMSelectorSwitch) | |||||
call json%add(p,"MFFISetAlarmLowKnob",data%Equipments%ControlPanel%CDataDisplay%MFFISetAlarmLowKnob) | |||||
call json%add(p,"MFFISetAlarmHighKnob",data%Equipments%ControlPanel%CDataDisplay%MFFISetAlarmHighKnob) | |||||
call json%add(p,"MFFISetAlarmSwitch",data%Equipments%ControlPanel%CDataDisplay%MFFISetAlarmSwitch) | |||||
call json%add(p,"MFFIPowerSwitch",data%Equipments%ControlPanel%CDataDisplay%MFFIPowerSwitch) | |||||
call json%add(p,"MFFIHornSwitch",data%Equipments%ControlPanel%CDataDisplay%MFFIHornSwitch) | |||||
call json%add(p,"ResetWob",data%Equipments%ControlPanel%CDataDisplay%ResetWob) | |||||
call json%add(p,"Clutch",data%Equipments%ControlPanel%CDataDisplay%Clutch) | |||||
call json%add(p,"WOBPointer",data%Equipments%ControlPanel%CDataDisplay%WOBPointer) | |||||
call json%add(p,"HookLoadPointer",data%Equipments%ControlPanel%CDataDisplay%HookLoadPointer) | |||||
call json%add(p,"TripTankGauge",data%Equipments%ControlPanel%CDataDisplay%TripTankGauge) | |||||
call json%add(p,"TripTankAlarmLED",data%Equipments%ControlPanel%CDataDisplay%TripTankAlarmLED) | |||||
call json%add(p,"TripTankPumpLED",data%Equipments%ControlPanel%CDataDisplay%TripTankPumpLED) | |||||
call json%add(p,"StandPipePressureGauge",data%Equipments%ControlPanel%CDataDisplay%StandPipePressureGauge) | |||||
call json%add(p,"CasingPressureGauge",data%Equipments%ControlPanel%CDataDisplay%CasingPressureGauge) | |||||
call json%add(p,"MP1SPMGauge",data%Equipments%ControlPanel%CDataDisplay%MP1SPMGauge) | |||||
call json%add(p,"MP2SPMGauge",data%Equipments%ControlPanel%CDataDisplay%MP2SPMGauge) | |||||
call json%add(p,"ReturnLineTempGauge",data%Equipments%ControlPanel%CDataDisplay%ReturnLineTempGauge) | |||||
call json%add(p,"RotaryTorqueGauge",data%Equipments%ControlPanel%CDataDisplay%RotaryTorqueGauge) | |||||
call json%add(p,"RotaryRPMGauge",data%Equipments%ControlPanel%CDataDisplay%RotaryRPMGauge) | |||||
call json%add(p,"AcidGasDetectionLED",data%Equipments%ControlPanel%CDataDisplay%AcidGasDetectionLED) | |||||
call json%add(p,"TotalStrokeCounter",data%Equipments%ControlPanel%CDataDisplay%TotalStrokeCounter) | |||||
call json%add(p,"TotalStrokeCounter_temp",data%Equipments%ControlPanel%CDataDisplay%TotalStrokeCounter_temp) | |||||
call json%add(p,"PitGainLossGauge",data%Equipments%ControlPanel%CDataDisplay%PitGainLossGauge) | |||||
call json%add(p,"MudTanksVolumeGauge",data%Equipments%ControlPanel%CDataDisplay%MudTanksVolumeGauge) | |||||
call json%add(p,"MVTAlarmLED",data%Equipments%ControlPanel%CDataDisplay%MVTAlarmLED) | |||||
call json%add(p,"ReturnMudFlowGauge",data%Equipments%ControlPanel%CDataDisplay%ReturnMudFlowGauge) | |||||
call json%add(p,"FillStrokeCounter",data%Equipments%ControlPanel%CDataDisplay%FillStrokeCounter) | |||||
call json%add(p,"MFFITotalStrokeCounter",data%Equipments%ControlPanel%CDataDisplay%MFFITotalStrokeCounter) | |||||
call json%add(p,"MFFIAlarmLED",data%Equipments%ControlPanel%CDataDisplay%MFFIAlarmLED) | |||||
call json%add(p,"MFFIPumpLED",data%Equipments%ControlPanel%CDataDisplay%MFFIPumpLED) | |||||
call json%add(p,"TotalWellDepth",data%Equipments%ControlPanel%CDataDisplay%TotalWellDepth) | |||||
call json%add(p,"BitDepth",data%Equipments%ControlPanel%CDataDisplay%BitDepth) | |||||
call json%add(p,"HookLoad",data%Equipments%ControlPanel%CDataDisplay%HookLoad) | |||||
call json%add(p,"StandPipePressure",data%Equipments%ControlPanel%CDataDisplay%StandPipePressure) | |||||
call json%add(p,"CasingPressure",data%Equipments%ControlPanel%CDataDisplay%CasingPressure) | |||||
call json%add(p,"MP1SPM",data%Equipments%ControlPanel%CDataDisplay%MP1SPM) | |||||
call json%add(p,"MP2SPM",data%Equipments%ControlPanel%CDataDisplay%MP2SPM) | |||||
call json%add(p,"RTTorque",data%Equipments%ControlPanel%CDataDisplay%RTTorque) | |||||
call json%add(p,"RTRPM",data%Equipments%ControlPanel%CDataDisplay%RTRPM) | |||||
call json%add(p,"WOP",data%Equipments%ControlPanel%CDataDisplay%WOP) | |||||
call json%add(p,"ROP",data%Equipments%ControlPanel%CDataDisplay%ROP) | |||||
call json%add(p,"MudWeightIn",data%Equipments%ControlPanel%CDataDisplay%MudWeightIn) | |||||
call json%add(p,"MudWeightOut",data%Equipments%ControlPanel%CDataDisplay%MudWeightOut) | |||||
call json%add(p,"Buzzer1",data%Equipments%ControlPanel%CDataDisplay%Buzzer1) | |||||
call json%add(p,"Buzzer2",data%Equipments%ControlPanel%CDataDisplay%Buzzer2) | |||||
call json%add(p,"Buzzer3",data%Equipments%ControlPanel%CDataDisplay%Buzzer3) | |||||
call json%add(p,"Buzzer4",data%Equipments%ControlPanel%CDataDisplay%Buzzer4) | |||||
call json%add(parent,p) | |||||
end subroutine | |||||
subroutine Set_TotalDepth(v) | subroutine Set_TotalDepth(v) | ||||
use SimulationVariables !@!!, only: data%EquipmentControl%DrillingWatch%Depth | use SimulationVariables !@!!, only: data%EquipmentControl%DrillingWatch%Depth | ||||
! use CSimulationVariables, only: SetDistanceDrilled | ! use CSimulationVariables, only: SetDistanceDrilled | ||||
@@ -8,6 +8,102 @@ module CDrillingConsole | |||||
implicit none | implicit none | ||||
public | public | ||||
contains | contains | ||||
subroutine CDrillingToJson(parent) | |||||
type(json_value),pointer :: parent | |||||
type(json_core) :: json | |||||
type(json_value),pointer :: p | |||||
! 1. create new node | |||||
call json%create_object(p,'CDrilling') | |||||
call json%add(p,"AssignmentSwitch",data%Equipments%ControlPanel%CDriling%AssignmentSwitch) | |||||
call json%add(p,"EmergencySwitch",data%Equipments%ControlPanel%CDriling%EmergencySwitch) | |||||
call json%add(p,"RTTorqueLimitKnob",data%Equipments%ControlPanel%CDriling%RTTorqueLimitKnob) | |||||
call json%add(p,"MP1CPSwitchI",data%Equipments%ControlPanel%CDriling%MP1CPSwitchI) | |||||
call json%add(p,"MP1CPSwitchT",data%Equipments%ControlPanel%CDriling%MP1CPSwitchT) | |||||
call json%add(p,"MP1CPSwitch",data%Equipments%ControlPanel%CDriling%MP1CPSwitch) | |||||
call json%add(p,"MP1ThrottleUpdate",data%Equipments%ControlPanel%CDriling%MP1ThrottleUpdate) | |||||
call json%add(p,"MP1Throttle",data%Equipments%ControlPanel%CDriling%MP1Throttle) | |||||
call json%add(p,"MP2SwitchI",data%Equipments%ControlPanel%CDriling%MP2SwitchI) | |||||
call json%add(p,"MP2SwitchT",data%Equipments%ControlPanel%CDriling%MP2SwitchT) | |||||
call json%add(p,"MP2Switch",data%Equipments%ControlPanel%CDriling%MP2Switch) | |||||
call json%add(p,"MP2ThrottleUpdate",data%Equipments%ControlPanel%CDriling%MP2ThrottleUpdate) | |||||
call json%add(p,"MP2Throttle",data%Equipments%ControlPanel%CDriling%MP2Throttle) | |||||
call json%add(p,"DWSwitch",data%Equipments%ControlPanel%CDriling%DWSwitch) | |||||
call json%add(p,"DWThrottle",data%Equipments%ControlPanel%CDriling%DWThrottle) | |||||
call json%add(p,"RTSwitch",data%Equipments%ControlPanel%CDriling%RTSwitch) | |||||
call json%add(p,"RTThrottle",data%Equipments%ControlPanel%CDriling%RTThrottle) | |||||
call json%add(p,"DWBreak",data%Equipments%ControlPanel%CDriling%DWBreak) | |||||
call json%add(p,"PreviousDWBreak",data%Equipments%ControlPanel%CDriling%PreviousDWBreak) | |||||
call json%add(p,"ForceBreak",data%Equipments%ControlPanel%CDriling%ForceBreak) | |||||
call json%add(p,"DWAcceleretor",data%Equipments%ControlPanel%CDriling%DWAcceleretor) | |||||
call json%add(p,"DWTransmisionLever",data%Equipments%ControlPanel%CDriling%DWTransmisionLever) | |||||
call json%add(p,"DWPowerLever",data%Equipments%ControlPanel%CDriling%DWPowerLever) | |||||
call json%add(p,"TongLever",data%Equipments%ControlPanel%CDriling%TongLever) | |||||
call json%add(p,"RTTransmissionLever",data%Equipments%ControlPanel%CDriling%RTTransmissionLever) | |||||
call json%add(p,"DWClutchLever",data%Equipments%ControlPanel%CDriling%DWClutchLever) | |||||
call json%add(p,"EddyBreakLever",data%Equipments%ControlPanel%CDriling%EddyBreakLever) | |||||
call json%add(p,"AutoDW",data%Equipments%ControlPanel%CDriling%AutoDW) | |||||
call json%add(p,"GEN1",data%Equipments%ControlPanel%CDriling%GEN1) | |||||
call json%add(p,"GEN2",data%Equipments%ControlPanel%CDriling%GEN2) | |||||
call json%add(p,"GEN3",data%Equipments%ControlPanel%CDriling%GEN3) | |||||
call json%add(p,"GEN4",data%Equipments%ControlPanel%CDriling%GEN4) | |||||
call json%add(p,"Permission_OpenKellyCock",data%Equipments%ControlPanel%CDriling%Permission_OpenKellyCock) | |||||
call json%add(p,"OpenKellyCock",data%Equipments%ControlPanel%CDriling%OpenKellyCock) | |||||
call json%add(p,"Permission_CloseKellyCock",data%Equipments%ControlPanel%CDriling%Permission_CloseKellyCock) | |||||
call json%add(p,"CloseKellyCock",data%Equipments%ControlPanel%CDriling%CloseKellyCock) | |||||
call json%add(p,"Permission_OpenSafetyValve",data%Equipments%ControlPanel%CDriling%Permission_OpenSafetyValve) | |||||
call json%add(p,"OpenSafetyValve",data%Equipments%ControlPanel%CDriling%OpenSafetyValve) | |||||
call json%add(p,"Permission_CloseSafetyValve",data%Equipments%ControlPanel%CDriling%Permission_CloseSafetyValve) | |||||
call json%add(p,"CloseSafetyValve",data%Equipments%ControlPanel%CDriling%CloseSafetyValve) | |||||
call json%add(p,"Permission_IRSafetyValve",data%Equipments%ControlPanel%CDriling%Permission_IRSafetyValve) | |||||
call json%add(p,"IRSafetyValve",data%Equipments%ControlPanel%CDriling%IRSafetyValve) | |||||
call json%add(p,"Permission_IRIBop",data%Equipments%ControlPanel%CDriling%Permission_IRIBop) | |||||
call json%add(p,"IRIBop",data%Equipments%ControlPanel%CDriling%IRIBop) | |||||
call json%add(p,"LatchPipe",data%Equipments%ControlPanel%CDriling%LatchPipe) | |||||
call json%add(p,"UnlatchPipe",data%Equipments%ControlPanel%CDriling%UnlatchPipe) | |||||
call json%add(p,"Swing",data%Equipments%ControlPanel%CDriling%Swing) | |||||
call json%add(p,"FillMouseHole",data%Equipments%ControlPanel%CDriling%FillMouseHole) | |||||
call json%add(p,"Slips",data%Equipments%ControlPanel%CDriling%Slips) | |||||
call json%add(p,"BrakeLeverCoefficient",data%Equipments%ControlPanel%CDriling%BrakeLeverCoefficient) | |||||
call json%add(p,"HideDrillingBrake",data%Equipments%ControlPanel%CDriling%HideDrillingBrake) | |||||
call json%add(p,"ParkingBrakeBtn",data%Equipments%ControlPanel%CDriling%ParkingBrakeBtn) | |||||
call json%add(p,"ParkingBrakeLed",data%Equipments%ControlPanel%CDriling%ParkingBrakeLed) | |||||
call json%add(p,"GEN1LED",data%Equipments%ControlPanel%CDriling%GEN1LED) | |||||
call json%add(p,"GEN2LED",data%Equipments%ControlPanel%CDriling%GEN2LED) | |||||
call json%add(p,"GEN3LED",data%Equipments%ControlPanel%CDriling%GEN3LED) | |||||
call json%add(p,"GEN4LED",data%Equipments%ControlPanel%CDriling%GEN4LED) | |||||
call json%add(p,"SCR1LED",data%Equipments%ControlPanel%CDriling%SCR1LED) | |||||
call json%add(p,"SCR2LED",data%Equipments%ControlPanel%CDriling%SCR2LED) | |||||
call json%add(p,"SCR3LED",data%Equipments%ControlPanel%CDriling%SCR3LED) | |||||
call json%add(p,"SCR4LED",data%Equipments%ControlPanel%CDriling%SCR4LED) | |||||
call json%add(p,"MP1BLWR",data%Equipments%ControlPanel%CDriling%MP1BLWR) | |||||
call json%add(p,"MP2BLWR",data%Equipments%ControlPanel%CDriling%MP2BLWR) | |||||
call json%add(p,"DWBLWR",data%Equipments%ControlPanel%CDriling%DWBLWR) | |||||
call json%add(p,"RTBLWR",data%Equipments%ControlPanel%CDriling%RTBLWR) | |||||
call json%add(p,"PWRLIM",data%Equipments%ControlPanel%CDriling%PWRLIM) | |||||
call json%add(p,"PWRLIMMTR",data%Equipments%ControlPanel%CDriling%PWRLIMMTR) | |||||
call json%add(p,"RTTorqueLimitGauge",data%Equipments%ControlPanel%CDriling%RTTorqueLimitGauge) | |||||
call json%add(p,"AutoDWLED",data%Equipments%ControlPanel%CDriling%AutoDWLED) | |||||
call json%add(p,"GEN1BTNLED",data%Equipments%ControlPanel%CDriling%GEN1BTNLED) | |||||
call json%add(p,"GEN2BTNLED",data%Equipments%ControlPanel%CDriling%GEN2BTNLED) | |||||
call json%add(p,"GEN3BTNLED",data%Equipments%ControlPanel%CDriling%GEN3BTNLED) | |||||
call json%add(p,"GEN4BTNLED",data%Equipments%ControlPanel%CDriling%GEN4BTNLED) | |||||
call json%add(p,"OpenKellyCockLed",data%Equipments%ControlPanel%CDriling%OpenKellyCockLed) | |||||
call json%add(p,"CloseKellyCockLed",data%Equipments%ControlPanel%CDriling%CloseKellyCockLed) | |||||
call json%add(p,"OpenSafetyValveLed",data%Equipments%ControlPanel%CDriling%OpenSafetyValveLed) | |||||
call json%add(p,"CloseSafetyValveLed",data%Equipments%ControlPanel%CDriling%CloseSafetyValveLed) | |||||
call json%add(p,"IRSafetyValveLed",data%Equipments%ControlPanel%CDriling%IRSafetyValveLed) | |||||
call json%add(p,"IRIBopLed",data%Equipments%ControlPanel%CDriling%IRIBopLed) | |||||
call json%add(p,"LatchPipeLED",data%Equipments%ControlPanel%CDriling%LatchPipeLED) | |||||
call json%add(p,"UnlatchPipeLED",data%Equipments%ControlPanel%CDriling%UnlatchPipeLED) | |||||
call json%add(p,"SwingLed",data%Equipments%ControlPanel%CDriling%SwingLed) | |||||
call json%add(p,"FillMouseHoleLed",data%Equipments%ControlPanel%CDriling%FillMouseHoleLed) | |||||
call json%add(parent,p) | |||||
end subroutine | |||||
! Input routines | ! Input routines | ||||
subroutine SetAssignmentSwitch(v) | subroutine SetAssignmentSwitch(v) | ||||
@@ -4,6 +4,20 @@ module CHook | |||||
implicit none | implicit none | ||||
public | public | ||||
contains | contains | ||||
subroutine CHookToJson(parent) | |||||
type(json_value),pointer :: parent | |||||
type(json_core) :: json | |||||
type(json_value),pointer :: p | |||||
! 1. create new node | |||||
call json%create_object(p,'CHook') | |||||
call json%add(p,"HookHeight_S",data%Equipments%ControlPanel%CHook%HookHeight_S) | |||||
call json%add(p,"HookHeight",data%Equipments%ControlPanel%CHook%HookHeight) | |||||
call json%add(parent,p) | |||||
end subroutine | |||||
subroutine Set_HookHeight(v) | subroutine Set_HookHeight(v) | ||||
use CDrillingConsoleVariables | use CDrillingConsoleVariables | ||||
@@ -5,6 +5,37 @@ module CStandPipeManifold | |||||
implicit none | implicit none | ||||
public | public | ||||
contains | contains | ||||
subroutine CStandPipeToJson(parent) | |||||
type(json_value),pointer :: parent | |||||
type(json_core) :: json | |||||
type(json_value),pointer :: p | |||||
! 1. create new node | |||||
call json%create_object(p,'CStandPipe') | |||||
call json%add(p,"StandPipeManifoldValve1",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve1) | |||||
call json%add(p,"StandPipeManifoldValve2",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve2) | |||||
call json%add(p,"StandPipeManifoldValve3",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve3) | |||||
call json%add(p,"StandPipeManifoldValve4",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve4) | |||||
call json%add(p,"StandPipeManifoldValve5",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve5) | |||||
call json%add(p,"StandPipeManifoldValve6",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve6) | |||||
call json%add(p,"StandPipeManifoldValve7",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve7) | |||||
call json%add(p,"StandPipeManifoldValve8",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve8) | |||||
call json%add(p,"StandPipeManifoldValve9",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve9) | |||||
call json%add(p,"StandPipeManifoldValve10",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve10) | |||||
call json%add(p,"StandPipeManifoldValve11",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve11) | |||||
call json%add(p,"StandPipeManifoldValve12",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve12) | |||||
call json%add(p,"StandPipeManifoldValve13",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve13) | |||||
call json%add(p,"StandPipeManifoldValve14",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve14) | |||||
call json%add(p,"StandPipeManifoldValve15",data%Equipments%ControlPanel%CStandPipe%StandPipeManifoldValve15) | |||||
call json%add(p,"StandPipeGauge1",data%Equipments%ControlPanel%CStandPipe%StandPipeGauge1) | |||||
call json%add(p,"StandPipeGauge2",data%Equipments%ControlPanel%CStandPipe%StandPipeGauge2) | |||||
call json%add(parent,p) | |||||
end subroutine | |||||
! Input routines | ! Input routines | ||||
subroutine SetStandPipeManifoldValve1(v) | subroutine SetStandPipeManifoldValve1(v) | ||||
@@ -5,6 +5,20 @@ module CTopDrivePanel | |||||
implicit none | implicit none | ||||
public | public | ||||
contains | contains | ||||
subroutine CDrivePanelToJson(parent) | |||||
type(json_value),pointer :: parent | |||||
type(json_core) :: json | |||||
type(json_value),pointer :: p | |||||
! 1. create new node | |||||
call json%create_object(p,'CDrivePanel') | |||||
call json%add(parent,p) | |||||
end subroutine | |||||
! Input routines | ! Input routines | ||||
subroutine SetTopDriveTdsPowerState(v) | subroutine SetTopDriveTdsPowerState(v) | ||||
@@ -4,7 +4,46 @@ | |||||
use CManifolds | use CManifolds | ||||
implicit none | implicit none | ||||
public | public | ||||
contains | contains | ||||
subroutine CTankToJson(parent) | |||||
type(json_value),pointer :: parent | |||||
type(json_core) :: json | |||||
type(json_value),pointer :: p,pform | |||||
integer :: i | |||||
call json%create_array(p,'CTank') | |||||
do i=1,data%Equipments%Tanks%CTank%Count | |||||
call json%create_object(pform,'') | |||||
call json%add(pform,"WaterRate",data%Equipments%Tanks%CTanks%WaterRate) | |||||
call json%add(pform,"CementTankVolume",data%Equipments%Tanks%CTanks%CementTankVolume) | |||||
call json%add(pform,"CementTankDensity",data%Equipments%Tanks%CTanks%CementTankDensity) | |||||
call json%add(pform,"TripTankVolume",data%Equipments%Tanks%CTanks%TripTankVolume) | |||||
call json%add(pform,"TripTankDensity",data%Equipments%Tanks%CTanks%TripTankDensity) | |||||
call json%add(pform,"ManualPumpPower",data%Equipments%Tanks%CTanks%ManualPumpPower) | |||||
call json%add(pform,"Valve1",data%Equipments%Tanks%CTanks%Valve1) | |||||
call json%add(pform,"Valve2",data%Equipments%Tanks%CTanks%Valve2) | |||||
call json%add(pform,"Valve3",data%Equipments%Tanks%CTanks%Valve3) | |||||
call json%add(pform,"Valve4",data%Equipments%Tanks%CTanks%Valve4) | |||||
call json%add(pform,"Valve5",data%Equipments%Tanks%CTanks%Valve5) | |||||
call json%add(pform,"Valve6",data%Equipments%Tanks%CTanks%Valve6) | |||||
call json%add(pform,"Valve7",data%Equipments%Tanks%CTanks%Valve7) | |||||
call json%add(pform,"Valve8",data%Equipments%Tanks%CTanks%Valve8) | |||||
call json%add(pform,"Valve9",data%Equipments%Tanks%CTanks%Valve9) | |||||
call json%add(pform,"Valve10",data%Equipments%Tanks%CTanks%Valve10) | |||||
call json%add(pform,"Valve11",data%Equipments%Tanks%CTanks%Valve11) | |||||
call json%add(p,pform) | |||||
end do | |||||
call json%add(parent,p) | |||||
end subroutine | |||||
subroutine Set_ManualPumpPower(v) | subroutine Set_ManualPumpPower(v) | ||||
use CManifolds, only:ChangeValve | use CManifolds, only:ChangeValve | ||||
implicit none | implicit none | ||||
@@ -148,7 +148,8 @@ contains | |||||
type(json_value),pointer :: p | type(json_value),pointer :: p | ||||
print *,"write starts" | print *,"write starts" | ||||
call json%create_object(p,'') !create the root | call json%create_object(p,'') !create the root | ||||
call ConfigurationToJson(p) | call ConfigurationToJson(p) | ||||
call json%print(p,'test.json') !write it to a file | call json%print(p,'test.json') !write it to a file | ||||
call json%destroy(p) !cleanup print *,"written" | call json%destroy(p) !cleanup print *,"written" | ||||
print *,"write ends" | print *,"write ends" | ||||
@@ -1,15 +1,17 @@ | |||||
real(8) :: CasingDepth | real(8) :: WaterRate | ||||
real(8) :: CasingId | real(8) :: CementTankVolume | ||||
real(8) :: CasingOd | real(8) :: CementTankDensity | ||||
real(8) :: CasingWeight | real(8) :: TripTankVolume | ||||
real(8) :: CasingCollapsePressure | real(8) :: TripTankDensity | ||||
real(8) :: CasingTensileStrength | logical :: ManualPumpPower | ||||
real(8) :: LinerTopDepth | logical :: Valve1 | ||||
real(8) :: LinerLength | logical :: Valve2 | ||||
real(8) :: LinerId | logical :: Valve3 | ||||
real(8) :: LinerOd | logical :: Valve4 | ||||
real(8) :: LinerWeight | logical :: Valve5 | ||||
real(8) :: LinerCollapsePressure | logical :: Valve6 | ||||
real(8) :: LinerTensileStrength | logical :: Valve7 | ||||
real(8) :: OpenHoleId | logical :: Valve8 | ||||
real(8) :: OpenHoleLength | logical :: Valve9 | ||||
logical :: Valve10 | |||||
logical :: Valve11 |
@@ -0,0 +1,273 @@ | |||||
<!DOCTYPE html> | |||||
<!-- saved from url=(0014)about:internet --> | |||||
<html xmlns:msxsl="urn:schemas-microsoft-com:xslt"><head><meta content="en-us" http-equiv="Content-Language" /><meta content="text/html; charset=utf-16" http-equiv="Content-Type" /><title _locID="ConversionReport0"> | |||||
Migration Report | |||||
</title><style> | |||||
/* Body style, for the entire document */ | |||||
body | |||||
{ | |||||
background: #F3F3F4; | |||||
color: #1E1E1F; | |||||
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; | |||||
padding: 0; | |||||
margin: 0; | |||||
} | |||||
/* Header1 style, used for the main title */ | |||||
h1 | |||||
{ | |||||
padding: 10px 0px 10px 10px; | |||||
font-size: 21pt; | |||||
background-color: #E2E2E2; | |||||
border-bottom: 1px #C1C1C2 solid; | |||||
color: #201F20; | |||||
margin: 0; | |||||
font-weight: normal; | |||||
} | |||||
/* Header2 style, used for "Overview" and other sections */ | |||||
h2 | |||||
{ | |||||
font-size: 18pt; | |||||
font-weight: normal; | |||||
padding: 15px 0 5px 0; | |||||
margin: 0; | |||||
} | |||||
/* Header3 style, used for sub-sections, such as project name */ | |||||
h3 | |||||
{ | |||||
font-weight: normal; | |||||
font-size: 15pt; | |||||
margin: 0; | |||||
padding: 15px 0 5px 0; | |||||
background-color: transparent; | |||||
} | |||||
/* Color all hyperlinks one color */ | |||||
a | |||||
{ | |||||
color: #1382CE; | |||||
} | |||||
/* Table styles */ | |||||
table | |||||
{ | |||||
border-spacing: 0 0; | |||||
border-collapse: collapse; | |||||
font-size: 10pt; | |||||
} | |||||
table th | |||||
{ | |||||
background: #E7E7E8; | |||||
text-align: left; | |||||
text-decoration: none; | |||||
font-weight: normal; | |||||
padding: 3px 6px 3px 6px; | |||||
} | |||||
table td | |||||
{ | |||||
vertical-align: top; | |||||
padding: 3px 6px 5px 5px; | |||||
margin: 0px; | |||||
border: 1px solid #E7E7E8; | |||||
background: #F7F7F8; | |||||
} | |||||
/* Local link is a style for hyperlinks that link to file:/// content, there are lots so color them as 'normal' text until the user mouse overs */ | |||||
.localLink | |||||
{ | |||||
color: #1E1E1F; | |||||
background: #EEEEED; | |||||
text-decoration: none; | |||||
} | |||||
.localLink:hover | |||||
{ | |||||
color: #1382CE; | |||||
background: #FFFF99; | |||||
text-decoration: none; | |||||
} | |||||
/* Center text, used in the over views cells that contain message level counts */ | |||||
.textCentered | |||||
{ | |||||
text-align: center; | |||||
} | |||||
/* The message cells in message tables should take up all avaliable space */ | |||||
.messageCell | |||||
{ | |||||
width: 100%; | |||||
} | |||||
/* Padding around the content after the h1 */ | |||||
#content | |||||
{ | |||||
padding: 0px 12px 12px 12px; | |||||
} | |||||
/* The overview table expands to width, with a max width of 97% */ | |||||
#overview table | |||||
{ | |||||
width: auto; | |||||
max-width: 75%; | |||||
} | |||||
/* The messages tables are always 97% width */ | |||||
#messages table | |||||
{ | |||||
width: 97%; | |||||
} | |||||
/* All Icons */ | |||||
.IconSuccessEncoded, .IconInfoEncoded, .IconWarningEncoded, .IconErrorEncoded | |||||
{ | |||||
min-width:18px; | |||||
min-height:18px; | |||||
background-repeat:no-repeat; | |||||
background-position:center; | |||||
} | |||||
/* Success icon encoded */ | |||||
.IconSuccessEncoded | |||||
{ | |||||
/* Note: Do not delete the comment below. It is used to verify the correctness of the encoded image resource below before the product is released */ | |||||
/* [---XsltValidateInternal-Base64EncodedImage:IconSuccess#Begin#background-image: url(data:image/png;base64,#Separator#);#End#] */ | |||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABcElEQVR4Xq2TsUsCURzHv15g8ZJcBWlyiYYgCIWcb9DFRRwMW5TA2c0/QEFwFkxxUQdxVlBwCYWOi6IhWgQhBLHJUCkhLr/BW8S7gvrAg+N+v8/v+x68Z8MGy+XSCyABQAXgBgHGALoASkIIDWSLeLBetdHryMjd5IxQPWT4rn1c/P7+xxp72Cs9m5SZ0Bq2vPnbPFafK2zDvmNHypdC0BPkLlQhxJsCAhQoZwdZU5mwxh720qGo8MzTxTTKZDPCx2HoVzp6lz0Q9tKhyx0kGs8Ny+TkWRKk8lCROwEduhyg9l/6lunOPSfmH3NUH6uQ0KHLAe7JYvJjevm+DAMGJHToKtigE+vwvIidxLamb8IBY9e+C5LiXREkfho3TSd06HJA13/oh6T51MTsfQbHrsMynQ5dDihFjiK8JJAU9AKIWTp76dCVN7HWHrajmUEGvyF9nkbAE6gLIS7kTUyuf2gscLoJrElZo/Mvj+nPz/kLTmfnEwP3tB0AAAAASUVORK5CYII=); | |||||
} | |||||
/* Information icon encoded */ | |||||
.IconInfoEncoded | |||||
{ | |||||
/* Note: Do not delete the comment below. It is used to verify the correctness of the encoded image resource below before the product is released */ | |||||
/* [---XsltValidateInternal-Base64EncodedImage:IconInformation#Begin#background-image: url(data:image/png;base64,#Separator#);#End#] */ | |||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR4Xs2TsUoDQRRF7wwoziokjZUKadInhdhukR9YP8DMX1hYW+QvdsXa/QHBbcXC7W0CamWTQnclFutceIQJwwaWNLlwm5k5d94M76mmaeCrrmsLYOocY12FcxZFUeozCqKqqgYA8uevv1H6VuPxcwlfk5N92KHBxfFeCSAxxswlYAW/Xr989x/mv9gkhtyMDhcAxgzRsp7flj8B/HF1RsMXq+NZMkopaHe7lbKxQUEIGbKsYNoGn969060hZBkQex/W8oRQwsQaW2o3Ago2SVcJUzAgY3N0lTCZZm+zPS8HB51gMmS1DEYyOz9acKO1D8JWTlafKIMxdhvlfdyT94Vv5h7P8Ky7nQzACmhvKq3zk3PjW9asz9D/1oigecsioooAAAAASUVORK5CYII=); | |||||
} | |||||
/* Warning icon encoded */ | |||||
.IconWarningEncoded | |||||
{ | |||||
/* Note: Do not delete the comment below. It is used to verify the correctness of the encoded image resource below before the product is released */ | |||||
/* [---XsltValidateInternal-Base64EncodedImage:IconWarning#Begin#background-image: url(data:image/png;base64,#Separator#);#End#] */ | |||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAx0lEQVR4XpWSMQ7CMAxFf4xAyBMLCxMrO8dhaBcuwdCJS3RJBw7SA/QGTCxdWJgiQYWKXJWKIXHIlyw5lqr34tQgEOdcBsCOx5yZK3hCCKdYXneQkh4pEfqzLfu+wVDSyyzFoJjfz9NB+pAF+eizx2Vruts0k15mPgvS6GYvpVtQhB61IB/dk6AF6fS4Ben0uIX5odtFe8Q/eW1KvFeH4e8khT6+gm5B+t3juyDt7n0jpe+CANTd+oTUjN/U3yVaABnSUjFz/gFq44JaVSCXeQAAAABJRU5ErkJggg==); | |||||
} | |||||
/* Error icon encoded */ | |||||
.IconErrorEncoded | |||||
{ | |||||
/* Note: Do not delete the comment below. It is used to verify the correctness of the encoded image resource below before the product is released */ | |||||
/* [---XsltValidateInternal-Base64EncodedImage:IconError#Begin#background-image: url(data:image/png;base64,#Separator#);#End#] */ | |||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABQElEQVR4XqWTvUoEQRCE6wYPZUA80AfwAQz23uCMjA7MDRQEIzPBVEyNTQUFIw00vcQTTMzuAh/AxEQQT8HF/3G/oGGnEUGuoNnd6qoZuqltyKEsyzVJq5I6rnUp6SjGeGhESikzzlc1eL7opfuVbrqbU1Zw9NCgtQMaZpY0eNnaaL2fHusvTK5vKu7sjSS1Y4y3QUA6K3e3Mau5UFDyMP7tYF9o8cAHZv68vipoIJg971PZIZ5HiwdvYGGvFVFHmGmZ2MxwmQYPXubPl9Up0tfoMQGetXd6mRbvhBw+boZ6WF7Mbv1+GsHRk0fQmPAH1GfmZirbCfDJ61tw3Px8/8pZsPAG4jlVhcPgZ7adwNWBB68lkRQWFiTgFlbnLY3DGGM7izIJIyT/jjIvEJw6fdJTc6krDzh6aMwMP9bvDH4ADSsa9uSWVJkAAAAASUVORK5CYII=); | |||||
} | |||||
</style><script type="text/javascript" language="javascript"> | |||||
// Startup | |||||
// Hook up the the loaded event for the document/window, to linkify the document content | |||||
var startupFunction = function() { linkifyElement("messages"); }; | |||||
if(window.attachEvent) | |||||
{ | |||||
window.attachEvent('onload', startupFunction); | |||||
} | |||||
else if (window.addEventListener) | |||||
{ | |||||
window.addEventListener('load', startupFunction, false); | |||||
} | |||||
else | |||||
{ | |||||
document.addEventListener('load', startupFunction, false); | |||||
} | |||||
// Toggles the visibility of table rows with the specified name | |||||
function toggleTableRowsByName(name) | |||||
{ | |||||
var allRows = document.getElementsByTagName('tr'); | |||||
for (i=0; i < allRows.length; i++) | |||||
{ | |||||
var currentName = allRows[i].getAttribute('name'); | |||||
if(!!currentName && currentName.indexOf(name) == 0) | |||||
{ | |||||
var isVisible = allRows[i].style.display == ''; | |||||
isVisible ? allRows[i].style.display = 'none' : allRows[i].style.display = ''; | |||||
} | |||||
} | |||||
} | |||||
function scrollToFirstVisibleRow(name) | |||||
{ | |||||
var allRows = document.getElementsByTagName('tr'); | |||||
for (i=0; i < allRows.length; i++) | |||||
{ | |||||
var currentName = allRows[i].getAttribute('name'); | |||||
var isVisible = allRows[i].style.display == ''; | |||||
if(!!currentName && currentName.indexOf(name) == 0 && isVisible) | |||||
{ | |||||
allRows[i].scrollIntoView(true); | |||||
return true; | |||||
} | |||||
} | |||||
return false; | |||||
} | |||||
// Linkifies the specified text content, replaces candidate links with html links | |||||
function linkify(text) | |||||
{ | |||||
if(!text || 0 === text.length) | |||||
{ | |||||
return text; | |||||
} | |||||
// Find http, https and ftp links and replace them with hyper links | |||||
var urlLink = /(http|https|ftp)\:\/\/[a-zA-Z0-9\-\.]+(:[a-zA-Z0-9]*)?\/?([a-zA-Z0-9\-\._\?\,\/\\\+&%\$#\=~;\{\}])*/gi; | |||||
return text.replace(urlLink, '<a href="$&">$&</a>') ; | |||||
} | |||||
// Linkifies the specified element by ID | |||||
function linkifyElement(id) | |||||
{ | |||||
var element = document.getElementById(id); | |||||
if(!!element) | |||||
{ | |||||
element.innerHTML = linkify(element.innerHTML); | |||||
} | |||||
} | |||||
function ToggleMessageVisibility(projectName) | |||||
{ | |||||
if(!projectName || 0 === projectName.length) | |||||
{ | |||||
return; | |||||
} | |||||
toggleTableRowsByName("MessageRowClass" + projectName); | |||||
toggleTableRowsByName('MessageRowHeaderShow' + projectName); | |||||
toggleTableRowsByName('MessageRowHeaderHide' + projectName); | |||||
} | |||||
function ScrollToFirstVisibleMessage(projectName) | |||||
{ | |||||
if(!projectName || 0 === projectName.length) | |||||
{ | |||||
return; | |||||
} | |||||
// First try the 'Show messages' row | |||||
if(!scrollToFirstVisibleRow('MessageRowHeaderShow' + projectName)) | |||||
{ | |||||
// Failed to find a visible row for 'Show messages', try an actual message row | |||||
scrollToFirstVisibleRow('MessageRowClass' + projectName); | |||||
} | |||||
} | |||||
</script></head><body><h1 _locID="ConversionReport"> | |||||
Migration Report - </h1><div id="content"><h2 _locID="OverviewTitle">Overview</h2><div id="overview"><table><tr><th></th><th _locID="ProjectTableHeader">Project</th><th _locID="PathTableHeader">Path</th><th _locID="ErrorsTableHeader">Errors</th><th _locID="WarningsTableHeader">Warnings</th><th _locID="MessagesTableHeader">Messages</th></tr><tr><td class="IconErrorEncoded" /><td><strong><a href="#SimulationCore2">SimulationCore2</a></strong></td><td>SimulationCore2.vfproj</td><td class="textCentered"><a href="#SimulationCore2Error">1</a></td><td class="textCentered"><a>0</a></td><td class="textCentered"><a href="#">0</a></td></tr><tr><td class="IconSuccessEncoded" /><td><strong><a href="#Solution"><span _locID="OverviewSolutionSpan">Solution</span></a></strong></td><td>SimulationCore2.sln</td><td class="textCentered"><a>0</a></td><td class="textCentered"><a>0</a></td><td class="textCentered"><a href="#" onclick="ScrollToFirstVisibleMessage('Solution'); return false;">1</a></td></tr></table></div><h2 _locID="SolutionAndProjectsTitle">Solution and projects</h2><div id="messages"><a name="SimulationCore2" /><h3>SimulationCore2</h3><table><tr id="SimulationCore2HeaderRow"><th></th><th class="messageCell" _locID="MessageTableHeader">Message</th></tr><tr name="ErrorRowClassSimulationCore2"><td class="IconErrorEncoded"><a name="SimulationCore2Error" /></td><td class="messageCell"><strong>SimulationCore2.vfproj: | |||||
</strong><span>The application which this project type is based on was not found. Please try this link for further information: 6989167d-11e4-40fe-8c1a-2192a86a7e90</span></td></tr></table><a name="Solution" /><h3 _locID="ProjectDisplayNameHeader">Solution</h3><table><tr id="SolutionHeaderRow"><th></th><th class="messageCell" _locID="MessageTableHeader">Message</th></tr><tr name="MessageRowHeaderShowSolution"><td class="IconInfoEncoded" /><td class="messageCell"><a _locID="ShowAdditionalMessages" href="#" name="SolutionMessage" onclick="ToggleMessageVisibility('Solution'); return false;"> | |||||
Show 1 additional messages | |||||
</a></td></tr><tr name="MessageRowClassSolution" style="display: none"><td class="IconInfoEncoded"><a name="SolutionMessage" /></td><td class="messageCell"><strong>SimulationCore2.sln: | |||||
</strong><span>The solution file does not require migration.</span></td></tr><tr style="display: none" name="MessageRowHeaderHideSolution"><td class="IconInfoEncoded" /><td class="messageCell"><a _locID="HideAdditionalMessages" href="#" name="SolutionMessage" onclick="ToggleMessageVisibility('Solution'); return false;"> | |||||
Hide 1 additional messages | |||||
</a></td></tr></table></div></div></body></html> |
@@ -2,19 +2,44 @@ | |||||
"cells": [ | "cells": [ | ||||
{ | { | ||||
"cell_type": "code", | "cell_type": "code", | ||||
"execution_count": 19, | "execution_count": 10, | ||||
"metadata": {}, | "metadata": {}, | ||||
"outputs": [ | "outputs": [ | ||||
{ | { | ||||
"data": { | "data": { | ||||
"text/plain": [ | "text/plain": [ | ||||
"[' integer :: RigType\\n',\n", | "[' real(8) :: AnnularRegulatorSetControl\\n',\n", | ||||
" ' real(8) :: CrownHeight\\n',\n", | " ' real(8) :: AirMasterValve\\n',\n", | ||||
" ' real(8) :: MonkeyBoandHeight\\n',\n", | " ' real(8) :: ByePassValve\\n',\n", | ||||
" ' real(8) :: RigFloorHeight\\n']" | " ' real(8) :: AnnularValve\\n',\n", | ||||
" ' real(8) :: UpperRamsValve\\n',\n", | |||||
" ' real(8) :: MiddleRamsValve\\n',\n", | |||||
" ' real(8) :: KillLineValve\\n',\n", | |||||
" ' real(8) :: ChokeLineValve\\n',\n", | |||||
" ' real(8) :: LowerRamsValve\\n',\n", | |||||
" ' real(8) :: ManifoldPressureGauge\\n',\n", | |||||
" ' real(8) :: AirSupplyPressureGauge\\n',\n", | |||||
" ' real(8) :: AccumulatorPressureGauge\\n',\n", | |||||
" ' real(8) :: AnnularPressureGauge\\n',\n", | |||||
" ' integer :: AnnularOpenLED\\n',\n", | |||||
" ' integer :: AnnularCloseLED\\n',\n", | |||||
" ' integer :: UpperRamsOpenLED\\n',\n", | |||||
" ' integer :: UpperRamsCloseLED\\n',\n", | |||||
" ' integer :: MiddleRamsOpenLED\\n',\n", | |||||
" ' integer :: MiddleRamsCloseLED\\n',\n", | |||||
" ' integer :: KillLineOpenLED\\n',\n", | |||||
" ' integer :: KillLineCloseLED\\n',\n", | |||||
" ' integer :: ChokeLineOpenLED\\n',\n", | |||||
" ' integer :: ChokeLineCloseLED\\n',\n", | |||||
" ' integer :: LowerRamsOpenLED\\n',\n", | |||||
" ' integer :: LowerRamsCloseLED\\n',\n", | |||||
" ' real(8) :: AnnularStatus\\n',\n", | |||||
" ' real(8) :: UpperRamsStatus\\n',\n", | |||||
" ' real(8) :: MiddleRamsStatus\\n',\n", | |||||
" ' real(8) :: LowerRamsStatus']" | |||||
] | ] | ||||
}, | }, | ||||
"execution_count": 19, | "execution_count": 10, | ||||
"metadata": {}, | "metadata": {}, | ||||
"output_type": "execute_result" | "output_type": "execute_result" | ||||
} | } | ||||
@@ -32,28 +57,28 @@ | |||||
"name": "stdout", | "name": "stdout", | ||||
"output_type": "stream", | "output_type": "stream", | ||||
"text": [ | "text": [ | ||||
"call json%add(p,\"CasingDepth\",data%Configuration%CasingLinerChoke%CasingDepth)\n", | "call json%add(p,\"WaterRate\",data%Equipments%Tanks%CTanks%WaterRate)\n", | ||||
"call json%add(p,\"CasingId\",data%Configuration%CasingLinerChoke%CasingId)\n", | "call json%add(p,\"CementTankVolume\",data%Equipments%Tanks%CTanks%CementTankVolume)\n", | ||||
"call json%add(p,\"CasingOd\",data%Configuration%CasingLinerChoke%CasingOd)\n", | "call json%add(p,\"CementTankDensity\",data%Equipments%Tanks%CTanks%CementTankDensity)\n", | ||||
"call json%add(p,\"CasingWeight\",data%Configuration%CasingLinerChoke%CasingWeight)\n", | "call json%add(p,\"TripTankVolume\",data%Equipments%Tanks%CTanks%TripTankVolume)\n", | ||||
"call json%add(p,\"CasingCollapsePressure\",data%Configuration%CasingLinerChoke%CasingCollapsePressure)\n", | "call json%add(p,\"TripTankDensity\",data%Equipments%Tanks%CTanks%TripTankDensity)\n", | ||||
"call json%add(p,\"CasingTensileStrength\",data%Configuration%CasingLinerChoke%CasingTensileStrength)\n", | "call json%add(p,\"ManualPumpPower\",data%Equipments%Tanks%CTanks%ManualPumpPower)\n", | ||||
"call json%add(p,\"\",data%Configuration%CasingLinerChoke%)\n", | "call json%add(p,\"Valve1\",data%Equipments%Tanks%CTanks%Valve1)\n", | ||||
"call json%add(p,\"LinerTopDepth\",data%Configuration%CasingLinerChoke%LinerTopDepth)\n", | "call json%add(p,\"Valve2\",data%Equipments%Tanks%CTanks%Valve2)\n", | ||||
"call json%add(p,\"LinerLength\",data%Configuration%CasingLinerChoke%LinerLength)\n", | "call json%add(p,\"Valve3\",data%Equipments%Tanks%CTanks%Valve3)\n", | ||||
"call json%add(p,\"LinerId\",data%Configuration%CasingLinerChoke%LinerId)\n", | "call json%add(p,\"Valve4\",data%Equipments%Tanks%CTanks%Valve4)\n", | ||||
"call json%add(p,\"LinerOd\",data%Configuration%CasingLinerChoke%LinerOd)\n", | "call json%add(p,\"Valve5\",data%Equipments%Tanks%CTanks%Valve5)\n", | ||||
"call json%add(p,\"LinerWeight\",data%Configuration%CasingLinerChoke%LinerWeight)\n", | "call json%add(p,\"Valve6\",data%Equipments%Tanks%CTanks%Valve6)\n", | ||||
"call json%add(p,\"LinerCollapsePressure\",data%Configuration%CasingLinerChoke%LinerCollapsePressure)\n", | "call json%add(p,\"Valve7\",data%Equipments%Tanks%CTanks%Valve7)\n", | ||||
"call json%add(p,\"LinerTensileStrength\",data%Configuration%CasingLinerChoke%LinerTensileStrength)\n", | "call json%add(p,\"Valve8\",data%Equipments%Tanks%CTanks%Valve8)\n", | ||||
"call json%add(p,\"\",data%Configuration%CasingLinerChoke%)\n", | "call json%add(p,\"Valve9\",data%Equipments%Tanks%CTanks%Valve9)\n", | ||||
"call json%add(p,\"OpenHoleId\",data%Configuration%CasingLinerChoke%OpenHoleId)\n", | "call json%add(p,\"Valve10\",data%Equipments%Tanks%CTanks%Valve10)\n", | ||||
"call json%add(p,\"OpenHoleLength\",data%Configuration%CasingLinerChoke%OpenHoleLength)\n" | "call json%add(p,\"Valve11\",data%Equipments%Tanks%CTanks%Valve11)\n" | ||||
] | ] | ||||
} | } | ||||
], | ], | ||||
"source": [ | "source": [ | ||||
"precode = \"\"\"call json%add(p,\"\",data%Configuration%CasingLinerChoke%\"\"\"\n", | "precode = \"\"\"call json%add(p,\"\",data%Equipments%Tanks%CTanks%\"\"\"\n", | ||||
"input = open(\"Text1.txt\")\n", | "input = open(\"Text1.txt\")\n", | ||||
"lines = input.readlines()\n", | "lines = input.readlines()\n", | ||||
"for line in lines:\n", | "for line in lines:\n", | ||||
@@ -98,7 +123,6 @@ | |||||
] | ] | ||||
}, | }, | ||||
{ | { | ||||
"attachments": {}, | |||||
"cell_type": "markdown", | "cell_type": "markdown", | ||||
"metadata": {}, | "metadata": {}, | ||||
"source": [ | "source": [ | ||||
@@ -508,7 +532,7 @@ | |||||
], | ], | ||||
"metadata": { | "metadata": { | ||||
"kernelspec": { | "kernelspec": { | ||||
"display_name": "base", | "display_name": "Python 3 (ipykernel)", | ||||
"language": "python", | "language": "python", | ||||
"name": "python3" | "name": "python3" | ||||
}, | }, | ||||
@@ -522,9 +546,8 @@ | |||||
"name": "python", | "name": "python", | ||||
"nbconvert_exporter": "python", | "nbconvert_exporter": "python", | ||||
"pygments_lexer": "ipython3", | "pygments_lexer": "ipython3", | ||||
"version": "3.9.12" | "version": "3.11.4" | ||||
}, | }, | ||||
"orig_nbformat": 4, | |||||
"vscode": { | "vscode": { | ||||
"interpreter": { | "interpreter": { | ||||
"hash": "1ef4a26de7183d96d6da1045a38581e0a15b2215d0c1b98c7b273c6e514c6c7e" | "hash": "1ef4a26de7183d96d6da1045a38581e0a15b2215d0c1b98c7b273c6e514c6c7e" | ||||