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 InitMoistureBalanceEMPD
! SUBROUTINE INFORMATION:
! Authors: Muthusamy Swami and Lixing Gu
! Date written: August, 1999
! Modified: na
! Re-engineered: na
! PURPOSE OF THIS SUBROUTINE:
! Create dynamic array for surface moisture calculation
! METHODOLOGY EMPLOYED:
!
! USE STATEMENTS:
IMPLICIT NONE
! SUBROUTINE ARGUMENT DEFINITIONS:
! na
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
Integer :: ZoneNum
Integer :: Loop
Integer :: SurfNum
LOGICAL,SAVE :: InitEnvrnFlag = .True.
if (InitEnvrnFlag) then
ALLOCATE(MoistEMPDOld(TotSurfaces))
ALLOCATE(MoistEMPDInt(TotSurfaces))
ALLOCATE(MoistEMPDNew(TotSurfaces))
ALLOCATE(MoistEMPDFlux(TotSurfaces))
Allocate(RhoVapEMPD(TotSurfaces))
Allocate(WSurfEMPD(TotSurfaces))
Allocate(RHEMPD(TotSurfaces))
end if
do SurfNum = 1, TotSurfaces
ZoneNum = Surface(SurfNum)%Zone
IF (.not. Surface(SurfNum)%HeatTransSurf) CYCLE
IF(ZoneAirHumRat(ZoneNum) == 0.0d0)Then
MoistEMPDOld(SurfNum) = 0.0001d0
MoistEMPDInt(SurfNum) = 0.0001d0
MoistEMPDNew(SurfNum) = 0.0001d0
Else
MoistEMPDOld(SurfNum) = ZoneAirHumRat(ZoneNum) ! Surface moisture level initialization
MoistEMPDInt(SurfNum) = ZoneAirHumRat(ZoneNum) ! by assuming initial values be equal to ZoneAirHumRat
MoistEMPDNew(SurfNum) = ZoneAirHumRat(ZoneNum)
End IF
end do
if (.Not. InitEnvrnFlag) Return
!Initialize the report variable
RhoVapEMPD = 0.015d0
WSurfEMPD = 0.015d0
RHEMPD = 0.0d0
MoistEMPDFlux = 0.0d0
Call GetMoistureBalanceEMPDInput
DO Loop=1,TotSurfaces
IF (.not. Surface(Loop)%HeatTransSurf) CYCLE
IF (Surface(Loop)%Class == SurfaceClass_Window) CYCLE
CALL SetupOutputVariable('EMPD Surface Inside Face Water Vapor Density [kg/m3]',&
RhoVapEMPD(Loop),'Zone','State',Surface(Loop)%Name)
CALL SetupOutputVariable('EMPD Surface Inside Face Humidity Ratio [kgWater/kgDryAir]', &
WSurfEMPD(Loop),'Zone','State',Surface(Loop)%Name)
CALL SetupOutputVariable('EMPD Surface Inside Face Relative Humidity [%]', &
RHEMPD(Loop),'Zone','State',Surface(Loop)%Name)
ENDDO
if (InitEnvrnFlag) InitEnvrnFlag = .False.
RETURN
END SUBROUTINE InitMoistureBalanceEMPD