Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | curTariff |
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 checkMinimumMonthlyCharge(curTariff)
! SUBROUTINE INFORMATION:
! AUTHOR Jason Glazer of GARD Analytics, Inc.
! DATE WRITTEN August 2008
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Check if the total is as big as the minimum monthly charge
! METHODOLOGY EMPLOYED:
! REFERENCES:
! na
! USE STATEMENTS:
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER, INTENT(IN) :: curTariff
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: iMonth
INTEGER :: totalVar
INTEGER :: minMonVar
totalVar = tariff(curTariff)%ptTotal
minMonVar = tariff(curTariff)%minMonthChgPt
! if a variable is defined use that
IF (minMonVar .NE. 0) THEN
DO iMonth = 1, MaxNumMonths
IF (econVar(totalVar)%values(iMonth) .LT. econVar(minMonVar)%values(iMonth)) THEN
econVar(totalVar)%values(iMonth) = econVar(minMonVar)%values(iMonth)
END IF
END DO
ELSE !use the constant value
DO iMonth = 1, MaxNumMonths
IF (econVar(totalVar)%values(iMonth) .LT. tariff(curTariff)%minMonthChgVal) THEN
econVar(totalVar)%values(iMonth) = tariff(curTariff)%minMonthChgVal
END IF
END DO
END IF
END SUBROUTINE checkMinimumMonthlyCharge