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 GetInputEconomicsCurrencyType(ErrorsFound)
! SUBROUTINE INFORMATION:
! AUTHOR Jason Glazer
! DATE WRITTEN August 2008
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Sets the type of currency (U.S. Dollar, Euro, Yen, etc.. )
! This is a "unique" object.
! METHODOLOGY EMPLOYED:
! Uses get input structure similar to other objects
! REFERENCES:
! na
! USE STATEMENTS:
USE DataInterfaces, ONLY : ShowWarningError
USE DataCostEstimate
USE DataIPShortCuts
IMPLICIT NONE
! SUBROUTINE ARGUMENT DEFINITIONS:
LOGICAL, INTENT(INOUT) :: ErrorsFound ! true if errors found during getting input objects.
! SUBROUTINE PARAMETER DEFINITIONS:
CHARACTER(len=*), PARAMETER :: CurrentModuleObject='CurrencyType'
CHARACTER(len=*), PARAMETER :: RoutineName='GetInputEconomicsCurrencyType: '
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: NumCurrencyType
INTEGER :: NumAlphas ! Number of elements in the alpha array
INTEGER :: NumNums ! Number of elements in the numeric array
!CHARACTER(len=MaxNameLength),DIMENSION(5) :: cAlphaArgs !character string data - should be 1
!REAL(r64), DIMENSION(5) :: rNumericArgs !numeric data - should be 0
INTEGER :: IOStat ! IO Status when calling get input subroutine
INTEGER :: i
CALL initializeMonetaryUnit
NumCurrencyType = GetNumObjectsFound(CurrentModuleObject)
selectedMonetaryUnit = 0 ! invalid
IF (NumCurrencyType .EQ. 0) THEN
selectedMonetaryUnit = 1 !USD - U.S. Dollar
ELSEIF (NumCurrencyType .EQ. 1) THEN
CALL GetObjectItem(CurrentModuleObject,1,cAlphaArgs,NumAlphas, &
rNumericArgs,NumNums,IOSTAT, &
AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks, &
AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
! Monetary Unit
DO i = 1, numMonetaryUnit
IF (SameString(cAlphaArgs(1),monetaryUnit(i)%code)) THEN
selectedMonetaryUnit = i
EXIT
END IF
END DO
IF (selectedMonetaryUnit == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//'" invalid data.')
CALL ShowContinueError('... invalid '//trim(cAlphaFieldNames(1))//'.')
ErrorsFound=.true.
ENDIF
ELSEIF (NumCurrencyType .GT. 1) THEN
CALL ShowWarningError(RoutineName//CurrentModuleObject// &
' Only one instance of this object is allowed. USD will be used.')
selectedMonetaryUnit = 1 !USD - U.S. Dollar
ENDIF
END SUBROUTINE GetInputEconomicsCurrencyType