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 GetInputLifeCycleCostUseAdjustment
! SUBROUTINE INFORMATION:
! AUTHOR Jason Glazer of GARD Analytics, Inc.
! DATE WRITTEN May 2010
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Read the input file for "LifeCycleCost:UseAdjustment" object.
! METHODOLOGY EMPLOYED:
! REFERENCES:
! na
! USE STATEMENTS:
! na
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 :: iInObj ! loop index variable for reading in objects
INTEGER :: jFld
INTEGER :: jYear
INTEGER :: NumAlphas ! Number of elements in the alpha array
INTEGER :: NumNums ! Number of elements in the numeric array
CHARACTER(len=MaxNameLength),DIMENSION(100) :: AlphaArray !character string data
REAL(r64), DIMENSION(100) :: NumArray !numeric data
INTEGER :: IOStat ! IO Status when calling get input subroutine
CHARACTER(len=MaxNameLength) :: CurrentModuleObject ! for ease in renaming.
INTEGER :: numFldsToUse
IF (.NOT. LCCparamPresent) RETURN
CurrentModuleObject = 'LifeCycleCost:UseAdjustment'
numUseAdjustment = GetNumObjectsFound(CurrentModuleObject)
ALLOCATE(UseAdjustment(numUseAdjustment))
DO iInObj = 1 , numUseAdjustment
ALLOCATE(UseAdjustment(iInObj)%Adjustment(lengthStudyYears))
END DO
IF (numUseAdjustment .GT. 0) THEN
DO iInObj = 1 , numUseAdjustment
CALL GetObjectItem(CurrentModuleObject,iInObj,AlphaArray,NumAlphas,NumArray,NumNums,IOSTAT, &
AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks, &
AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
!check to make sure none of the values are another life cycle cost object
DO jFld = 1, NumAlphas
IF (INDEX(MakeUpperCase(AlphaArray(jFld)),'LifeCycleCost:') .GT. 0) THEN
CALL ShowWarningError('In '//TRIM(CurrentModuleObject)//' named ' // TRIM(AlphaArray(1)) // &
' a field was found containing LifeCycleCost: which may indicate a missing comma.')
END IF
END DO
! start to extract values from input array into appropriate fields
! A1, \field Name
! \required-field
! \type alpha
UseAdjustment(iInObj)%Name = AlphaArray(1)
! A2, \field Resource
! \required-field
! \type choice
! \key Electricity
! \key NaturalGas
! \key Steam
! \key Gasoline
! \key Diesel
! \key Coal
! \key FuelOil#1
! \key FuelOil#2
! \key Propane
! \key Water
! \key OtherFuel1
! \key OtherFuel2
UseAdjustment(iInObj)%resource = AssignResourceTypeNum(AlphaArray(2)) !use function from DataGlobalConstants
IF (NumAlphas .GT. 2) THEN
CALL ShowWarningError('In '//TRIM(CurrentModuleObject)//' contains more alpha fields than expected.')
END IF
! N1, \field Year 1 Multiplier
! \type real
! \begin-extensible
! Set the array to default to 1.0
DO jYear = 1,lengthStudyYears
UseAdjustment(iInObj)%Adjustment(jYear) = 1.0d0
END DO
numFldsToUse = MIN(NumNums,lengthStudyYears)
DO jYear = 1,numFldsToUse
UseAdjustment(iInObj)%Adjustment(jYear) = numArray(jYear)
END DO
END DO
END IF
END SUBROUTINE GetInputLifeCycleCostUseAdjustment