⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cons.f90

📁 FDS为火灾动力学模拟软件源代码,该软件为开源项目,代码语言主要为FORTRAN,可在WINDOWS和LINUX下编译运行,详细说明可参考http://fire.nist.gov/fds/官方网址
💻 F90
字号:
MODULE GLOBAL_CONSTANTS ! Module containing global constants, parameters, variables USE PRECISION_PARAMETERSIMPLICIT NONECHARACTER(255), PARAMETER :: consid='$Id: cons.f90 710 2007-09-28 19:52:12Z drjfloyd $'CHARACTER(255), PARAMETER :: consrev='$Revision: 710 $'CHARACTER(255), PARAMETER :: consdate='$Date: 2007-09-28 15:52:12 -0400 (Fri, 28 Sep 2007) $'! Indices for various modes of operationINTEGER, PARAMETER :: MIXTURE_FRACTION_SPECIES=1,GAS_SPECIES=2,AEROSOL_SPECIES=3            ! For SPECIES%MODEINTEGER, PARAMETER :: MIXTURE_FRACTION_REACTION=1,FINITE_RATE_REACTION=2                    ! For REACTION%MODEINTEGER, PARAMETER :: ADIABATIC_INDEX=0,INTERPOLATED_BC=6,SPECIFIED_TEMPERATURE=1, &                      SPECIFIED_HEAT_FLUX=-1,THERMALLY_THICK=3, &                      INFLOW_OUTFLOW=4,NO_CONVECTION=2                                      ! Heat transfer BCINTEGER, PARAMETER :: EXPOSED=0,VOID=1,INSULATED=2                                          ! Surface backingINTEGER, PARAMETER :: SURF_CARTESIAN=0,SURF_CYLINDRICAL=1,SURF_SPHERICAL=2                  ! Surface geometryINTEGER, PARAMETER :: NO_MASS_FLUX=1,SPECIFIED_MASS_FRACTION=2,SPECIFIED_MASS_FLUX=3        ! Mass transfer BCINTEGER, PARAMETER :: NULL_BOUNDARY=0,SOLID_BOUNDARY=1,OPEN_BOUNDARY=2,MIRROR_BOUNDARY=3, &                      POROUS_BOUNDARY=4,INTERPOLATED_BOUNDARY=6                             ! Boundary TypeINTEGER, PARAMETER :: FUEL_INDEX=1,O2_INDEX=2,N2_INDEX=3,H2O_INDEX=4,CO2_INDEX=5,CO_INDEX=6,H2_INDEX=7, &                      SOOT_INDEX=8,OTHER_INDEX=9                                            ! Mixture Fraction SpeciesINTEGER, PARAMETER :: DIRICHLET=1,NEUMANN=2                                                 ! Pressure Boundary ConditionsINTEGER, PARAMETER :: PYROLYSIS_NONE=0,PYROLYSIS_SOLID=1,PYROLYSIS_LIQUID=2,&                      PYROLYSIS_MATERIAL=3,PYROLYSIS_SPECIFIED=4                            ! Pyrolysis modelINTEGER, PARAMETER :: ATMOSPHERIC=1, PARABOLIC=2, ONED_PARABOLIC=3                          ! Surface velocity profileINTEGER, PARAMETER :: CELL_CENTER=1, CELL_FACE=2, CELL_EDGE=3                               ! Cell position for output quantitiesINTEGER, PARAMETER :: NO_STOP=0, INSTABILITY_STOP=1, USER_STOP=2                            ! Program Stop Status! Program Status CodeINTEGER :: GLOBAL_STOP_STATUS=NO_STOP! Miscellaneous logical constants LOGICAL :: LES,DNS,ISOTHERMAL,RADIATION, &         CYLINDRICAL,NOISE,MIXTURE_FRACTION=.FALSE., &         BAROCLINIC,PREDICTOR,CORRECTOR, &         APPEND,DROPLET_FILE=.FALSE.,RESTART, &         SUPPRESSION,CO_PRODUCTION,ACCUMULATE_WATER,WRITE_XYZ, &         CHECK_POISSON,TWO_D,SET_UP=.FALSE.,SMOKE3D, &         DEBUG,SYNCHRONIZE,TIMING, &         FLUSH_FILE_BUFFERS,PRESSURE_CORRECTION, &         COLUMN_DUMP_LIMIT,MASS_FILE,STRATIFICATION,SOLID_PHASE_ONLY, &         SERIAL=.FALSE.,PARALLEL=.FALSE.LOGICAL, ALLOCATABLE, DIMENSION(:) :: SYNC_TIME_STEP,CHANGE_TIME_STEP,INTERPOLATED! Miscellaneous character stringsCHARACTER(10) :: SMOKE3D_COMPRESSIONCHARACTER(256) :: TITLE,RENDER_FILECHARACTER(40) :: CHID,RESTART_CHID! Dates, version numbers, revision numbersCHARACTER(20) :: COMPILE_DATE,VERSION_STRINGREAL(FB) :: VERSION_NUMBERINTEGER :: SVN_REVISION_NUMBER ! Global EVACuation parametersLOGICAL, ALLOCATABLE, DIMENSION(:) :: EVACUATION_ONLY, EVACUATION_GRIDREAL(EB) :: EVAC_DT_FLOWFIELD,EVAC_DT_STEADY_STATE,EVAC_DT,T_EVAC,T_EVAC_SAVEINTEGER :: EVAC_PRESSURE_ITERATIONS,EVAC_TIME_ITERATIONS,EVAC_N_QUANTITIES,I_EVACCHARACTER(30), ALLOCATABLE, DIMENSION(:) :: EVAC_CLASS_NAMEINTEGER, ALLOCATABLE, DIMENSION(:) :: EVAC_QUANTITIES_INDEXINTEGER, ALLOCATABLE, DIMENSION(:,:) :: EVAC_CLASS_RGB! Miscellaneous real constants REAL(EB) :: CPOPR,RSC,RPR,TMPA,TMPA4,TMPM,RHOA,P_INF,P_STP,GRAV,R0,R1, &            CP_GAMMA,GAMMA,U0,V0,W0,H0,GVEC(3),CSMAG, &            LAPSE_RATE,ONTH,THFO,ONSI,HCH,HCV,TEX_ORI(3), &            SIGMA,TWTH,FOTH,KAPPA0,C_FORCED,H_FIXED,ASSUMED_GAS_TEMPERATURE, &            CHARACTERISTIC_VELOCITY,CFL_MAX,CFL_MIN,VN_MAX,VN_MIN,  &            PI,SQRTPI,RPI,RFPI,TWOPI,PIO2,PR,SC,C_P_W,H_V_W! Time parametersREAL(EB) :: T_BEGIN,T_END,TIME_SHRINK_FACTOR,RELAXATION_FACTOR ! Combustion parameters REAL(EB), PARAMETER :: MW_O2=32._EB,MW_H2=2._EB,MW_CO2=44._EB,MW_H2O=18._EB,MW_N2=28._EB,MW_CO=28._EB, &                       MW_C=12._EB,MW_H=1_EB,MW_O=16._EB,MW_N=14._EB, &                       !HEAT_OF_FORMATION kJ/mol Drysdale, Fire Dynamics                       CO_HEAT_OF_FORMATION = 110.523E3_EB, CO2_HEAT_OF_FORMATION = 393.513E3_EB, &                       H2O_HEAT_OF_FORMATION = 241.826E3_EB REAL(EB) :: MW_AIR,MW_SOOT,HRRPUA_SHEET=200._EB,RHO_SOOT,VISIBILITY_FACTOR,MASS_EXTINCTION_COEFFICIENT,EC_LLINTEGER :: N_SPECIES,N_SPEC_DILUENTS,I_WATER,I_CO2,N_REACTIONS,I_FUEL,I_PROG_CO, I_PROG_F, I_CO, I_O2,I_SOOTREAL(EB) :: RSUM0REAL(EB), DIMENSION(0:10) :: RCON_MFREAL(EB), DIMENSION(0:10000) :: Z_2_MAX,MW_MF_CORR_O2,MW_MF_CORR_FUELREAL(EB), DIMENSION(0:10000,1:9) :: Y_CORR_O2,Y_CORR_FUEL! Ramping parameters CHARACTER(30) :: RAMP_ID(1000),RAMP_TYPE(1000)INTEGER :: I_RAMP_GX,I_RAMP_GY,I_RAMP_GZ,N_RAMPINTEGER, PARAMETER :: TIME_HEAT=-1,TIME_VELO=-2,TIME_TEMP=-3,TANH_RAMP=-2,TSQR_RAMP=-1! TABLe parametersCHARACTER(30) :: TABLE_ID(1000)INTEGER :: N_TABLE=0,TABLE_TYPE(1000)INTEGER, PARAMETER :: SPRAY_PATTERN=1! Miscellaneous integer constants INTEGER :: NMESHES=1INTEGER :: ICYC,WALL_INCREMENT,NFRAMES,NCGCINTEGER, ALLOCATABLE, DIMENSION(:,:) :: PBC ! Clocks for output file dumps REAL(EB), ALLOCATABLE, DIMENSION(:) :: PART_CLOCK,CORE_CLOCK,SLCF_CLOCK, &                                       PL3D_CLOCK,BNDF_CLOCK,ISOF_CLOCK,PROF_CLOCKREAL(EB) :: MINT_CLOCK,DEVC_CLOCK,HRR_CLOCK,EVAC_CLOCK,CTRL_CLOCKREAL(EB) :: DT_SLCF,DT_BNDF,DT_DEVC,DT_PL3D,DT_PART,DT_RESTART,DT_ISOF,DT_HRR,DT_MASS,DT_PROF,DT_CTRL ! Logical units and output file names INTEGER                              :: LU_INPUT=55INTEGER                              :: LU_MASS,LU_HRR,LU_OUTPUT,LU_SMV,LU_END,LU_ERR=0INTEGER                              :: LU_EVACCSV,LU_EVACEFF,LU_EVACFEDINTEGER, ALLOCATABLE, DIMENSION(:)   :: LU_PART,LU_PROF,LU_XYZ,LU_PL3D,LU_DEVC,LU_STATE,LU_CTRL,LU_CORE,LU_RESTARTINTEGER, ALLOCATABLE, DIMENSION(:,:) :: LU_SLCF,LU_BNDF,LU_ISOF,LU_SMOKE3DCHARACTER(250)                             :: FN_INPUT='null'CHARACTER(80)                              :: FN_MASS,FN_HRR,FN_OUTPUT,FN_SMV,FN_END,FN_ERRCHARACTER(80)                              :: FN_EVACCSV,FN_EVACEFF,FN_EVACFEDCHARACTER(80), ALLOCATABLE, DIMENSION(:)   :: FN_PART,FN_PROF,FN_XYZ,FN_PL3D,FN_DEVC,FN_STATE,FN_CTRL,FN_CORE,FN_RESTARTCHARACTER(80), ALLOCATABLE, DIMENSION(:,:) :: FN_SLCF,FN_BNDF,FN_ISOF,FN_SMOKE3D ! Boundary condition arrays CHARACTER(30) :: SURF_NAME(0:1000),MATL_NAME(1:1000)INTEGER :: N_SURF,N_MATL,MIRROR_SURF_INDEX,OPEN_SURF_INDEX,INTERPOLATED_SURF_INDEX,DEFAULT_SURF_INDEX=0,INERT_SURF_INDEX=0REAL(EB), ALLOCATABLE, DIMENSION(:) :: AAS,BBS,CCS,DDS,DDT,DX_S,RDX_S,RDXN_S,DX_WGT_S, &                                       K_S,RHOCBAR,C_S,RHO_S,Q_S,KAPPA_S,X_S_NEWREAL(EB), ALLOCATABLE, DIMENSION(:,:) :: INT_WGTINTEGER,  ALLOCATABLE, DIMENSION(:) :: LAYER_INDEX! Divergence ArraysREAL(EB), ALLOCATABLE, DIMENSION(:,:) :: DSUM,USUM,PSUM! Tree Arrays INTEGER :: N_TREESREAL(EB), ALLOCATABLE, DIMENSION(:) :: CANOPY_W,CANOPY_B_H, TREE_H,X_TREE,Y_TREE,Z_TREEINTEGER, ALLOCATABLE, DIMENSION(:) :: TREE_PARTICLE_CLASS,TREE_MESH ! Sprinkler Variables REAL(EB) :: C_DIMARZO=6.E6_EBINTEGER :: NSTRATAINTEGER, PARAMETER :: NDC=1000LOGICAL :: POROUS_FLOOR! Particles and Droplets INTEGER :: MAXIMUM_DROPLETS,N_PART,PARTICLE_TAG,N_EVAC,N_EVAP_INDICIES=0 ! Initial value and pressure zone arrays INTEGER :: N_INIT,N_ZONE ! Output quantity arrays INTEGER, PARAMETER :: N_OUTPUT_QUANTITIES=280INTEGER :: PLOT3D_QUANTITY_INDEX(5)CHARACTER(30) :: PLOT3D_QUANTITY(5)INTEGER :: N_BNDF,N_ISOF,N_PROF,N_SLCF_MAX=0REAL(EB),ALLOCATABLE, DIMENSION(:) :: HRR,RHRR,CHRR,FHRR,MLR,HRR_SUM,RHRR_SUM,CHRR_SUM,FHRR_SUM,MLR_SUM,HRR_COUNTREAL(EB),ALLOCATABLE, DIMENSION(:,:) :: MINT,MINT_SUMREAL(EB),ALLOCATABLE, DIMENSION(:) :: MINT_COUNT! Clipping values REAL(EB) :: TMPMIN,TMPMAX,YYMIN(MAX_SPECIES),YYMAX(MAX_SPECIES),RHOMIN,RHOMAX ! CPU and Wall Clock Timings INTEGER, PARAMETER :: N_TIMERS=15INTEGER, ALLOCATABLE, DIMENSION(:) :: NTCYC,NCYCREAL(EB), ALLOCATABLE, DIMENSION(:) :: T_PER_STEP,T_ACCUMREAL(EB) :: WALL_CLOCK_START, WALL_CLOCK_ENDCONTAINSSUBROUTINE GET_REV_cons(MODULE_REV,MODULE_DATE)INTEGER,INTENT(INOUT) :: MODULE_REVCHARACTER(255),INTENT(INOUT) :: MODULE_DATEWRITE(MODULE_DATE,'(A)') consrev(INDEX(consrev,':')+1:LEN_TRIM(consrev)-2)READ (MODULE_DATE,'(I5)') MODULE_REVWRITE(MODULE_DATE,'(A)') consdateEND SUBROUTINE GET_REV_cons END MODULE GLOBAL_CONSTANTS

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -