From 4ca61a542309f22a161c040896a503609c8e4b0d Mon Sep 17 00:00:00 2001 From: mcgratta Date: Tue, 10 Mar 2026 15:52:56 -0400 Subject: [PATCH] FDS Source: Clean up USE statements, add PRIVATE to modules --- Source/ccib.f90 | 3 +- Source/fire.f90 | 7 +-- Source/geom.f90 | 3 +- Source/hvac.f90 | 152 +++++++++++++++++++++++++++++++++++------------- Source/main.f90 | 4 +- Source/turb.f90 | 2 +- 6 files changed, 119 insertions(+), 52 deletions(-) diff --git a/Source/ccib.f90 b/Source/ccib.f90 index a28a83b38a8..be466134231 100644 --- a/Source/ccib.f90 +++ b/Source/ccib.f90 @@ -15,6 +15,7 @@ MODULE CC_SCALARS USE MATH_FUNCTIONS, ONLY: GET_SCALAR_FACE_VALUE IMPLICIT NONE (TYPE,EXTERNAL) +PRIVATE ! Debug Flags: LOGICAL, PARAMETER :: DEBUG_CC_INTERPOLATION=.FALSE. ! IBM interpolation and forcing scheme. @@ -96,8 +97,6 @@ MODULE CC_SCALARS ! Baroclininc torque linking variables. REAL(EB), SAVE, ALLOCATABLE, DIMENSION(:) :: F_LINK,A_LINK -PRIVATE - PUBLIC :: ADD_CUTCELL_D_PBAR_DT, ADD_LINKEDCELL_D_PBAR_DT,ADD_CUTCELL_PSUM,ADD_LINKEDCELL_PSUM,& ADD_INPLACE_NNZ_H_WHLDOM,CALL_FOR_GLMAT,CALL_FROM_GLMAT_SETUP,& CCCOMPUTE_RADIATION,CC_DIVERGENCE_PART_1,CC_VEL_FACE_TO_SOLID_NODE,CC_BAROCLINIC_CORRECTION,& diff --git a/Source/fire.f90 b/Source/fire.f90 index bac4f1bc540..9e8477fa49a 100644 --- a/Source/fire.f90 +++ b/Source/fire.f90 @@ -12,18 +12,14 @@ MODULE FIRE #endif IMPLICIT NONE (TYPE,EXTERNAL) - - PRIVATE REAL(EB), ALLOCATABLE, DIMENSION(:) :: DZ_F0 REAL(EB) :: RRTMP0,MOLPCM3,T_CHEM_ODE, T_CHEM_COMM - - LOGICAL :: COMBUSTION_INIT=.FALSE. -!INTEGER :: I0,J0,K0, NM0 ! Variables needed for chemistry load distribution + REAL(EB), ALLOCATABLE, DIMENSION(:,:) :: REALS_TO_SEND_ARRAY, REALS_TO_RECV_ARRAY, RESULTS_TO_SEND_ARRAY, & RESULTS_TO_RECV_ARRAY INTEGER, ALLOCATABLE, DIMENSION(:) :: NCELLS_TO_SEND_ARRAY, NCELLS_TO_RECV_ARRAY, SEND_DISPS, REVC_DISPS, & @@ -32,7 +28,6 @@ MODULE FIRE INTEGER :: NVAR_TO_SEND INTEGER :: NVAR_TO_RECEIVE - PUBLIC COMBUSTION_LOAD_BALANCED,COMBUSTION_BC,CONDENSATION_EVAPORATION,GET_FLAME_TEMPERATURE CONTAINS diff --git a/Source/geom.f90 b/Source/geom.f90 index 66c7c892454..ef5b7996546 100644 --- a/Source/geom.f90 +++ b/Source/geom.f90 @@ -15,6 +15,8 @@ MODULE COMPLEX_GEOMETRY #endif /* WITH_MKL */ IMPLICIT NONE (TYPE,EXTERNAL) +PRIVATE + CHARACTER(2*MESSAGE_LENGTH) :: MESSAGE !! --------------------------------------------------------------------------------- @@ -311,7 +313,6 @@ MODULE COMPLEX_GEOMETRY ! End Variable declaration for CC_IBM. ! --------------------------------------------------------------------------------- -PRIVATE PUBLIC :: BLOCK_CC_SOLID_EXTWALLCELLS,GEOFCT,CALL_FOR_GLMAT,CALL_FROM_GLMAT_SETUP,CCGUARD,CC_MATVEC_DEFINED,GEOMEPS,& DELTA_INT,DELTA_VERT,DEBUG_SET_CUTCELLS,DEBUG_WAIT,DIST_THRES,& GET_CARTCELL_CUTCELLS_TIME_INDEX,GET_CFACE_INDEX,GETU,& diff --git a/Source/hvac.f90 b/Source/hvac.f90 index 6bf7ba5b545..62fbc016af3 100644 --- a/Source/hvac.f90 +++ b/Source/hvac.f90 @@ -7,7 +7,6 @@ MODULE HVAC_ROUTINES USE PRECISION_PARAMETERS -USE GLOBAL_CONSTANTS USE MESH_POINTERS USE DEVICE_VARIABLES USE CONTROL_VARIABLES @@ -15,7 +14,6 @@ MODULE HVAC_ROUTINES USE MEMORY_FUNCTIONS, ONLY: ChkMemErr IMPLICIT NONE (TYPE,EXTERNAL) - PRIVATE REAL(EB) :: DT_HV !< Size of subtimestep used in HVAC solver @@ -74,6 +72,10 @@ MODULE HVAC_ROUTINES SUBROUTINE READ_HVAC USE MISC_FUNCTIONS, ONLY: SEARCH_CONTROLLER,GET_RAMP_INDEX +USE GLOBAL_CONSTANTS, ONLY: LU_INPUT,INPUT_FILE_LINE_NUMBER,STOP_STATUS,SETUP_STOP,HVAC_DEBUG,N_DUCTS,N_DUCTNODES,& + N_FILTERS,N_FANS,N_AIRCOILS,N_ZONE,N_SURF,HVAC_SOLVE,DUCT_NE,DUCT_DR,DUCTNODE_NE,DUCTNODE_DR,& + RHOA,TMPA,N_TRACKED_SPECIES,T_BEGIN,TANH_RAMP,TSQR_RAMP,HVAC_MASS_TRANSPORT,XS_MIN,YS_MIN,ZS_MIN,& + TMPM,NODE_Z_MIN,NODE_Z_MAX,T_USED,TAU_DEFAULT,HVAC_SOLVE,N_FANS,N_AIRCOILS INTEGER , PARAMETER :: MAX_DUCTS = 20 !< Maximum number of ducts connected to a node INTEGER :: IOS !< Used for returning the status of a READ statement INTEGER :: IZERO !< Used for returning the status of an ALLOCATE statement @@ -831,6 +833,9 @@ END SUBROUTINE READ_HVAC SUBROUTINE PROC_HVAC USE PHYSICAL_FUNCTIONS, ONLY: GET_ENTHALPY +USE GLOBAL_CONSTANTS, ONLY: N_TRACKED_SPECIES,N_DUCTNODES,N_DUCTS,HVAC_SOLVE,N_FANS,N_AIRCOILS,N_LAGRANGIAN_CLASSES,RSUM0,& + TMPA,RHOA,P_INF,NMESHES,PROCESS,MY_RANK,HVAC_SURF_INDEX,HVAC_BOUNDARY,PYROLYSIS_NONE,N_MPI_PROCESSES,& + STOP_STATUS,N_FILTERS,T_USED USE MPI_F08 INTEGER :: N,ND,ND2,NM,NN,NF,NV,IERR,NG,FI(3) REAL(EB) :: TNOW !< Current CPU time (s) used in computing length of time spent in HVAC routines. @@ -1221,7 +1226,10 @@ END SUBROUTINE PROC_HVAC !< \brief Finds all connected ducts and nodes and hence number of ductruns + SUBROUTINE CONNECTION_CHECK + +USE GLOBAL_CONSTANTS, ONLY: N_DUCTNODES,N_CONNECTIVITY_INDICES,N_DUCTS INTEGER :: NN,NN3,ND LOGICAL :: NODE_CHECKED(N_DUCTNODES),NODE_CONNECTED(N_DUCTNODES) TYPE(DUCT_TYPE), POINTER :: DU @@ -1298,8 +1306,11 @@ END SUBROUTINE CONNECTION_CHECK !> \brief Initializes duct node properties for non-leakage ducts SUBROUTINE INIT_DUCT_NODE + USE PHYSICAL_FUNCTIONS, ONLY: GET_ENTHALPY USE MATH_FUNCTIONS, ONLY: EVALUATE_RAMP +USE GLOBAL_CONSTANTS, ONLY: N_TRACKED_SPECIES,N_DUCTNODES,STRATIFICATION,TMPA,I_RAMP_TMP0_Z,I_RAMP_P0_Z,RSUM0,P_INF,RHOA,N_INIT,& + T_USED REAL(EB) :: ZZ_GET(1:N_TRACKED_SPECIES) !< Species mass fraction array. REAL(EB) :: VF(1:N_TRACKED_SPECIES) !< Species volunme fraction array. REAL(EB) :: TNOW !< Current CPU time (s) used in computing length of time spent in HVAC routines. @@ -1368,6 +1379,9 @@ END SUBROUTINE INIT_DUCT_NODE !> \param FIRST_PASS Flag for the first call to the HVAC solver during a timestep, i.e. the first pressure iteration. SUBROUTINE HVAC_CALC(T,DT,FIRST_PASS) + +USE GLOBAL_CONSTANTS, ONLY: N_ZONE,N_DUCTS,CORRECTOR,OLD,NEW,N_DUCTNODES,HVAC_MASS_TRANSPORT,PREVIOUS,GUESS,HVAC_QFAN,P_INF,& + N_NETWORKS,N_AIRCOILS,T_USED INTEGER :: NNE,NN,ND REAL(EB), INTENT(IN) :: T,DT REAL(EB) :: TNOW !< Current CPU time (s) used in computing length of time spent in HVAC routines. @@ -1527,7 +1541,9 @@ END SUBROUTINE HVAC_CALC !> \param NNE Index indicating which HVAC network is being solved SUBROUTINE MATRIX_SOLVE(NNE) -USE MATH_FUNCTIONS,ONLY : GAUSSJ + +USE MATH_FUNCTIONS, ONLY: GAUSSJ +USE GLOBAL_CONSTANTS, ONLY: NEW INTEGER :: NNE,IERR,ND,NN REAL(EB), ALLOCATABLE, DIMENSION(:,:) :: LHS_GAUSSJ REAL(EB), ALLOCATABLE, DIMENSION(:) :: RHS_GAUSSJ @@ -1568,6 +1584,7 @@ END SUBROUTINE MATRIX_SOLVE SUBROUTINE HVAC_UPDATE(NNE,DT) USE PHYSICAL_FUNCTIONS, ONLY : GET_SPECIFIC_GAS_CONSTANT,GET_ENTHALPY,GET_TEMPERATURE +USE GLOBAL_CONSTANTS, ONLY: N_DUCTS,N_DUCTNODES,N_DUCTRUNS,N_TRACKED_SPECIES,HVAC_MASS_TRANSPORT,I_MAX_TEMP,CPBAR_Z,P_INF,NEW REAL(EB),INTENT(IN) :: DT INTEGER, INTENT(IN) :: NNE REAL(EB) :: CPTSUM,DU_DX,ETOT,MFLOW,MSUM,MTOT,TGUESS,VFLOW,ZZ_GET(1:N_TRACKED_SPECIES),& @@ -1902,7 +1919,7 @@ END SUBROUTINE HVAC_UPDATE !> \param NETWORK_INDEX Index indicating which HVAC network is being solved SUBROUTINE RHSNODE(NETWORK_INDEX) -USE GLOBAL_CONSTANTS +USE GLOBAL_CONSTANTS, ONLY: DUCTNODE_NE INTEGER, INTENT(IN)::NETWORK_INDEX INTEGER :: NN,ND, ARRAYLOC TYPE(NETWORK_TYPE), POINTER::NE @@ -1929,7 +1946,8 @@ END SUBROUTINE RHSNODE !> \param NETWORK_INDEX Index indicating which HVAC network is being solved SUBROUTINE LHSNODE(NETWORK_INDEX) -USE GLOBAL_CONSTANTS + +USE GLOBAL_CONSTANTS, ONLY: DUCTNODE_NE,DUCT_NE INTEGER, INTENT(IN)::NETWORK_INDEX INTEGER :: NN,ND, ARRAYLOC1,ARRAYLOC2 TYPE(NETWORK_TYPE), POINTER::NE @@ -1955,7 +1973,7 @@ END SUBROUTINE LHSNODE SUBROUTINE DPSTARCALC -USE GLOBAL_CONSTANTS +USE GLOBAL_CONSTANTS, ONLY: N_ZONE,PSUM,CONNECTED_ZONES,OLD,NEW INTEGER :: NN,IPZ,IOPZ TYPE(DUCT_TYPE), POINTER::DU TYPE(DUCTNODE_TYPE), POINTER::DN @@ -2001,7 +2019,7 @@ END SUBROUTINE DPSTARCALC SUBROUTINE RHSDUCT(NETWORK_INDEX) -USE GLOBAL_CONSTANTS +USE GLOBAL_CONSTANTS, ONLY: DUCT_NE,HVAC_LOCAL_PRESSURE,OLD,GAMMA,N_ZONE,STRATIFICATION,GVEC,PREVIOUS,GUESS INTEGER, INTENT(IN)::NETWORK_INDEX INTEGER :: ND, ARRAYLOC,IPZ REAL(EB) :: HEAD !< DUCT pressure head (Pa) @@ -2066,13 +2084,14 @@ END SUBROUTINE RHSDUCT !> \param NETWORK_INDEX Index indicating which HVAC network is being solved SUBROUTINE LHSDUCT(NETWORK_INDEX) -USE GLOBAL_CONSTANTS -INTEGER, INTENT(IN)::NETWORK_INDEX + +USE GLOBAL_CONSTANTS, ONLY: DUCT_NE,PREVIOUS,GUESS,DUCTNODE_NE,HVAC_LOCAL_PRESSURE,GAMMA +INTEGER, INTENT(IN) :: NETWORK_INDEX INTEGER :: NN,ND, ARRAYLOC1,ARRAYLOC2 -TYPE(NETWORK_TYPE), POINTER::NE -TYPE(DUCT_TYPE), POINTER::DU,DU2 -TYPE(DUCTNODE_TYPE), POINTER::DN,DN2 -TYPE(P_ZONE_TYPE), POINTER::PZ +TYPE(NETWORK_TYPE), POINTER :: NE +TYPE(DUCT_TYPE), POINTER :: DU,DU2 +TYPE(DUCTNODE_TYPE), POINTER :: DN,DN2 +TYPE(P_ZONE_TYPE), POINTER :: PZ NE => NETWORK(NETWORK_INDEX) @@ -2159,7 +2178,9 @@ END SUBROUTINE LHSDUCT !> \param ND Index indicating duct where fan is located SUBROUTINE UPDATE_FAN(T,ND) -USE MATH_FUNCTIONS, ONLY : EVALUATE_RAMP + +USE MATH_FUNCTIONS, ONLY: EVALUATE_RAMP +USE GLOBAL_CONSTANTS, ONLY: PREVIOUS,OLD,NEW INTEGER :: FAN_ITER,DR_INDEX,DR_NF,DR_DU INTEGER, INTENT(IN) :: ND REAL(EB), INTENT(IN) :: T @@ -2274,6 +2295,7 @@ SUBROUTINE HVAC_BC_IN(NM) USE PHYSICAL_FUNCTIONS, ONLY: GET_ENTHALPY USE COMPLEX_GEOMETRY, ONLY: CC_FGSC, CC_SOLID +USE GLOBAL_CONSTANTS, ONLY: N_TRACKED_SPECIES,PREDICTOR,NULL_BOUNDARY,T_USED INTEGER, INTENT(IN) :: NM INTEGER :: II,JJ,KK,IW,IOR,IZ1,IZ2,ICF INTEGER, POINTER :: NODE_INDEX,VENT_INDEX @@ -2344,6 +2366,8 @@ SUBROUTINE HVAC_BC_IN(NM) SUBROUTINE INITIALIZE_HVAC +USE GLOBAL_CONSTANTS, ONLY: CC_IBM,HVAC_LOCAL_PRESSURE,P_INF,N_DUCTS + IF (CELL(CELL_INDEX(BC%IIG,BC%JJG,BC%KKG))%SOLID) RETURN IF (CC_IBM .AND. WALL_FLAG .AND. VENT_INDEX > 0) THEN IF (FCVAR(BC%IIG,BC%JJG,BC%KKG,CC_FGSC,ABS(VENTS(VENT_INDEX)%IOR)) == CC_SOLID) RETURN @@ -2351,7 +2375,6 @@ SUBROUTINE INITIALIZE_HVAC ZONE_LEAK_IF: IF (ALL(SF%LEAK_PATH < 0)) THEN - IF (WALL_FLAG) THEN IF (VENT_INDEX == 0) RETURN IF (VENTS(VENT_INDEX)%NODE_INDEX < 0) RETURN @@ -2510,12 +2533,14 @@ END SUBROUTINE INITIALIZE_HVAC END SUBROUTINE HVAC_BC_IN + !> \brief Determines what ducts are "fixed"; i.e. they have been given fixed volume or mass flow (including fixed volume fan) -!> !> \param T Current time (s) SUBROUTINE DETERMINE_FIXED_ELEMENTS(T,CHANGE) + USE MATH_FUNCTIONS,ONLY:EVALUATE_RAMP +USE GLOBAL_CONSTANTS, ONLY: N_DUCTS,NEW,N_DUCTNODES INTEGER:: NN,ND, COUNTER REAL(EB), INTENT(IN):: T LOGICAL, INTENT(INOUT) :: CHANGE @@ -2634,6 +2659,8 @@ END SUBROUTINE DETERMINE_FIXED_ELEMENTS !> \param T Current time (s) SUBROUTINE FIND_NETWORKS(CHANGE,T) + +USE GLOBAL_CONSTANTS, ONLY: N_DUCTS,N_DUCTNODES,N_ZONE,CONNECTED_ZONES,N_NETWORKS,DUCT_NE,DUCTNODE_NE INTEGER:: NZ,NN,ND,DUCT_COUNTER(N_DUCTS),NODE_COUNTER(N_DUCTNODES),COUNTER,COUNTER2,ZONE_COUNTER(N_ZONE),& CONNECTED_ZONES2(0:N_ZONE,0:N_ZONE),NETWORK_DCOUNTER(N_DUCTS),NETWORK_NCOUNTER(N_DUCTS),RENUMBER(N_DUCTNODES+N_ZONE) LOGICAL, INTENT(OUT) :: CHANGE @@ -2770,6 +2797,8 @@ END SUBROUTINE FIND_NETWORKS !> \brief For each HVAC network the routine defines which ducts and nodes belowng to which element of the HVAC matrix SUBROUTINE SETUP_SOLUTION_POINTERS + +USE GLOBAL_CONSTANTS, ONLY: N_NETWORKS INTEGER:: NNE,NN,ND,COUNTER TYPE(DUCT_TYPE), POINTER :: DU TYPE(DUCTNODE_TYPE), POINTER :: DN @@ -2802,8 +2831,10 @@ END SUBROUTINE SETUP_SOLUTION_POINTERS !> \param NNE Index indicating which HVAC network is being solved SUBROUTINE UPDATE_LOSS(T,DT,NNE) -USE PHYSICAL_FUNCTIONS,ONLY:GET_VISCOSITY -USE MATH_FUNCTIONS,ONLY:EVALUATE_RAMP + +USE PHYSICAL_FUNCTIONS, ONLY: GET_VISCOSITY +USE MATH_FUNCTIONS, ONLY: EVALUATE_RAMP +USE GLOBAL_CONSTANTS, ONLY: N_TRACKED_SPECIES,PREVIOUS REAL(EB) :: FRICTION_FACTOR,LOSS_SUM,ZZ_GET(1:N_TRACKED_SPECIES),VISCOSITY,AREA,VFLOW INTEGER, INTENT(IN) :: NNE REAL(EB), INTENT(IN) :: T,DT @@ -2955,6 +2986,8 @@ END FUNCTION COMPUTE_FRICTION_FACTOR !> \param NNE Index indicating which HVAC network is being solved SUBROUTINE SET_GUESS(NNE,T) + +USE GLOBAL_CONSTANTS, ONLY: GUESS,PREVIOUS,NEW INTEGER, INTENT(IN) :: NNE REAL(EB), INTENT(IN):: T INTEGER :: ND @@ -2990,6 +3023,7 @@ END SUBROUTINE SET_GUESS SUBROUTINE SET_DONOR(NNE) +USE GLOBAL_CONSTANTS, ONLY: PREVIOUS,NEW INTEGER :: ND,NN INTEGER, INTENT(IN) :: NNE REAL(EB) :: RHOLAST,TMPLAST,FVAL,OMFVAL,ITERFRAC @@ -3049,6 +3083,8 @@ END SUBROUTINE SET_DONOR !> \param NNE Index indicating which HVAC network is being solved SUBROUTINE CONVERGENCE_CHECK(NNE) + +USE GLOBAL_CONSTANTS, ONLY: PREVIOUS,NEW INTEGER, INTENT(IN) :: NNE INTEGER :: NN, ND, COUNT LOGICAL :: CONVERGED @@ -3117,6 +3153,8 @@ SUBROUTINE COLLAPSE_HVAC_BC(T) ! Takes the MPI gathered mesh array of HVAC boundary conditions and updates the DUCTNODE boundary condition values. USE PHYSICAL_FUNCTIONS, ONLY : GET_SPECIFIC_GAS_CONSTANT,GET_ENTHALPY,GET_TEMPERATURE USE MATH_FUNCTIONS, ONLY : EVALUATE_RAMP +USE GLOBAL_CONSTANTS, ONLY: N_TRACKED_SPECIES,N_DUCTNODES,CONNECTED_ZONES,STRATIFICATION,TMPA,I_RAMP_TMP0_Z,I_RAMP_P0_Z,& + RSUM0,RHOA,P_INF,T_BEGIN,HVAC_PRES_RELAX,N_DUCTS,T_USED REAL(EB), INTENT(IN) :: T REAL(EB) :: TNOW !< Current CPU time (s) used in computing length of time spent in HVAC routines. INTEGER:: NN,NS,ND @@ -3235,6 +3273,8 @@ END SUBROUTINE COLLAPSE_HVAC_BC !> \brief Sets current iteration values for duct nodes connected to a vent to the bondary condition value SUBROUTINE SET_INIT_HVAC + +USE GLOBAL_CONSTANTS, ONLY: N_DUCTNODES,N_DUCTS,HVAC_MASS_TRANSPORT_CELL_L,N_TRACKED_SPECIES,RHOA,TMPA,N_ZONE,T_USED REAL(EB) :: TNOW !< Current CPU time (s) used in computing length of time spent in HVAC routines. REAL(EB) :: XYZ1(3), XYZ2(3) INTEGER:: ND,NN,NW,NC @@ -3315,8 +3355,10 @@ END SUBROUTINE SET_INIT_HVAC !> \brief Initializes cell densities, temperatures, specific heats and species for discretized ducts SUBROUTINE SET_INIT_HVAC_MASS_TRANSPORT + USE MATH_FUNCTIONS, ONLY: EVALUATE_RAMP USE PHYSICAL_FUNCTIONS, ONLY: GET_ENTHALPY,GET_SPECIFIC_GAS_CONSTANT +USE GLOBAL_CONSTANTS, ONLY: N_TRACKED_SPECIES,N_DUCTS REAL(EB) :: P1,P2,T1,T2,ZZ1(1:N_TRACKED_SPECIES),ZZ2(1:N_TRACKED_SPECIES),FAC,RSUM INTEGER :: ND,NC REAL(EB) :: ZZ_GET(1:N_TRACKED_SPECIES),HGAS @@ -3360,6 +3402,7 @@ END SUBROUTINE SET_INIT_HVAC_MASS_TRANSPORT SUBROUTINE LEAKAGE_HVAC USE PHYSICAL_FUNCTIONS, ONLY: GET_ENTHALPY +USE GLOBAL_CONSTANTS, ONLY: N_TRACKED_SPECIES,N_ZONE,N_DUCTS,N_DUCTNODES,RHOA,TMPA,RSUM0,T_USED REAL(EB) :: ZZ_GET(1:N_TRACKED_SPECIES),HGAS,TNOW INTEGER :: I_DUCT,I_DUCTNODE,NZ1,NZ2 TYPE (DUCTNODE_TYPE), POINTER:: DN1,DN2 @@ -3443,8 +3486,9 @@ END SUBROUTINE LEAKAGE_HVAC !> \param NODE_INDEX Index of a node containing a filter SUBROUTINE FILTER_UPDATE(DT,NODE_INDEX) -!Updates filter loss and loading solution + USE MATH_FUNCTIONS,ONLY:EVALUATE_RAMP +USE GLOBAL_CONSTANTS, ONLY: PREVIOUS,NEW INTEGER,INTENT(IN)::NODE_INDEX REAL(EB), INTENT(IN) :: DT REAL(EB) :: TOTAL_LOADING @@ -3487,6 +3531,8 @@ END SUBROUTINE FILTER_UPDATE !> \param T Current time (s) SUBROUTINE COIL_UPDATE(T) + +USE GLOBAL_CONSTANTS, ONLY: N_DUCTS,NEW REAL(EB), INTENT(IN) :: T INTEGER :: ND TYPE(DUCT_TYPE),POINTER::DU @@ -3529,8 +3575,10 @@ END SUBROUTINE COIL_UPDATE !> \param AREA_D Duct area (m2) SUBROUTINE CALC_COIL_Q(AC_INDEX,COIL_Q,TSI,VEL_D,TMP_D,ZZ_D,RHO_D,CP_D,AREA_D) -USE MATH_FUNCTIONS, ONLY : EVALUATE_RAMP -USE PHYSICAL_FUNCTIONS, ONLY : GET_SPECIFIC_HEAT, GET_AVERAGE_SPECIFIC_HEAT, GET_ENTHALPY + +USE MATH_FUNCTIONS, ONLY: EVALUATE_RAMP +USE PHYSICAL_FUNCTIONS, ONLY: GET_SPECIFIC_HEAT, GET_AVERAGE_SPECIFIC_HEAT, GET_ENTHALPY +USE GLOBAL_CONSTANTS, ONLY: N_TRACKED_SPECIES,I_MAX_TEMP INTEGER, INTENT(IN) :: AC_INDEX REAL(EB), INTENT(IN) :: TSI,VEL_D,TMP_D,ZZ_D(1:N_TRACKED_SPECIES),RHO_D,CP_D,AREA_D REAL(EB), INTENT(INOUT) :: COIL_Q @@ -3586,6 +3634,7 @@ END SUBROUTINE CALC_COIL_Q SUBROUTINE ADJUST_LEAKAGE_AREA +USE GLOBAL_CONSTANTS, ONLY: N_DUCTS INTEGER :: ND REAL(EB) :: N,DELTA_P,DELTA_P_REF,C_D TYPE(DUCT_TYPE), POINTER :: DU @@ -3613,7 +3662,9 @@ END SUBROUTINE ADJUST_LEAKAGE_AREA !> \param DT Current time step (s) SUBROUTINE UPDATE_HVAC_MASS_TRANSPORT(DT,NR) + USE PHYSICAL_FUNCTIONS,ONLY: GET_TEMPERATURE, GET_ENTHALPY +USE GLOBAL_CONSTANTS, ONLY: N_TRACKED_SPECIES,NEW REAL(EB), INTENT(IN) :: DT INTEGER, INTENT(IN) :: NR INTEGER :: N_SUBSTEPS,ND,NS,NC,MAX_CELLS @@ -3696,6 +3747,8 @@ END SUBROUTINE UPDATE_HVAC_MASS_TRANSPORT !> \brief Checks duct network for minimal loss defintions SUBROUTINE EXAMINE_LOSSES + +USE GLOBAL_CONSTANTS, ONLY: N_DUCTNODES,N_DUCTS INTEGER :: ND, ND2, ND3, NN, F_COUNTER LOGICAL :: CHANGE LOGICAL :: LOSS_D(N_DUCTS,2),LOSS_N(N_DUCTNODES),FIXED_D(N_DUCTS) @@ -4011,6 +4064,8 @@ END SUBROUTINE EXAMINE_LOSSES !> \param T Current simulation time (s) SUBROUTINE HVAC_QFAN_CALC(T) + +USE GLOBAL_CONSTANTS, ONLY: N_DUCTRUNS,GUESS,N_AIRCOILS,PREVIOUS,OLD,NEW REAL(EB), INTENT(IN) :: T INTEGER :: NR,NF TYPE(DUCTRUN_TYPE), POINTER :: DR @@ -4074,6 +4129,8 @@ END SUBROUTINE HVAC_QFAN_CALC !> \param NF Index indicating which ductrun fan is being solved SUBROUTINE SET_GUESS_QFAN(DUCTRUN_INDEX,NF) + +USE GLOBAL_CONSTANTS, ONLY: GUESS,PREVIOUS,NEW INTEGER, INTENT(IN) :: DUCTRUN_INDEX,NF INTEGER :: ND TYPE(DUCTRUN_TYPE), POINTER :: DR @@ -4124,7 +4181,9 @@ END SUBROUTINE QFAN_SIMPLE !> \brief Finds "duct runs"; being ductnodes and ducts directly (via HVAC components) connected to one another SUBROUTINE FIND_DUCTRUNS(CHANGE) -USE PHYSICAL_FUNCTIONS, ONLY : GET_ENTHALPY + +USE PHYSICAL_FUNCTIONS, ONLY: GET_ENTHALPY +USE GLOBAL_CONSTANTS, ONLY: N_DUCTS,N_DUCTNODES,N_TRACKED_SPECIES,N_DUCTRUNS,P_INF,N_DUCTRUNS,HVAC_QFAN,TMPA,RHOA,OLD LOGICAL, INTENT(IN) :: CHANGE INTEGER :: NN,NR,NF,NN3,ND,DUCT_COUNTER(N_DUCTS),NODE_COUNTER(N_DUCTNODES),& DR_DUCTS(N_DUCTS),DR_DUCTNODES(N_DUCTS),DUCTRUN_MAP(N_DUCTS),DR_INDEX @@ -4379,7 +4438,9 @@ END SUBROUTINE FIND_DUCTRUNS !> \param NF Index indicating which HVAC ductrun fan is being solved SUBROUTINE MATRIX_SOLVE_QFAN(DUCTRUN_INDEX,NF) + USE MATH_FUNCTIONS,ONLY : GAUSSJ +USE GLOBAL_CONSTANTS, ONLY: NEW INTEGER,INTENT(IN) :: DUCTRUN_INDEX,NF INTEGER :: IERR REAL(EB), ALLOCATABLE, DIMENSION(:,:) :: LHS_GAUSSJ @@ -4408,12 +4469,12 @@ END SUBROUTINE MATRIX_SOLVE_QFAN !> \param DUCTRUN_INDEX Index indicating which HVAC ductrun is being solved SUBROUTINE RHSNODE_QFAN(DUCTRUN_INDEX) -USE GLOBAL_CONSTANTS -INTEGER, INTENT(IN)::DUCTRUN_INDEX + +INTEGER, INTENT(IN) :: DUCTRUN_INDEX INTEGER :: NN,ND -TYPE(DUCTRUN_TYPE), POINTER::DR -TYPE(DUCT_TYPE), POINTER::DU -TYPE(DUCTNODE_TYPE), POINTER::DN +TYPE(DUCTRUN_TYPE), POINTER :: DR +TYPE(DUCT_TYPE), POINTER :: DU +TYPE(DUCTNODE_TYPE), POINTER :: DN DR => DUCTRUN(DUCTRUN_INDEX) DO NN = 1, DR%N_M_DUCTNODES @@ -4432,12 +4493,12 @@ END SUBROUTINE RHSNODE_QFAN !> \param NF Index indicating which ductrun fan is being solved SUBROUTINE LHSNODE_QFAN(DUCTRUN_INDEX,NF) -USE GLOBAL_CONSTANTS -INTEGER, INTENT(IN)::DUCTRUN_INDEX,NF + +INTEGER, INTENT(IN) :: DUCTRUN_INDEX,NF INTEGER :: NN,ND,ARRAYLOC -TYPE(DUCTRUN_TYPE), POINTER::DR -TYPE(DUCT_TYPE), POINTER::DU -TYPE(DUCTNODE_TYPE), POINTER::DN +TYPE(DUCTRUN_TYPE), POINTER :: DR +TYPE(DUCT_TYPE), POINTER :: DU +TYPE(DUCTNODE_TYPE), POINTER :: DN DR => DUCTRUN(DUCTRUN_INDEX) DO NN = 1, DR%N_M_DUCTNODES @@ -4460,7 +4521,7 @@ END SUBROUTINE LHSNODE_QFAN SUBROUTINE RHSDUCT_QFAN(DUCTRUN_INDEX,NF,T) -USE GLOBAL_CONSTANTS +USE GLOBAL_CONSTANTS, ONLY: HVAC_LOCAL_PRESSURE,OLD,GAMMA,STRATIFICATION,GVEC,PREVIOUS,GUESS INTEGER, INTENT(IN) :: DUCTRUN_INDEX,NF REAL(EB), INTENT(IN) :: T INTEGER :: ND @@ -4518,12 +4579,13 @@ END SUBROUTINE RHSDUCT_QFAN !> \param NF Index indicating which ductrun fan is being solved SUBROUTINE LHSDUCT_QFAN(DUCTRUN_INDEX,NF) -USE GLOBAL_CONSTANTS -INTEGER, INTENT(IN)::DUCTRUN_INDEX,NF + +USE GLOBAL_CONSTANTS, ONLY: PREVIOUS,GUESS,HVAC_LOCAL_PRESSURE,GAMMA +INTEGER, INTENT(IN) :: DUCTRUN_INDEX,NF INTEGER :: ND -TYPE(DUCTRUN_TYPE), POINTER::DR -TYPE(DUCT_TYPE), POINTER::DU -TYPE(DUCTNODE_TYPE), POINTER::DN +TYPE(DUCTRUN_TYPE), POINTER :: DR +TYPE(DUCT_TYPE), POINTER :: DU +TYPE(DUCTNODE_TYPE), POINTER :: DN DR => DUCTRUN(DUCTRUN_INDEX) @@ -4569,6 +4631,8 @@ END FUNCTION FAN_MAX !> \param NF Index indicating which HVAC ductrun fan is being solved SUBROUTINE CONVERGENCE_CHECK_QFAN(DUCTRUN_INDEX,NF) + +USE GLOBAL_CONSTANTS, ONLY: PREVIOUS,NEW INTEGER, INTENT(IN) :: DUCTRUN_INDEX,NF INTEGER :: NN, ND, COUNT REAL(EB) :: MSUM,MTOT,MFLOW,VEL @@ -4622,8 +4686,10 @@ END SUBROUTINE CONVERGENCE_CHECK_QFAN !> \param T Current time (s) SUBROUTINE COIL_UPDATE_QFAN(T,DUCTRUN_INDEX,NF) + USE MATH_FUNCTIONS, ONLY : EVALUATE_RAMP USE PHYSICAL_FUNCTIONS, ONLY : GET_SPECIFIC_HEAT, GET_AVERAGE_SPECIFIC_HEAT, GET_ENTHALPY +USE GLOBAL_CONSTANTS, ONLY: N_TRACKED_SPECIES,OLD,NEW INTEGER, INTENT(IN) :: DUCTRUN_INDEX,NF REAL(EB), INTENT(IN) :: T REAL(EB) :: COIL_ON_TIME,DVEL @@ -4668,8 +4734,10 @@ END SUBROUTINE COIL_UPDATE_QFAN !> \param NF Index indicating which HVAC ductrun dan is being solved SUBROUTINE UPDATE_LOSS_QFAN(T,DUCTRUN_INDEX,NF) -USE PHYSICAL_FUNCTIONS,ONLY:GET_VISCOSITY -USE MATH_FUNCTIONS,ONLY:EVALUATE_RAMP + +USE PHYSICAL_FUNCTIONS, ONLY: GET_VISCOSITY +USE MATH_FUNCTIONS, ONLY: EVALUATE_RAMP +USE GLOBAL_CONSTANTS, ONLY: N_TRACKED_SPECIES,PREVIOUS,OLD,NEW REAL(EB) :: FRICTION_FACTOR,LOSS_SUM,ZZ_GET(1:N_TRACKED_SPECIES),VISCOSITY,VFLOW,AREA,DVEL INTEGER, INTENT(IN) :: DUCTRUN_INDEX,NF REAL(EB), INTENT(IN) :: T @@ -4845,6 +4913,7 @@ END SUBROUTINE UPDATE_LOSS_QFAN SUBROUTINE SET_DONOR_QFAN(DUCTRUN_INDEX,NF) +USE GLOBAL_CONSTANTS, ONLY: NEW INTEGER :: ND,NN INTEGER, INTENT(IN) :: DUCTRUN_INDEX,NF REAL(EB) :: DVEL @@ -4922,7 +4991,8 @@ END SUBROUTINE SET_DONOR_QFAN SUBROUTINE HVAC_UPDATE_QFAN(DUCTRUN_INDEX,NF) -USE PHYSICAL_FUNCTIONS, ONLY : GET_TEMPERATURE,GET_SPECIFIC_GAS_CONSTANT,GET_ENTHALPY +USE PHYSICAL_FUNCTIONS, ONLY: GET_TEMPERATURE,GET_SPECIFIC_GAS_CONSTANT,GET_ENTHALPY +USE GLOBAL_CONSTANTS, ONLY: N_TRACKED_SPECIES,N_DUCTS,N_DUCTNODES,STRATIFICATION,GVEC,P_INF,NEW REAL(EB) :: CPTSUM,ETOT,MTOT,TGUESS,VFLOW,ZZ_GET(1:N_TRACKED_SPECIES),& ZZTOT(1:N_TRACKED_SPECIES),HGAS,RSUM,DVEL INTEGER, INTENT(IN) :: DUCTRUN_INDEX,NF diff --git a/Source/main.f90 b/Source/main.f90 index b848925a628..9858e69691e 100644 --- a/Source/main.f90 +++ b/Source/main.f90 @@ -21,7 +21,9 @@ PROGRAM FDS USE RADCONS, ONLY : DLN USE MISC_FUNCTIONS, ONLY : WRITE_SUMMARY_INFO,VERBOSE_PRINTOUT USE OUTPUT_DATA -USE MEMORY_FUNCTIONS +USE MEMORY_FUNCTIONS, ONLY: EXCHANGE_GEOMETRY_INFO,CHKMEMERR,ALLOCATE_STORAGE,PACK_PARTICLE,& + NULLIFY_PARTICLE,PACK_WALL,REALLOCATE_P_ZONE,REALLOCATE_CELL,REALLOCATE_STORAGE_ARRAYS,& + RE_ALLOCATE_STRINGS,PACK_THIN_WALL USE HVAC_ROUTINES USE COMP_FUNCTIONS, ONLY : CURRENT_TIME,INITIALIZE_OUTPUT_CLOCKS,READ_EXTERNAL_FILE,GET_FILE_NUMBER USE DEVICE_VARIABLES diff --git a/Source/turb.f90 b/Source/turb.f90 index a9450fe7731..c91046d3bab 100644 --- a/Source/turb.f90 +++ b/Source/turb.f90 @@ -7,7 +7,7 @@ MODULE TURBULENCE USE GLOBAL_CONSTANTS USE MESH_POINTERS USE MESH_VARIABLES -USE COMP_FUNCTIONS +USE COMP_FUNCTIONS, ONLY: GET_FILE_NUMBER,SHUTDOWN IMPLICIT NONE (TYPE,EXTERNAL) PRIVATE