module CHoisting use SimulationVariables use json_module implicit none public contains subroutine HoistingFromJson(parent) use json_module,IK =>json_ik type(json_value),pointer :: parent type(json_core) :: json type(json_value),pointer :: p,pitem,pval logical::is_found integer::i,n_children CHARACTER(KIND=JSON_CK, LEN=:), ALLOCATABLE :: val call json%get(parent,'Hoisting',p) call json%get(p,'DriveType',pval) call json%get(pval,data%Configuration%Hoisting%DriveType) call json%get(p,'TravelingBlockWeight',pval) call json%get(pval,data%Configuration%Hoisting%TravelingBlockWeight) call json%get(p,'TopDriveWeight',pval) call json%get(pval,data%Configuration%Hoisting%TopDriveWeight) call json%get(p,'KellyWeight',pval) call json%get(pval,data%Configuration%Hoisting%KellyWeight) call json%get(p,'NumberOfLine',pval) call json%get(pval,data%Configuration%Hoisting%NumberOfLine) call json%get(p,'DrillingLineBreakingLoad',pval) call json%get(pval,data%Configuration%Hoisting%DrillingLineBreakingLoad) !@@@ data%Configuration%Hoisting%NumberOfLine = 10 end subroutine subroutine HoistingToJson(parent) type(json_value),pointer :: parent type(json_core) :: json type(json_value),pointer :: p ! 1. create new node call json%create_object(p,'Hoisting') ! 2. add member of data type to new node ! call StringConfigurationToJson(p) ! call FormationToJson(p) call json%add(p,"DrillingLineBreakingLoad",data%Configuration%Hoisting%DrillingLineBreakingLoad) call json%add(p,"DriveType",data%Configuration%Hoisting%DriveType) call json%add(p,"KellyWeight",data%Configuration%Hoisting%KellyWeight) call json%add(p,"NumberOfLine",data%Configuration%Hoisting%NumberOfLine) call json%add(p,"TopDriveWeight",data%Configuration%Hoisting%TopDriveWeight) call json%add(p,"TravelingBlockWeight",data%Configuration%Hoisting%TravelingBlockWeight) ! 3. add new node to parent call json%add(parent,p) end subroutine end module CHoisting