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

📄 dump.f90

📁 FDS为火灾动力学模拟软件源代码,该软件为开源项目,代码语言主要为FORTRAN,可在WINDOWS和LINUX下编译运行,详细说明可参考http://fire.nist.gov/fds/官方网址
💻 F90
📖 第 1 页 / 共 5 页
字号:
       YY>MESHES(NM)%YS .AND. YY<MESHES(NM)%YF .AND. &       ZZ>MESHES(NM)%ZS .AND. ZZ<MESHES(NM)%ZF) INTERIOR = .TRUE.ENDDOEND FUNCTION INTERIORSUBROUTINE DUMMY_VENTS(WALL_DUMMY,N1,N2,NDVDIM,NDV,IVV1,IVV2,JVV1,JVV2)INTEGER, INTENT(IN) :: N1,N2,NDVDIMINTEGER, INTENT(INOUT), DIMENSION(NDVDIM) :: IVV1,IVV2,JVV1,JVV2INTEGER, INTENT(INOUT) :: NDVINTEGER I,J,II,JJ,ISTP,JSTPINTEGER, INTENT(INOUT), DIMENSION(N1,N2) :: WALL_DUMMYJLOOP: DO J=1,N2   ILOOP: DO I=1,N1      IF (WALL_DUMMY(I,J)/=0) CYCLE ILOOP      ISTP = N1       JSTP = N2      JJLOOP: DO JJ=J+1,N2         IF (WALL_DUMMY(I,JJ)/=0) THEN            JSTP = JJ-1            EXIT JJLOOP         ENDIF      ENDDO JJLOOP      IILOOP: DO II=I+1,N1         JJLOOP2: DO JJ=J,JSTP         IF (WALL_DUMMY(II,JJ)/=0) THEN            ISTP = II-1            EXIT IILOOP         ENDIF         ENDDO JJLOOP2      ENDDO IILOOP      NDV = NDV + 1      WALL_DUMMY(I:ISTP,J:JSTP) = NDV      IVV1(NDV) = I-1      IVV2(NDV) = ISTP      JVV1(NDV) = J-1      JVV2(NDV) = JSTP   ENDDO ILOOPENDDO JLOOPEND SUBROUTINE DUMMY_VENTSSUBROUTINE TRIM_LABEL(T,LAB)CHARACTER(30), INTENT(OUT) :: LABREAL(EB), INTENT(IN) :: TIF (T<  .00_EB   .AND. T>=  -.001_EB) WRITE(LAB,'(F4.1)') TIF (T<   .001_EB .AND. T>=    -.1_EB) WRITE(LAB,'(F6.3)') TIF (T<    -.1_EB .AND. T>=    -1._EB) WRITE(LAB,'(F5.2)') TIF (T<    -1._EB .AND. T>=   -10._EB) WRITE(LAB,'(F4.1)') TIF (T<   -10._EB .AND. T>=  -100._EB) WRITE(LAB,'(F5.1)') TIF (T<  -100._EB .AND. T>= -1000._EB) WRITE(LAB,'(F5.0)') TIF (T< -1000._EB .AND. T>=-10000._EB) WRITE(LAB,'(F6.0)') TIF (T<-10000._EB                   ) WRITE(LAB,'(F7.0)') TIF (T>=  .00_EB  .AND. T<  .001_EB) WRITE(LAB,'(F4.1)') TIF (T>=  .001_EB .AND. T<    .1_EB) WRITE(LAB,'(F6.3)') TIF (T>=    .1_EB .AND. T<    1._EB) WRITE(LAB,'(F5.2)') TIF (T>=    1._EB .AND. T<   10._EB) WRITE(LAB,'(F4.1)') TIF (T>=   10._EB .AND. T<  100._EB) WRITE(LAB,'(F4.1)') TIF (T>=  100._EB .AND. T< 1000._EB) WRITE(LAB,'(F4.0)') TIF (T>= 1000._EB .AND. T<10000._EB) WRITE(LAB,'(F5.0)') TIF (T>=10000._EB                  ) WRITE(LAB,'(F6.0)') TEND SUBROUTINE TRIM_LABELSUBROUTINE RE_ALLOCATE_SEGMENTSUSE MEMORY_FUNCTIONS, ONLY : ChkMemErrTYPE(SEGMENT_TYPE), ALLOCATABLE, DIMENSION(:) :: DUMMY_SEGMENTINTEGER :: IZEROALLOCATE(DUMMY_SEGMENT(N_SEGMENTS_MAX),STAT=IZERO)CALL ChkMemErr('DUMP','DUMMY_SEGMENT',IZERO)DUMMY_SEGMENT(1:N_SEGMENTS_MAX) = SEGMENT(1:N_SEGMENTS_MAX)DEALLOCATE(SEGMENT)ALLOCATE(SEGMENT(N_SEGMENTS_MAX+100),STAT=IZERO)CALL ChkMemErr('DUMP','SEGMENT',IZERO)SEGMENT(1:N_SEGMENTS_MAX) = DUMMY_SEGMENT(1:N_SEGMENTS_MAX)N_SEGMENTS_MAX = N_SEGMENTS_MAX + 100DEALLOCATE(DUMMY_SEGMENT)END SUBROUTINE RE_ALLOCATE_SEGMENTSEND SUBROUTINE WRITE_SMOKEVIEW_FILESUBROUTINE INITIALIZE_DIAGNOSTIC_FILEUSE RADCONS, ONLY: NRA,NRT,RSA,NRP,NSB,TIME_STEP_INCREMENT,ANGLE_INCREMENT,PATH_LENGTHUSE MATH_FUNCTIONS, ONLY : EVALUATE_RAMP INTEGER :: NM,I,NN,N,NR,NL ! Write out preliminary stuff to error file (unit 0) WRITE(LU_ERR,'(/A/)')      ' Fire Dynamics Simulator'WRITE(LU_ERR,'(A,A)')      ' Compilation Date : ',TRIM(COMPILE_DATE)IF (SERIAL)   WRITE(LU_ERR,'(A,A,A)')      ' Version          : ',TRIM(VERSION_STRING),' Serial'IF (PARALLEL) WRITE(LU_ERR,'(A,A,A)')      ' Version          : ',TRIM(VERSION_STRING),' Parallel'WRITE(LU_ERR,'(A,I4/)')    ' SVN Revision No. : ',SVN_REVISION_NUMBERWRITE(LU_ERR,'(A,A)')      ' Job TITLE        : ',TRIM(TITLE)WRITE(LU_ERR,'(A,A/)')     ' Job ID string    : ',TRIM(CHID) ! Write out the input parameters to output file (unit 6) WRITE(LU_OUTPUT,'(/A/)')      ' Fire Dynamics Simulator'WRITE(LU_OUTPUT,'(A,A)')      ' Compilation Date : ',TRIM(COMPILE_DATE)IF (SERIAL)   WRITE(LU_OUTPUT,'(A,A,A)')      ' Version          : ',TRIM(VERSION_STRING),' Serial'IF (PARALLEL) WRITE(LU_OUTPUT,'(A,A,A)')      ' Version          : ',TRIM(VERSION_STRING),' Parallel'WRITE(LU_OUTPUT,'(A,I4/)')    ' SVN Revision No. : ',SVN_REVISION_NUMBERWRITE(LU_OUTPUT,'(A,A)')      ' Job TITLE        : ',TRIM(TITLE)WRITE(LU_OUTPUT,'(A,A/)')     ' Job ID string    : ',TRIM(CHID) IF (APPEND) RETURN MESH_LOOP: DO NM=1,NMESHES   M => MESHES(NM)   WRITE(LU_OUTPUT,'(/A,I2/)') ' Grid Dimensions, Mesh ',NM   WRITE(LU_OUTPUT,'(A,I8)')     '   Cells in the X Direction      ',M%IBAR   WRITE(LU_OUTPUT,'(A,I8)')     '   Cells in the Y Direction      ',M%JBAR   WRITE(LU_OUTPUT,'(A,I8)')     '   Cells in the Z Direction      ',M%KBAR   WRITE(LU_OUTPUT,'(//A,I2/)')' Physical Dimensions, Mesh ',NM   WRITE(LU_OUTPUT,'(A,F9.3)')   '   Length (m)                    ',M%XF-M%XS   WRITE(LU_OUTPUT,'(A,F9.3)')   '   Width  (m)                    ',M%YF-M%YS   WRITE(LU_OUTPUT,'(A,F9.3)')   '   Height (m)                    ',M%ZF-M%ZS   WRITE(LU_OUTPUT,'(A,F8.3)')   '   Initial Time Step (s)         ',M%DTENDDO MESH_LOOPWRITE(LU_OUTPUT,'(//A/)')     ' Miscellaneous Parameters'IF (TIME_SHRINK_FACTOR /= 1._EB) &WRITE(LU_OUTPUT,'(A,F8.1)')   '   Time Shrink Factor (s/s)      ',TIME_SHRINK_FACTORWRITE(LU_OUTPUT,'(A,F8.1)')   '   Simulation Start Time (s)     ',T_BEGINWRITE(LU_OUTPUT,'(A,F8.1)')   '   Simulation End Time (s)       ',(T_END-T_BEGIN) * TIME_SHRINK_FACTOR + T_BEGINIF (LES) THEN   WRITE(LU_OUTPUT,'(A)')        '   LES Calculation'   WRITE(LU_OUTPUT,'(A,F8.2)')   '   Smagorinsky Constant          ',CSMAG   WRITE(LU_OUTPUT,'(A,F8.2)')   '   Turbulent Prandtl Number      ',PR   IF (N_SPECIES>0._EB) WRITE(LU_OUTPUT,'(A,F8.2)')   '   Turbulent Schmidt Number      ',SCENDIFWRITE(LU_OUTPUT,'(A,F8.2)')   '   Ambient Temperature (C)       ',TMPA-TMPM ! Print out information about species WRITE(LU_OUTPUT,'(//A)') ' Species Information'SPEC_LOOP: DO N=0,N_SPECIES   IF (N==0 .AND. MIXTURE_FRACTION) CYCLE SPEC_LOOP   SS => SPECIES(N)   WRITE(LU_OUTPUT,'(/3X,A)') SS%NAME   SELECT CASE(SS%MODE)      CASE (MIXTURE_FRACTION_SPECIES)         WRITE(LU_OUTPUT,'( 3X,A)') 'Mixture Fraction Variable'      CASE (GAS_SPECIES)         WRITE(LU_OUTPUT,'( 3X,A)') 'Gas Species'      CASE (AEROSOL_SPECIES)                     WRITE(LU_OUTPUT,'( 3X,A)') 'Aerosol'   END SELECT   IF (N==0) WRITE(LU_OUTPUT,'( 3X,A)') 'Background Species'   IF (SS%MW <  1000._EB .AND. SS%MODE==GAS_SPECIES) &          WRITE(LU_OUTPUT,'(A,F8.2)')   '   Molecular Weight (g/mol)      ',SS%MW   IF (SS%MW >= 1000._EB .AND. SS%MODE==GAS_SPECIES) &          WRITE(LU_OUTPUT,'(A,F8.2)')   '   Density (kg/m^3)              ',SS%MW*P_INF/(TMPA*R0)   WRITE(LU_OUTPUT,'(A,F8.3)')   '   Initial Mass Fraction         ',SS%YY0   IF (DNS .AND. SS%MODE==GAS_SPECIES) THEN      WRITE(LU_OUTPUT,'(A,ES8.2)')  '   Viscosity (kg/m/s)   Ambient: ',SS%MU(NINT(0.1_EB*TMPA))      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                          500 C: ',SS%MU(77)      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                         1000 C: ',SS%MU(127)      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                         1500 C: ',SS%MU(177)   ENDIF   IF (DNS .AND. SS%MODE==MIXTURE_FRACTION_SPECIES) THEN      WRITE(LU_OUTPUT,'(A,ES8.2)')  '   Viscosity (kg/m/s)   Ambient: ',SS%MU_MF2(1,NINT(0.1_EB*TMPA))      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                Z=0.1, T= 500 C: ',SS%MU_MF2(1,77)      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                Z=0.1, T=1000 C: ',SS%MU_MF2(1,127)      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                Z=0.1, T=1500 C: ',SS%MU_MF2(1,177)   ENDIF   IF (.NOT.ISOTHERMAL .AND. DNS .AND. SS%MODE==GAS_SPECIES) THEN      WRITE(LU_OUTPUT,'(A,ES8.2)')  '   Therm. Cond. (W/m/K) Ambient: ',SS%K(NINT(0.1_EB*TMPA))      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                          500 C: ',SS%K(77)      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                         1000 C: ',SS%K(127)      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                         1500 C: ',SS%K(177)   ENDIF   IF (.NOT.ISOTHERMAL .AND. DNS .AND. SS%MODE==MIXTURE_FRACTION_SPECIES) THEN      WRITE(LU_OUTPUT,'(A,ES8.2)')  '   Therm. Cond. (W/m/K) Ambient: ',SS%K_MF2(1,NINT(0.1_EB*TMPA))      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                Z=0.1, T= 500 C: ',SS%K_MF2(1,77)      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                Z=0.1, T=1000 C: ',SS%K_MF2(1,127)      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                Z=0.1, T=1500 C: ',SS%K_MF2(1,177)   ENDIF   IF (.NOT.ISOTHERMAL .AND. DNS .AND. SS%MODE==GAS_SPECIES) THEN      WRITE(LU_OUTPUT,'(A,ES8.2)')  '   Spec. Heat (J/kg/K)  Ambient: ',SS%CP(NINT(0.1_EB*TMPA))      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                          500 C: ',SS%CP(77)      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                         1000 C: ',SS%CP(127)      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                         1500 C: ',SS%CP(177)   ENDIF   IF (.NOT.ISOTHERMAL .AND. DNS .AND. SS%MODE==MIXTURE_FRACTION_SPECIES) THEN      WRITE(LU_OUTPUT,'(A,ES8.2)')  '   Spec. Heat (J/kg/K)  Ambient: ',SS%CP_MF2(1,NINT(0.1_EB*TMPA))      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                Z=0.1, T= 500 C: ',SS%CP_MF2(1,77)      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                Z=0.1, T=1000 C: ',SS%CP_MF2(1,127)      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                Z=0.1, T=1500 C: ',SS%CP_MF2(1,177)   ENDIF   IF (N>0 .AND. DNS .AND. SS%MODE==GAS_SPECIES) THEN      WRITE(LU_OUTPUT,'(A,ES8.2)')  '   Diff. Coeff. (m^2/s) Ambient: ',SS%D(NINT(0.1_EB*TMPA))      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                          500 C: ',SS%D(77)      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                         1000 C: ',SS%D(127)      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                         1500 C: ',SS%D(177)   ENDIF   IF (N>0 .AND. DNS .AND. SS%MODE==MIXTURE_FRACTION_SPECIES) THEN      WRITE(LU_OUTPUT,'(A,ES8.2)')  '   Diff. Coeff. (m^2/s) Ambient: ',SS%D_MF2(1,NINT(0.1_EB*TMPA))      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                Z=0.1, T= 500 C: ',SS%D_MF2(1,77)      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                Z=0.1, T=1000 C: ',SS%D_MF2(1,127)      WRITE(LU_OUTPUT,'(A,ES8.2)')  '                Z=0.1, T=1500 C: ',SS%D_MF2(1,177)   ENDIFENDDO SPEC_LOOP ! Print out Stoichiometric parameters for mixture fraction model IF (N_REACTIONS>0) WRITE(LU_OUTPUT,'(//A)') ' Gas Phase Reaction Information'REACTION_LOOP: DO N=1,N_REACTIONS   RN => REACTION(N)   SELECT CASE(RN%MODE)      CASE(MIXTURE_FRACTION_REACTION)         IF (CO_PRODUCTION) THEN            SELECT CASE(N)               CASE(1)                  WRITE(LU_OUTPUT,'(/3X,A)') 'Incomplete (CO Production) Reaction'               CASE(2)                  WRITE(LU_OUTPUT,'(/3X,A)') 'Complete (CO2 Production) Reaction'               CASE(3)                  WRITE(LU_OUTPUT,'(/3X,A)') 'Null (Extinction) Reaction'                            END SELECT         ELSE            SELECT CASE(N)               CASE(1)                  WRITE(LU_OUTPUT,'(/3X,A)') 'Complete (CO2 Production) Reaction'               CASE(2)                  WRITE(LU_OUTPUT,'(/3X,A)') 'Null (Extinction) Reaction'                            END SELECT         ENDIF         WRITE(LU_OUTPUT,'(3X,A)')  'Mixture Fraction Reaction'      CASE(FINITE_RATE_REACTION)         WRITE(LU_OUTPUT,'(/3X,A)') RN%NAME         WRITE(LU_OUTPUT,'(3X,A)')  'Finte Rate Reaction'   END SELECT   WRITE(LU_OUTPUT,'(A,F8.2)')  '   Molecular Weight, Fuel (g/mol)',RN%MW_FUEL   WRITE(LU_OUTPUT,'(A,F8.0)')  '   Heat of Combustion (kJ/kg)    ',RN%HEAT_OF_COMBUSTION/1000._EB   SELECT CASE (RN%MODE)      CASE (MIXTURE_FRACTION_REACTION)         WRITE(LU_OUTPUT,'(A,F8.3)')  '   Stoich. Coeff., O_2           ',RN%NU_O2         WRITE(LU_OUTPUT,'(A,F8.3)')  '   Stoich. Coeff., CO_2          ',RN%NU_CO2         WRITE(LU_OUTPUT,'(A,F8.3)')  '   Stoich. Coeff., H2O           ',RN%NU_H2O         WRITE(LU_OUTPUT,'(A,F8.3)')  '   Stoich. Coeff., Soot          ',RN%NU_SOOT         WRITE(LU_OUTPUT,'(A,F8.3)')  '   Stoich. Coeff., CO            ',RN%NU_CO           WRITE(LU_OUTPUT,'(A,F8.3)')  '   Stoich. Coeff., N_2           ',RN%NU_N2                    WRITE(LU_OUTPUT,'(A,F8.3)')  '   Stoich. Coeff., Other         ',RN%NU_OTHER         WRITE(LU_OUTPUT,'(A,F8.3)')  '   Stoichiometric Value of Z     ',RN%Z_F      CASE (FINITE_RATE_REACTION)         DO NN=1,N_SPECIES            WRITE(LU_OUTPUT,'(A,A15,F8.3)')  '   Stoich. Coeff. ',TRIM(SPECIES(NN)%NAME),RN%NU(NN)          ENDDO         DO NN=1,N_SPECIES            IF(RN%N(NN)==-999._EB) THEN               WRITE(LU_OUTPUT,'(A,A15,F8.3)')  '    Rate Exponent ',TRIM(SPECIES(NN)%NAME),0.             ELSE               WRITE(LU_OUTPUT,'(A,A15,F8.3)')  '    Rate Exponent ',TRIM(SPECIES(NN)%NAME),RN%N(NN)             ENDIF         ENDDO   END SELECTENDDO REACTION_LOOP! Print out information about materials WRITE(LU_OUTPUT,'(//A,I2)')  ' Material Information' MATL_LOOP: DO N=1,N_MATL   ML => MATERIAL(N)   WRITE(LU_OUTPUT,'(/I4,1X,A)')    N,MATL_NAME(N)   WRITE(LU_OUTPUT,'(A,F8.3)')    '     Emissivity                   ',ML%EMISSIVITY   WRITE(LU_OUTPUT,'(A,F8.1)')    '     Density (kg/m3)              ',ML%RHO_S   IF (ML%C_S>0._EB) THEN      WRITE(LU_OUTPUT,'(A,F8.2)') '     Specific Heat (kJ/kg/K)      ',ML%C_S*0.001_EB   ELSE      NR = -NINT(ML%C_S)      WRITE(LU_OUTPUT,'(A,F8.2)') '     Specific Heat (kJ/kg/K)      ',EVALUATE_RAMP(TMPA,0._EB,NR)   ENDIF   IF (ML%K_S>0._EB) THEN      WRITE(LU_OUTPUT,'(A,F8.4)') '     Conductivity (W/m/K)         ',ML%K_S   ELSE      NR = -NINT(ML%K_S)      WRITE(LU_OUTPUT,'(A,F8.4)') '     Conductivity (W/m/K)         ',EVALUATE_RAMP(TMPA,0._EB,NR)   ENDIF   IF (ML%KAPPA_S<1.0E4_EB) THEN      WRITE(LU_OUTPUT,'(A,F8.2)') '     Absorption coefficient (1/m) ',ML%KAPPA_S   ENDIF   DO NN=1,ML%N_REACTIONS      WRITE(LU_OUTPUT,'(A,I2)')   '     Reaction ', NN      IF (ML%NU_RESIDUE(NN) > 0._EB) WRITE(LU_OUTPUT,'(A,A,A,I2,A,F6.3)') &                            '        Residue: ',TRIM(ML%RESIDUE_MATL_NAME(NN)),', Material Index: ', &                                                     ML%RESIDUE_MATL_INDEX(NN),', Yield: ',ML%NU_RESIDUE(NN)      WRITE(LU_OUTPUT,'(A,F8.2)') '        Fuel Yield : ',ML%NU_FUEL(NN)      WRITE(LU_OUTPUT,'(A,F8.2)') '        Water Yield: ',ML%NU_WATER(NN)      WRITE(LU_OUTPUT,'(A,ES9.2)')'        A (1/s)    : ',ML%A(NN)      WRITE(LU_OUTPUT,'(A,ES9.2)')'        E (kJ/kmol): ',ML%E(NN)/1000.      WRITE(LU_OUTPUT,'(A,ES9.2)')'        H_R (kJ/kg): ',ML%H_R(NN)/1000.      WRITE(LU_OUTPUT,'(A,F8.2)') '        N_S        : ',ML%N_S(NN)      IF (ML%TMP_THR(NN)>0._EB) THEN      WRITE(LU_OUTPUT,'(A,F8.2)') '        Threshold temperature (C): ',ML%TMP_THR(NN)-TMPM      WRITE(LU_OUTPUT,'(A,F8.2)') '        N_T        : ',ML%N_T(NN)      ENDIF   ENDDO   IF (ML%PYROLYSIS_MODEL==PYROLYSIS_LIQUID) THEN      WRITE(LU_OUTPUT,'(A)')      '     Liquid evaporation reaction'      WRITE(LU_OUTPUT,'(A,F8.2)') '        Fuel Yield             : ',ML%NU_FUEL(1)      WRITE(LU_OUTPUT,'(A,F9.2)') '        Water Yield            : ',ML%NU_WATER(1)      WRITE(LU_OUTPUT,'(A,F8.2)') '        Boiling temperature (C): ',ML%TMP_BOIL(1)-TMPM      WRITE(LU_OUTPUT,'(A,ES9.2)')'        H_R (kJ/kg)            : ',ML%H_R(1)/1000.   ENDIFENDDO MATL_LOOP ! Print out information about surface types WRITE(LU_OUTPUT,'(//A,I2)')  ' Surface Conditions' SURFLOOP: DO N=0,N_SURF-1    SF => SURFACE(N)   IF (N==0) THEN      WRITE(LU_OUTPUT,'(/I4,1X,A,A)')  N,SURF_NAME(N),' (DEFAULT)'   ELSE      WRITE(LU_OUTPUT,'(/I4,1X,A)')    N,SURF_NAME(N)   ENDIF   IF (N==OPEN_SURF_INDEX) THEN      WRITE(LU_OUTPUT,'(A)')      '     Passive Vent to Atmosphere'      CYCLE SURFLOOP   ENDIF   IF (N==MIRROR_SURF_INDEX) THEN      WRITE(LU_OUTPUT,'(A)')      '     Symmetry Plane'      CYCLE SURFLOOP   ENDIF    THICK: IF (SF%THERMAL_BC_INDEX == THERMALLY_THICK) THEN      WRITE(LU_OUTPUT,'(A)')      '     Material List'      DO NN=1,SF%N_MATL         WRITE(LU_OUTPUT,'(8X,I3,2X,A)') NN,SF%MATL_NAME(NN)      ENDDO      IF (SF%SHRINK)          WRITE(LU_OUTPUT,'(A)')'     Shrinking wall'      DO NL=1,SF%N_LAYERS         WRITE(LU_OUTPUT,'(A,I2)')      '     Layer ',NL         WRITE(LU_OUTPUT,'(A,F8.3)')    '        Thickness   (m): ',SF%LAYER_THICKNESS(NL)         WRITE(LU_OUTPUT,'(A,F8.3)')    '        Density (kg/m3): ',SF%LAYER_DENSITY(NL)         DO NN=1,SF%N_LAYER_MATL(NL)            WRITE(LU_OUTPUT,'(8X,A,A,F7.2)') TRIM(SF%LAYER_MATL_NAME(NL,NN)),', Mass fraction: ',SF%LAYER_MATL_FRAC(NL,NN)         ENDDO      ENDDO      WRITE(LU_OUTPUT,'(A)')         '     Solid Phase Nodes (m):      '      DO I=0,SF%N_CELLS         WRITE(LU_OUTPUT,'(10X,I3, F10.5)') I,SF%X_S(I)      ENDDO      IF (SF%GEOMETRY==SURF_CARTESIAN) THEN         IF (SF%BACKING==VOID)      WRITE(LU_OUTPUT,'(A)') '     Backing to void'         IF (SF%BACKING==INSULATED) WRITE(LU_OUTPUT,'(A)') '     Insulated Backing'         IF (SF%BACKING==EXPOSED)   WRITE(LU_OUTPUT,'(A)') '     Exposed Backing'      ENDIF      IF (SF%GEOMETRY==SURF_CYLINDRICAL) WRITE(LU_OUTPUT,'(A)') '     Assumed cylindrical symmetry'   ENDIF THICK    IF (SF%THERMAL_BC_INDEX==SPECIFIED_TEMPERATURE) &                                  WRITE(LU_OUTPUT,'(A,F8.1)') '     Wall or Vent Temperature (C)', SF%TMP_FRONT - TMPM   IF (SF%VEL/=-999._EB)             WRITE(LU_OUTPUT,'(A,F8.3)') '     Normal Velocity (m/s)       ', SF%VEL   IF (SF%MASS_FLUX_TOTAL/=-999._EB) WRITE(LU_OUTPUT,'(A,F8.3)') '     Total Mass Flux (kg/m^2/s)  ', SF%MASS_FLUX_TOTAL   IF (SF%VOLUME_FLUX/=-999._EB)     WRITE(LU_OUTPUT,'(A,F8.3)') '     Volume Flux (m**3/s)        ', SF%VOLUME_FLUX   IF (N_SPECIES>0 .AND. .NOT.MIXTURE_FRACTION) THEN      DO NN=1,N_SPECIES         IF (SF%MASS_FRACTION(NN)>=0._EB) WRITE(LU_OUTPUT,'(A,I1,A,8X,F6.3)') &                  '     

⌨️ 快捷键说明

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