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.

CStringConfiguration.f90 3.0 KiB

2 years ago
2 years ago
2 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. module CStringConfiguration
  2. use CStringConfigurationVariables
  3. use SimulationVariables
  4. use json_module
  5. implicit none
  6. public
  7. contains
  8. subroutine StringConfigurationToJson(parent)
  9. type(json_value),pointer :: parent
  10. type(json_core) :: json
  11. type(json_value),pointer :: pitems,pitem,pbit,p
  12. integer:: i
  13. ! 1. create new node
  14. call json%create_object(p,'StringConfiguration')
  15. call json%create_array(pitems,'StringConfigurationItems')
  16. ! 2. add member of data type to new node
  17. do i=1,data%Configuration%StringConfiguration%StringConfigurationCount
  18. call json%create_object(pitem,'StringConfigurationItem')
  19. call json%add(pitem,"ComponentLength",data%Configuration%StringConfiguration%StringConfigurations(i)%ComponentLength)
  20. call json%add(pitem,"ComponentType",data%Configuration%StringConfiguration%StringConfigurations(i)%ComponentType)
  21. call json%add(pitem,"Grade",data%Configuration%StringConfiguration%StringConfigurations(i)%Grade)
  22. call json%add(pitem,"LengthPerJoint",data%Configuration%StringConfiguration%StringConfigurations(i)%LengthPerJoint)
  23. call json%add(pitem,"NominalId",data%Configuration%StringConfiguration%StringConfigurations(i)%NominalId)
  24. call json%add(pitem,"NominalOd",data%Configuration%StringConfiguration%StringConfigurations(i)%NominalOd)
  25. call json%add(pitem,"NominalToolJointOd",data%Configuration%StringConfiguration%StringConfigurations(i)%NominalToolJointOd)
  26. call json%add(pitem,"NumberOfJoint",data%Configuration%StringConfiguration%StringConfigurations(i)%NumberOfJoint)
  27. call json%add(pitem,"WeightPerLength",data%Configuration%StringConfiguration%StringConfigurations(i)%WeightPerLength)
  28. call json%add(pitems,pitem)
  29. end do
  30. call json%create_object(pbit,"BitDefenition")
  31. call json%add(pbit,"BitCodeHundreds",data%Configuration%StringConfiguration%BitDefinition%BitCodeHundreds)
  32. call json%add(pbit,"BitCodeOnes",data%Configuration%StringConfiguration%BitDefinition%BitCodeOnes)
  33. call json%add(pbit,"BitCodeTens",data%Configuration%StringConfiguration%BitDefinition%BitCodeTens)
  34. call json%add(pbit,"BitLength",data%Configuration%StringConfiguration%BitDefinition%BitLength)
  35. call json%add(pbit,"BitNozzleNo",data%Configuration%StringConfiguration%BitDefinition%BitNozzleNo)
  36. call json%add(pbit,"BitNozzleSize",data%Configuration%StringConfiguration%BitDefinition%BitNozzleSize)
  37. call json%add(pbit,"BitSize",data%Configuration%StringConfiguration%BitDefinition%BitSize)
  38. call json%add(pbit,"BitType",data%Configuration%StringConfiguration%BitDefinition%BitType)
  39. call json%add(pbit,"BitWeightPerLength",data%Configuration%StringConfiguration%BitDefinition%BitWeightPerLength)
  40. call json%add(pbit,"FloatValve",data%Configuration%StringConfiguration%BitDefinition%FloatValve)
  41. ! call json%add(p,"StringConfigurationCount",dat%Configuration%StringConfiguration%StringConfigurationCount)
  42. ! 3. add new node to parent
  43. call json%add(p,pitems)
  44. call json%add(p,pbit)
  45. call json%add(parent,p)
  46. end subroutine
  47. end module CStringConfiguration