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.
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 GetSizingParams
! SUBROUTINE INFORMATION:
! AUTHOR Fred Buhl
! DATE WRITTEN January 2002
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Obtains input data for the Sizing Parameters object and stores it in
! appropriate data structure.
! METHODOLOGY EMPLOYED:
! Uses InputProcessor "Get" routines to obtain data.
! REFERENCES:
! na
! USE STATEMENTS:
USE InputProcessor, ONLY: GetNumObjectsFound, GetObjectItem, VerifyName
USE DataIPShortCuts
USE General, ONLY: RoundSigDigits
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
! na
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: NumAlphas ! Number of Alphas for each GetObjectItem call
INTEGER :: NumNumbers ! Number of Numbers for each GetObjectItem call
INTEGER :: IOStatus ! Used in GetObjectItem
INTEGER :: NumSizParams
INTEGER :: Temp
cCurrentModuleObject='Sizing:Parameters'
NumSizParams = GetNumObjectsFound(cCurrentModuleObject)
IF (NumSizParams == 1) THEN
CALL GetObjectItem(cCurrentModuleObject,1,cAlphaArgs,NumAlphas,rNumericArgs,NumNumbers,IOStatus, &
AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks, &
AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IF (lNumericFieldBlanks(1) .or. rNumericArgs(1) < 0.0d0) THEN
GlobalHeatSizingFactor = 1.0d0
ELSE
GlobalHeatSizingFactor = rNumericArgs(1)
ENDIF
IF (lNumericFieldBlanks(2) .or. rNumericArgs(2) < 0.0d0) THEN
GlobalCoolSizingFactor = 1.0d0
ELSE
GlobalCoolSizingFactor = rNumericArgs(2)
ENDIF
IF (lNumericFieldBlanks(3) .or. rNumericArgs(3) <= 0.0d0) THEN
NumTimeStepsInAvg=NumOfTimeStepInHour
ELSE
NumTimeStepsInAvg = INT(rNumericArgs(3))
ENDIF
ELSE IF (NumSizParams == 0) THEN
GlobalHeatSizingFactor = 1.0d0
GlobalCoolSizingFactor = 1.0d0
NumTimeStepsInAvg = NumOfTimeStepInHour
ELSE
CALL ShowFatalError(TRIM(cCurrentModuleObject)//': More than 1 occurence of this object; only 1 allowed')
END IF
IF (NumTimeStepsInAvg < NumOfTimeStepInHour) THEN
CALL ShowWarningError(TRIM(cCurrentModuleObject)//': note '//TRIM(cNumericFieldNames(3))//' entered value=['// &
TRIM(RoundSigDigits(NumTimeStepsInAvg))//'] is less than 1 hour (i.e., '//trim(RoundSigDigits(NumOfTimeStepInHour))// &
' timesteps).')
ENDIF
cCurrentModuleObject='OutputControl:Sizing:Style'
Temp = GetNumObjectsFound(cCurrentModuleObject)
IF (Temp == 0) THEN
cAlphaArgs(1)='Comma'
SizingFileColSep = CharComma !comma
ELSEIF (Temp == 1) THEN
CALL GetObjectItem(cCurrentModuleObject,1,cAlphaArgs,NumAlphas,rNumericArgs,NumNumbers,IOStatus, &
AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks, &
AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IF (cAlphaArgs(1) == 'COMMA') THEN
SizingFileColSep = CharComma !comma
cAlphaArgs(1)='Comma'
ELSEIF (cAlphaArgs(1) == 'TAB') THEN
SizingFileColSep = CharTab !tab
cAlphaArgs(1)='Tab'
ELSEIF (cAlphaArgs(1) == 'FIXED' .or. cAlphaArgs(1) == 'SPACE') THEN
SizingFileColSep = CharSpace ! space
cAlphaArgs(1)='Space'
ELSE
SizingFileColSep = CharComma !comma
CALL ShowWarningError(TRIM(cCurrentModuleObject)//': invalid '//TRIM(cAlphaFieldNames(1))//' entered value="'// &
TRIM(cAlphaArgs(1))//'", Commas will be used to separate fields.')
cAlphaArgs(1)='Comma'
ENDIF
Write(OutputFileInits,'(A)') '! <Sizing Output Files>,Style'
WRITE(OutputFileInits,"('Sizing Output Files,',A)") TRIM(cAlphaArgs(1))
ENDIF
RETURN
END SUBROUTINE GetSizingParams