Nodes of different colours represent the following:
Solid arrows point from a parent (sub)module to the submodule which is descended from it. Dashed arrows point from a module being used to the module or program unit using it. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | EquipName | |||
| integer, | intent(in) | :: | ActualZoneNum | |||
| integer, | intent(in) | :: | ControlledZoneNum | |||
| logical, | intent(in) | :: | FirstHVACIteration | |||
| real(kind=r64), | intent(out) | :: | PowerMet | |||
| integer, | intent(inout) | :: | CompIndex | 
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
  SUBROUTINE SimElecBaseBoard (EquipName, ActualZoneNum, ControlledZoneNum, FirstHVACIteration, PowerMet, CompIndex)
          ! SUBROUTINE INFORMATION:
          !       AUTHOR         Richard Liesen
          !       DATE WRITTEN   Nov 2001
          !       MODIFIED       Feb 2010 Daeho Kang for radiant component
          !       RE-ENGINEERED  na
          ! PURPOSE OF THIS SUBROUTINE:
          ! This subroutine simulates the Electric Baseboard units.
          ! METHODOLOGY EMPLOYED:
          ! na
          ! REFERENCES:
          ! Water baseboard module
          ! USE STATEMENTS:
    USE InputProcessor,        ONLY: FindItemInList
    USE General,               ONLY: TrimSigDigits
  IMPLICIT NONE    ! Enforce explicit typing of all variables in this routine
          ! SUBROUTINE ARGUMENT DEFINITIONS:
    CHARACTER(len=*), INTENT(IN) :: EquipName
    INTEGER, INTENT(IN)    :: ActualZoneNum
    INTEGER, INTENT(IN)    :: ControlledZoneNum
    REAL(r64), INTENT(OUT) :: PowerMet
    INTEGER, INTENT(INOUT) :: CompIndex
    LOGICAL, INTENT(IN)    :: FirstHVACIteration
          ! SUBROUTINE PARAMETER DEFINITIONS:
          ! na
          ! INTERFACE BLOCK SPECIFICATIONS
          ! na
          ! DERIVED TYPE DEFINITIONS
          ! na
          ! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
    INTEGER       :: BaseboardNum  ! Index of unit in baseboard array
    LOGICAL,SAVE  :: GetInputFlag = .TRUE. ! One time get input flag
    IF (GetInputFlag) THEN
      CALL GetElectricBaseboardInput
      GetInputFlag=.false.
    END IF
    ! Find the correct Baseboard Equipment
    IF (CompIndex == 0) THEN
      BaseboardNum = FindItemInList(EquipName, ElecBaseboard%EquipName, NumElecBaseboards)
      IF (BaseboardNum == 0) THEN
        CALL ShowFatalError('SimElectricBaseboard: Unit not found='//TRIM(EquipName))
      ENDIF
      CompIndex=BaseboardNum
    ELSE
      BaseboardNum=CompIndex
      IF (BaseboardNum > NumElecBaseboards .or. BaseboardNum < 1) THEN
        CALL ShowFatalError('SimElectricBaseboard:  Invalid CompIndex passed='//  &
                            TRIM(TrimSigDigits(BaseboardNum))// &
                            ', Number of Units='//TRIM(TrimSigDigits(NumElecBaseboards))//  &
                            ', Entered Unit name='//TRIM(EquipName))
      ENDIF
      IF (CheckEquipName(BaseboardNum)) THEN
        IF (EquipName /= ElecBaseboard(BaseboardNum)%EquipName) THEN
          CALL ShowFatalError('SimElectricBaseboard: Invalid CompIndex passed='//  &
                              TRIM(TrimSigDigits(BaseboardNum))// &
                              ', Unit name='//TRIM(EquipName)//', stored Unit Name for that index='//  &
                              TRIM(ElecBaseboard(BaseboardNum)%EquipName))
        ENDIF
      CheckEquipName(BaseboardNum)=.false.
      ENDIF
    ENDIF
    CALL InitElectricBaseboard(BaseboardNum, ControlledZoneNum, FirstHVACIteration)
    SELECT CASE (ElecBaseboard(BaseboardNum)%EquipType)
     CASE (BaseboardRadiator_Electric)  ! 'ZONEHVAC:BASEBOARD:RADIANTCONVECTIVE:ELECTRIC'
           ! Simulate baseboard
           CALL CalcElectricBaseboard(BaseboardNum, ControlledZoneNum)
      CASE DEFAULT
        CALL ShowSevereError('SimElecBaseBoard: Errors in Baseboard='//TRIM(ElecBaseboard(BaseboardNum)%EquipName))
        CALL ShowContinueError('Invalid or unimplemented equipment type='//  &
           cCMO_BBRadiator_Electric)
        CALL ShowFatalError('Preceding condition causes termination.')
    END SELECT
    PowerMet = ElecBaseboard(BaseboardNum)%TotPower
    CALL UpdateElectricBaseboard(BaseboardNum)
    CALL ReportElectricBaseboard(BaseboardNum)
  END SUBROUTINE SimElecBaseBoard