diff --git a/Source/hvac.f90 b/Source/hvac.f90 index 257fdb49e1e..a3e57c05bc8 100644 --- a/Source/hvac.f90 +++ b/Source/hvac.f90 @@ -1875,13 +1875,28 @@ SUBROUTINE DPSTARCALC IF (IPZ==IOPZ) CYCLE IF (CONNECTED_ZONES(IPZ,IOPZ,1)) PSUM_TOT(IPZ) = PSUM_TOT(IPZ) + PSUM(IOPZ,1) ENDDO +ENDDO + +DO IPZ = 1,N_ZONE + PZ => P_ZONE(IPZ) + IF (PZ%N_DUCTNODES==0) CYCLE DO NN = 1,PZ%N_DUCTNODES DN=>DUCTNODE(PZ%NODE_INDEX(NN)) DU=>DUCT(DN%DUCT_INDEX(1)) DPSTAR(IPZ) = DPSTAR(IPZ) - DN%DIR(1) * DU%AREA * DU%VEL(OLD) * DT_HV/PSUM_TOT(IPZ) IF (DU%FIXED) DPSTAR(IPZ) = DPSTAR(IPZ) + DN%DIR(1) * DU%AREA * DU%VEL(NEW) * DT_HV/PSUM_TOT(IPZ) + DO IOPZ = 1, N_ZONE + IF (IPZ==IOPZ) CYCLE + IF (P_ZONE(IOPZ)%N_DUCTNODES==0) CYCLE + IF (CONNECTED_ZONES(IPZ,IOPZ,1)) THEN + IF (P_ZONE(IPOZ)%N_DUCTNODES==0) CYCLE + DPSTAR(IOPZ) = DPSTAR(IOPZ) - DN%DIR(1) * DU%AREA * DU%VEL(OLD) * DT_HV/PSUM_TOT(IPZ) + IF (DU%FIXED) DPSTAR(IOPZ) = DPSTAR(IOPZ) + DN%DIR(1) * DU%AREA * DU%VEL(NEW) * DT_HV/PSUM_TOT(IPZ) + ENDIF + ENDDO ENDDO ENDDO + END SUBROUTINE DPSTARCALC !> \brief Builds the right hand side of the HVAC flow matrix for momentum conservation in a duct