Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | CPVNum | |||
real(kind=r64), | intent(in) | :: | Vref | |||
real(kind=r64), | intent(in) | :: | Height |
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.
REAL(r64) FUNCTION CalcWindPressure(CPVNum,Vref,Height)
! SUBROUTINE INFORMATION:
! AUTHOR Lixing Gu
! DATE WRITTEN Oct. 2005
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Calculates surface wind pressure based on given CP values
! METHODOLOGY EMPLOYED:
!
! REFERENCES:
! COMIS Fundamentals
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! FUNCTION ARGUMENT DEFINITIONS:
INTEGER, intent(in) :: CPVNum ! CP Value number
REAL(r64), intent(in) :: Vref ! Velocity at reference height
REAL(r64), intent(in) :: Height ! Node height for outdoor temperature calculation
! Output is Wind Pressure [Pa]
! FUNCTION PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! FUNCTION LOCAL VARIABLE DECLARATIONS:
INTEGER i,NWind
REAL(r64) RhoOut ! Outdoor air density
REAL(r64) CPV ! CP value at given wind direction
LOGICAL FoundCPV
! CODE ************************************************************
! Calculate outdoor density
RhoOut = PsyRhoAirFnPbTdbW(OutBaroPress,OutDryBulbTempAt(Height),OutHumRat)
NWind = AirflowNetworkSimu%NWind
! Calculate dynamic pressure
FoundCPV = .FALSE.
Do i=2,NWind
If (MultizoneCPArrayData(1)%WindDir(i).GE.WindDir) then
CPV = MultizoneCPValueData(CPVNum)%CPValue(i-1)+(WindDir-MultizoneCPArrayData(1)%WindDir(i-1)) &
*(MultizoneCPValueData(CPVNum)%CPValue(i)-MultizoneCPValueData(CPVNum)%CPValue(i-1)) &
/(MultizoneCPArrayData(1)%WindDir(i)-MultizoneCPArrayData(1)%WindDir(i-1))
FoundCPV = .TRUE.
Exit
end if
end do
if (.NOT. FoundCPV) then
CPV = MultizoneCPValueData(CPVNum)%CPValue(NWind)+(WindDir-MultizoneCPArrayData(1)%WindDir(NWind)) &
*(MultizoneCPValueData(CPVNum)%CPValue(1)-MultizoneCPValueData(CPVNum)%CPValue(NWind)) &
/(MultizoneCPArrayData(1)%WindDir(1)-MultizoneCPArrayData(1)%WindDir(NWind)+360)
end if
CalcWindPressure = CPV*0.5d0*RhoOut*Vref*Vref
RETURN
END FUNCTION CalcWindPressure