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 | ||
---|---|---|---|---|---|---|
real(kind=r64) | :: | II | ||||
real(kind=r64) | :: | VV | ||||
real(kind=r64) | :: | IO | ||||
real(kind=r64) | :: | RSER | ||||
real(kind=r64) | :: | AA |
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.
REAL(r64) FUNCTION FV(II,VV,IO,RSER,AA)
! FUNCTION INFORMATION:
! AUTHOR Ø. Ulleberg, IFE Norway for Hydrogems
! DATE WRITTEN March 2001
! MODIFIED D. Bradley for EnergyPlus
! RE-ENGINEERED
! PURPOSE OF THIS FUNCTION:
! partial differential of V=I(I,V)
! METHODOLOGY EMPLOYED:
! the function is based on the current voltage characteristic of the PV module and is of
! the form dF(I,V)/dV=0
! REFERENCES:
! na
! USE STATEMENTS:
USE General, ONLY:RoundSigDigits
USE DataInterfaces, ONLY:ShowFatalError, ShowSevereError, ShowContinueError
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! FUNCTION ARGUMENT DEFINITIONS:
REAL(r64) II,VV,IO,RSER,AA
! FUNCTION PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! FUNCTION LOCAL VARIABLE DECLARATIONS:
! na
IF (((VV+II*RSER)/AA) < 700.0D0) THEN
FV = IO*EXP((VV+II*RSER)/AA)/AA+(1.0d0/ShuntResistance)
ELSE
Call ShowSevereError('EquivalentOneDiode Photovoltaic model failed to find maximum power point')
Call ShowContinueError('Numerical solver failed trying to take exponential of too large a number')
Call ShowContinueError('Check input data in '//cPVEquiv1DiodePerfObjectName)
Call ShowContinueError('VV (voltage) = '//Trim(RoundSigDigits(VV, 5)) )
Call ShowContinueError('II (current) = '//Trim(RoundSigDigits(II, 5)) )
Call ShowFatalError('FI: EnergyPlus terminates because of numerical problem in EquivalentOne-Diode PV model')
ENDIF
RETURN
END FUNCTION FV