{
  "node": {
    "id": "block:inport",
    "type": "Block",
    "label": "Submodel input boundary",
    "properties": {
      "kind": "studio",
      "example": {
        "title": "Typed input and output of a reusable submodel",
        "text": "The example selects the doubling submodel. The parent supplies a constant 3 through the named input u. Inside the child, gain 2 produces 6 and the named output y returns it to the parent. The parent Result signal is 6 at 0.2 seconds. Selecting the alternate tripling definition for another run produces 9.",
        "url": "https://design.lemonergy.com/cosim.html?example=routing-variant-subsystem",
        "label": "Open Studio example",
        "inputs": [
          {
            "port": "Input",
            "label": "Parent input",
            "value": 3,
            "unit": "1"
          }
        ],
        "checks": [
          {
            "port": "Result",
            "label": "Parent result after the child output boundary",
            "atS": 0.2,
            "value": 6,
            "unit": "1",
            "tolerance": 1e-09
          }
        ]
      },
      "references": [],
      "referenceNote": "Model hierarchy, named interfaces and instance isolation are software contracts verified by the executable example. No external research result or external API parity is claimed.",
      "id": "inport",
      "name": "Submodel input boundary",
      "summary": "Makes one named parent input available inside a submodel without changing its value or timing.",
      "behavior": "The boundary refers to one input in the child definition interface. The compiler resolves it to the signal supplied by the parent instance. Physical quantity, numeric element type and dimensions must agree, including when the declared input is an entire named bus.",
      "ports": [
        {
          "name": "u",
          "direction": "output",
          "unit": "1",
          "description": "The parent-provided scalar is available as an internal child signal.",
          "shape": [],
          "elementType": "real"
        }
      ],
      "parameters": [
        {
          "key": "port",
          "label": "Input interface identifier",
          "unit": "1",
          "default": "u",
          "description": "Stable identifier of an input declared on this submodel definition. Each declared input has exactly one boundary."
        }
      ],
      "equations": [
        "internal u(t) = parent instance input u(t)",
        "example input = 3"
      ],
      "limits": [
        "This block belongs inside a submodel definition, not at the root model scope. Missing, duplicate and undeclared boundary identifiers are rejected.",
        "A bus boundary carries its complete declared bus. It does not define or select individual external bus fields as a field-oriented boundary block would.",
        "The boundary introduces no delay, resampling, cast or unit conversion."
      ],
      "caseIds": [
        "native-inport"
      ],
      "availability": {
        "status": "released",
        "label": "Available in Lemonergy Studio",
        "detail": "The bundled example is available in the production release verified on 28 October 2026. The parameters and examples here are synthetic teaching fixtures, not a characterized cell or a validated operating limit."
      },
      "evidence": [
        "docs/glossary/native-block-verification.json"
      ],
      "sourceRepository": "Lemonergy Studio public contract",
      "sourceRevision": "verification-2026-10-27",
      "type": "inport",
      "implementationId": "inport",
      "url": "https://lemonergy.com/learn/glossary/blocks/inport/",
      "documentationUrl": "https://lemonergy.com/learn/glossary/blocks/inport/",
      "sourceFile": "block-library.json",
      "reviewed": "2026-10-27",
      "releaseEvidence": {
        "environment": "production",
        "status": "verified",
        "revision": "e76cadfc203e15eb41f3478d8b1044a5b851953d",
        "verifiedOn": "2026-10-28",
        "exampleUrls": [
          "https://design.lemonergy.com/cosim.html?example=routing-variant-subsystem"
        ]
      }
    }
  },
  "incoming": [
    {
      "id": "edge:usesBlock/native-inport/0",
      "type": "usesBlock",
      "source": "workflow:native-inport",
      "target": "block:inport",
      "properties": {
        "sourceFile": "wiki-blocks.json",
        "position": 0,
        "name": "Submodel input boundary",
        "type": "inport",
        "role": "The boundary refers to one input in the child definition interface. The compiler resolves it to the signal supplied by the parent instance. Physical quantity, numeric element type and dimensions must agree, including when the declared input is an entire named bus.",
        "settings": [
          "Use the block reference for settings and connections.",
          "Bundled example verified on the production release of 28 October 2026."
        ]
      }
    }
  ],
  "outgoing": [],
  "neighbors": [
    {
      "id": "workflow:native-inport",
      "type": "Workflow",
      "label": "Typed input and output of a reusable submodel",
      "properties": {
        "id": "native-inport",
        "title": "Typed input and output of a reusable submodel",
        "kind": "studio",
        "summary": "Makes one named parent input available inside a submodel without changing its value or timing.",
        "steps": [
          "Review the interface, units and model limits.",
          "Open the Studio example and run its bundled model.",
          "Compare outputs with the numerical checks; change one input and run again."
        ],
        "example": "The example selects the doubling submodel. The parent supplies a constant 3 through the named input u. Inside the child, gain 2 produces 6 and the named output y returns it to the parent. The parent Result signal is 6 at 0.2 seconds. Selecting the alternate tripling definition for another run produces 9.",
        "observe": "Inspect the output channels and checks on the block reference page.",
        "limits": "This block belongs inside a submodel definition, not at the root model scope. Missing, duplicate and undeclared boundary identifiers are rejected. A bus boundary carries its complete declared bus. It does not define or select individual external bus fields as a field-oriented boundary block would. The boundary introduces no delay, resampling, cast or unit conversion.",
        "url": "https://design.lemonergy.com/cosim.html?example=routing-variant-subsystem",
        "label": "Open Studio example",
        "evidence": [
          "docs/glossary/native-block-verification.json"
        ]
      }
    }
  ]
}
