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 | ||
---|---|---|---|---|---|---|
logical, | intent(inout) | :: | ErrorsFound |
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.
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 GetOSCMData(ErrorsFound)
! SUBROUTINE INFORMATION:
! AUTHOR Brent Griffith
! DATE WRITTEN November 2004
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine gets the OtherSideConditionsModel data.
! METHODOLOGY EMPLOYED:
! na
! REFERENCES:
! derived from GetOSCData subroutine by Linda Lawrie
! OtherSideConditionsModel,
! \memo This object sets up modifying the other side conditions for a surface from other model results.
! A1, \field OtherSideConditionsModel Name
! \required-field
! \reference OSCMNames
! \reference OutFaceEnvNames
! A2; \field Type of Model to determine Boundary Conditions
! \type choice
! \key Transpired Collector
! \key Vented PV Cavity
! \key Hybrid PV Transpired Collector
! USE STATEMENTS:
USE DataIPShortCuts
USE InputProcessor, ONLY: GetNumObjectsFound, GetObjectItem, FindItemInList, VerifyName
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
LOGICAL, INTENT(INOUT) :: ErrorsFound
! SUBROUTINE PARAMETER DEFINITIONS:
CHARACTER(len=*), PARAMETER :: OSCMFormat1="('! <Other Side Conditions Model>,Name,Class')"
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER NumAlphas
INTEGER NumProps
INTEGER Loop
INTEGER IOSTAT
INTEGER OSCMNum
LOGICAL ErrorInName
LOGICAL IsBlank
cCurrentModuleObject='SurfaceProperty:OtherSideConditionsModel'
TotOSCM=GetNumObjectsFound(cCurrentModuleObject)
ALLOCATE(OSCM(TotOSCM))
! OSCM is already initialized in derived type defn.
OSCMNum=0
DO Loop=1,TotOSCM
CALL GetObjectItem(cCurrentModuleObject,Loop,cAlphaArgs,NumAlphas, &
rNumericArgs,NumProps,IOSTAT)
ErrorInName=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),OSCM%Name,OSCMNum,ErrorInName,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (ErrorInName) THEN
ErrorsFound=.true.
CYCLE
ENDIF
OSCMNum=OSCMNum+1
OSCM(OSCMNum)%Name = cAlphaArgs(1)
! Note no validation of the below at this time:
OSCM(OSCMNum)%Class = cAlphaArgs(2)
! setup output vars for modeled coefficients
CALL SetupOutputVariable('Surface Other Side Conditions Modeled Convection Air Temperature [C]',OSCM(OSCMNum)%TConv, &
'System','Average',OSCM(OSCMNum)%Name)
CALL SetupOutputVariable('Surface Other Side Conditions Modeled Convection Heat Transfer Coefficient [W/m2-K]', &
OSCM(OSCMNum)%HConv, &
'System','Average',OSCM(OSCMNum)%Name)
CALL SetupOutputVariable('Surface Other Side Conditions Modeled Radiation Temperature [C]',OSCM(OSCMNum)%TRad, &
'System','Average',OSCM(OSCMNum)%Name)
CALL SetupOutputVariable('Surface Other Side Conditions Modeled Radiation Heat Transfer Coefficient [W/m2-K]', &
OSCM(OSCMNum)%HRad, &
'System','Average',OSCM(OSCMNum)%Name)
IF (AnyEnergyManagementSystemInModel) THEN
CALL SetupEMSActuator('Other Side Boundary Conditions', OSCM(OSCMNum)%Name, &
'Convection Bulk Air Temperature', '[C]', &
OSCM(OSCMNum)%EMSOverrideOnTConv, &
OSCM(OSCMNum)%EMSOverrideTConvValue)
CALL SetupEMSActuator('Other Side Boundary Conditions', OSCM(OSCMNum)%Name, &
'Convection Heat Transfer Coefficient', '[W/m2-K]', &
OSCM(OSCMNum)%EMSOverrideOnHConv, &
OSCM(OSCMNum)%EMSOverrideHConvValue)
CALL SetupEMSActuator('Other Side Boundary Conditions', OSCM(OSCMNum)%Name, &
'Radiation Effective Temperature', '[C]', &
OSCM(OSCMNum)%EMSOverrideOnTRad, &
OSCM(OSCMNum)%EMSOverrideTRadValue)
CALL SetupEMSActuator('Other Side Boundary Conditions', OSCM(OSCMNum)%Name, &
'Radiation Linear Heat Transfer Coefficient', '[W/m2-K]', &
OSCM(OSCMNum)%EMSOverrideOnHrad, &
OSCM(OSCMNum)%EMSOverrideHradValue)
ENDIF
ENDDO
DO Loop=1,TotOSCM
IF (Loop == 1) THEN
WRITE(OutputFileInits,OSCMFormat1)
ENDIF
WRITE(OutputFileInits,'(A)') 'Other Side Conditions Model,'//TRIM(OSCM(Loop)%Name)//','//TRIM(OSCM(Loop)%Class)
ENDDO
RETURN
END SUBROUTINE GetOSCMData