Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FDS Source: Add init.f90 error codes #12298

Merged
merged 1 commit into from
Dec 18, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 28 additions & 2 deletions Manuals/FDS_User_Guide/FDS_User_Guide.tex
Original file line number Diff line number Diff line change
Expand Up @@ -1174,6 +1174,7 @@ \subsection{Basics}


\subsection{Thin Obstructions}
\label{info:thin_obstructions}

An obstruction that is relatively thin compared to the gas phase numerical grid spacing is approximated as an infinitely thin sheet. These obstructions, like window panes, form a flow and (partial) radiation barrier, but if the numerical mesh is coarse relative to its thickness, the obstruction might be unnecessarily large if it is assumed to be one layer of mesh cells thick. Smokeview renders this obstruction as a thin sheet, but it is allowed to have thermally-thick boundary conditions.

Expand Down Expand Up @@ -2457,6 +2458,7 @@ \subsection{3-D Heat Conduction (Beta)}
The 3-D conduction algorithm in FDS makes use of the 1-D solver. Every third solid phase time step, the temperature in one of the three coordinate directions is updated in time, and between each time step, this updated temperature field is transferred to the other two directions. In this way, the 3-D temperature field is updated over the course of three calls to the solid phase solver.

\subsubsection{Limitations}
\label{info:HT3D_Limitations}

\begin{enumerate}
\item {\ct HT3D} cannot be applied to an exterior boundary; it must be applied to an {\ct OBST} for which at least one face in each coordinate direction is exposed.
Expand Down Expand Up @@ -2533,6 +2535,7 @@ \subsubsection{Example: Insulated Structural Steel}


\subsubsection{Surface Linings}
\label{info:linings}

In some applications, you might want to perform 3-D heat conduction within collections of abutting obstructions, each with a {\ct MATL\_ID}. The obstructions might have some outer lining, like fabric on sofa cushions, for example, and this lining is thinner than a single gas phase grid cell. In other words, this lining material cannot be represented by an {\ct OBST}. However, you can specify one or more layers of multi-component materials using {\ct MATL\_ID}, {\ct MATL\_MASS\_FRACTION}, and {\ct THICKNESS} on the {\ct SURF} line(s) that are assigned to the {\ct OBST}s that also have specified {\ct MATL\_ID}s and {\ct MATL\_MASS\_FRACTION}s. For example, the following lines of input define a single obstruction made of steel that is lined with two layers of insulation made up of three different components:
\begin{lstlisting}
Expand Down Expand Up @@ -9216,6 +9219,7 @@ \section{Device Output: The \texorpdfstring{{\tt DEVC}}{DEVC} Namelist Group}
There are two types of {\ct DEVC} output. The first is a time history of the given {\ct QUANTITY} over the course of the simulation. The second is a time-averaged profile consisting of a linear array of point devices. Each is explained below.

\subsection{Gas Phase Quantity at a Single Point}
\label{info:DEVC_position}

If you just want to record the time history of, say, the temperature at a particular point in the gas, add a line like:
\begin{lstlisting}
Expand Down Expand Up @@ -13384,15 +13388,37 @@ \chapter{Error Codes}
381 \> {\ct Need more spectral band limits. } \> Section~\ref{info:RADI_Wide_Band} \\
382 \> {\ct Spectral band limits should be given in ascending order. } \> Section~\ref{info:RADI_Wide_Band} \\
\> \> \\
390 \> {\ct RAMP \ldots\ is externally controlled and requires an INITIAL\_VALUE. } \> Section~\ref{info:external_control} \\
390 \> {\ct RAMP \ldots\ is externally controlled, requires INITIAL\_VALUE. } \> Section~\ref{info:external_control} \\
391 \> {\ct RAMP \ldots\ not found. } \> Chapter~\ref{info:RAMP} \\
392 \> {\ct RAMP \ldots\ has only one point. } \> Chapter~\ref{info:RAMP} \\
393 \> {\ct RAMP \ldots\ cannot specify both CTRL\_ID and DEVC\_ID. } \> Chapter~\ref{info:RAMPDEVC} \\
394 \> {\ct RAMP \ldots\ variable T must be monotonically increasing. } \> Chapter~\ref{info:RAMP} \\
395 \> {\ct RAMP with EXTERNAL\_FILE is present but no EXTERNAL\_FILENAME \ldots\ } \> Section~\ref{info:external_control} \\
395 \> {\ct RAMP with EXTERNAL\_FILE is present but no EXTERNAL\_FILENAME } \> Section~\ref{info:external_control} \\
396 \> {\ct Row \ldots\ of \ldots\ has a bad 1st latitude. } \> Section~\ref{info:spraypattern} \\
397 \> {\ct Row \ldots\ of \ldots\ has a bad 2nd latitude. } \> Section~\ref{info:spraypattern} \\

401 \> {\ct SURF \ldots\ cannot be applied to a thin obstruction \ldots\ } \> Section~\ref{info:thin_obstructions} \\
402 \> {\ct VENT \ldots\ cannot be applied to a thin obstruction \ldots\ } \> Section~\ref{info:thin_obstructions} \\
403 \> {\ct HT3D solid must have at least one face exposed \ldots\ } \> Section~\ref{info:HT3D_Limitations} \\
404 \> {\ct HT3D thin solid must have at least one face exposed \ldots\ } \> Section~\ref{info:HT3D_Limitations} \\
405 \> {\ct MESH \ldots\ can stretch in at most 2 coordinate directions. } \> Section~\ref{info:TRNX} \\
406 \> {\ct MESH \ldots\ Poisson initialization error: \ldots\ } \> Section~\ref{info:Errors} \\
407 \> {\ct DEVC \ldots\ requires repositioning. } \> Section~\ref{info:DEVC_position} \\
408 \> {\ct DEVC \ldots\ must be associated with a heat-conducting surface. } \> Section~\ref{info:solidoutputquantities} \\
409 \> {\ct PROF \ldots\ requires repositioning. } \> Section~\ref{info:PROF} \\
410 \> {\ct PROF \ldots\ must be associated with a heat-conducting surface. } \> Section~\ref{info:solidoutputquantities} \\
411 \> {\ct MESH \ldots\ is not in alignment with MESH \ldots\ } \> Section~\ref{info:mesh_alignment} \\
412 \> {\ct SURF \ldots\ must specify velocity boundary condition ... } \> Section~\ref{info:MASS_FLUX} \\
413 \> {\ct SURF \ldots\ cannot be applied below GROUND\_LEVEL. } \> Section~\ref{info:wall_of_wind} \\
414 \> {\ct RAMP\_V\_X assigned to SURF \ldots\ } \> Section~\ref{info:RAMP_Vel_Prof} \\
415 \> {\ct RAMP\_V\_Y assigned to SURF \ldots\ } \> Section~\ref{info:RAMP_Vel_Prof} \\
416 \> {\ct RAMP\_V\_Z assigned to SURF \ldots\ } \> Section~\ref{info:RAMP_Vel_Prof} \\
417 \> {\ct SURF \ldots\ cannot be applied to an exterior boundary. } \> Section~\ref{info:HT3D_Limitations} \\
418 \> {\ct SURF \ldots\ layers are thicker than the underlying obstruction. } \> Section~\ref{info:linings} \\
419 \> {\ct MESH \ldots\ UVWFILE \ldots\ does not exist. } \> Section~\ref{info:CSVF} \\
420 \> {\ct MESH \ldots\ TMPFILE \ldots\ does not exist. } \> Section~\ref{info:CSVF} \\
421 \> {\ct MESH \ldots\ SPECFILE \ldots\ does not exist. } \> Section~\ref{info:CSVF} \\

\end{tabbing}


Expand Down
62 changes: 25 additions & 37 deletions Source/init.f90
Original file line number Diff line number Diff line change
Expand Up @@ -1105,15 +1105,15 @@ SUBROUTINE INITIALIZE_MESH_VARIABLES_2(NM)

IF (.NOT.SOLID_CELL) THEN
IF ( (ABS(B1%U_NORMAL_0)>TWO_EPSILON_EB .OR. ANY(SF%LEAK_PATH>=0)) .AND. WC%OBST_INDEX>0 ) THEN
WRITE(LU_ERR,'(A,A,A,I0)') 'ERROR: SURF ',TRIM(SF%ID),' cannot be applied to a thin obstruction, OBST #',&
WRITE(LU_ERR,'(A,A,A,I0)') 'ERROR(401): SURF ',TRIM(SF%ID),' cannot be applied to a thin obstruction, OBST #',&
M%OBSTRUCTION(WC%OBST_INDEX)%ORDINAL
STOP_STATUS = SETUP_STOP
RETURN
ENDIF
IF (WC%VENT_INDEX>0 .AND. WC%OBST_INDEX>0) THEN
VT => M%VENTS(WC%VENT_INDEX)
IF (VT%BOUNDARY_TYPE==HVAC_BOUNDARY) THEN
WRITE(LU_ERR,'(A,A,A,I0)') 'ERROR: VENT ',TRIM(VT%ID),' cannot be applied to a thin obstruction, OBST #',&
WRITE(LU_ERR,'(A,A,A,I0)') 'ERROR(402): VENT ',TRIM(VT%ID),' cannot be applied to a thin obstruction, OBST #',&
M%OBSTRUCTION(WC%OBST_INDEX)%ORDINAL
STOP_STATUS = SETUP_STOP
RETURN
Expand Down Expand Up @@ -1339,13 +1339,6 @@ SUBROUTINE DEFINE_EDGE(II,JJ,KK,IOR,IEC,NM,OBST_INDEX,IERR)

! Decide what to do based on whether or not adjacent tiles exist

IF (IW1==-1 .OR. IW2==-1) THEN
WRITE(LU_ERR,'(A,I2,A,3I3)') 'ERROR: Edge initialization failed; Mesh: ',NM,', Cell: ',II,JJ,KK
STOP_STATUS = SETUP_STOP
IERR = 1
RETURN
ENDIF

IF (IW1==0 .AND. IW2==0) RETURN
IF (IW1> 0 .AND. IW2==0) IW = IW1
IF (IW1==0 .AND. IW2> 0) IW = IW2
Expand Down Expand Up @@ -1897,7 +1890,8 @@ SUBROUTINE INITIALIZE_HT3D_WALL_CELLS(NM)
DO IOR=1,3
IF (ABS(BC%IOR)==IOR) CYCLE
IF (.NOT.IOR_AVOID(-IOR) .AND. .NOT.IOR_AVOID(IOR)) THEN
WRITE(LU_ERR,'(A,I0,A,I0)') 'ERROR: HT3D solid improperly specified, Mesh=',NM,', IOR=',IOR
WRITE(LU_ERR,'(A,I0,A,I0)') 'ERROR: HT3D solid must have at least one face exposed in each direction, Mesh=',NM,&
', IOR=',IOR
STOP_STATUS = SETUP_STOP
RETURN
ENDIF
Expand Down Expand Up @@ -1994,7 +1988,8 @@ SUBROUTINE INITIALIZE_HT3D_WALL_CELLS(NM)
DO IOR=1,3
IF (ABS(BC%IOR)==IOR) CYCLE
IF (.NOT.IOR_AVOID(-IOR) .AND. .NOT.IOR_AVOID(IOR)) THEN
WRITE(LU_ERR,'(A,I0,A,I0)') 'ERROR: HT3D thin solid improperly specified, Mesh=',NM,', IOR=',IOR
WRITE(LU_ERR,'(A,I0,A,I0)') 'ERROR(404): HT3D thin solid must have at least one face exposed, Mesh=',NM,&
', IOR=',IOR
STOP_STATUS = SETUP_STOP
RETURN
ENDIF
Expand Down Expand Up @@ -2217,7 +2212,7 @@ SUBROUTINE INITIALIZE_POISSON_SOLVER(NM)
SELECT CASE(PRES_FLAG)
CASE DEFAULT
IF (NOC(1)/=0 .AND. NOC(2)/=0 .AND. NOC(3)/=0) THEN
WRITE(LU_ERR,'(A,I3)') 'ERROR: Stretch at most 2 coordinate directions in MESH ',NM
WRITE(LU_ERR,'(A,I0,A)') 'ERROR(405): MESH ',NM,' can stretch in at most 2 coordinate directions.'
STOP_STATUS = SETUP_STOP
IERR = 1
RETURN
Expand Down Expand Up @@ -2486,7 +2481,7 @@ SUBROUTINE INITIALIZE_POISSON_SOLVER(NM)
! Check for errors with Poisson solver initialization

IF (IERR/=0) THEN
WRITE(LU_ERR,'(A,I2,A,I3)') 'ERROR: Poisson initialization error, Number=',IERR, ', Mesh=',NM
WRITE(LU_ERR,'(A,I0,A,I0)') 'ERROR(406): MESH ',NM,' Poisson initialization error: ',IERR
STOP_STATUS = SETUP_STOP
RETURN
ENDIF
Expand Down Expand Up @@ -2547,8 +2542,7 @@ SUBROUTINE INITIALIZE_DEVICES(NM)
IF (IW==0 .AND. CC_IBM) CALL GET_CFACE_INDEX(NM,IIG,JJG,KKG,DV%X,DV%Y,DV%Z,ICF)

IF (IW==0 .AND. ICF==0 .AND. DV%SPATIAL_STATISTIC=='null') THEN
WRITE(LU_ERR,'(A,I0,A,A)') 'ERROR: Reposition DEVC No.',DV%ORDINAL,', ID = ',TRIM(DV%ID)
WRITE(LU_ERR,'(A)') 'FDS cannot determine which boundary cell to assign.'
WRITE(LU_ERR,'(A,A,A)') 'ERROR(407): DEVC ',TRIM(DV%ID),' requires repositioning.'
STOP_STATUS = SETUP_STOP
RETURN
ELSEIF (IW>0) THEN
Expand All @@ -2572,7 +2566,7 @@ SUBROUTINE INITIALIZE_DEVICES(NM)

IF (OUTPUT_QUANTITY(DV%QUANTITY_INDEX(1))%INSIDE_SOLID) THEN
IF (SURFACE(SURF_INDEX)%THERMAL_BC_INDEX /= THERMALLY_THICK) THEN
WRITE(LU_ERR,'(A,I3,A)') 'ERROR: DEVC ',N,' must be associated with a heat-conducting surface'
WRITE(LU_ERR,'(A,A,A)') 'ERROR(408): DEVC ',TRIM(DV%ID),' must be associated with a heat-conducting surface.'
STOP_STATUS = SETUP_STOP
RETURN
ENDIF
Expand Down Expand Up @@ -2646,7 +2640,7 @@ SUBROUTINE INITIALIZE_PROFILES(NM)
SF => SURFACE(M%WALL(IW)%SURF_INDEX)
ONE_D => M%BOUNDARY_ONE_D(M%WALL(IW)%OD_INDEX)
ELSE
WRITE(LU_ERR,'(A,I0,A)') 'ERROR: Reposition PROF No. ',PF%ORDINAL, '. FDS cannot determine which boundary cell to assign'
WRITE(LU_ERR,'(A,I0,A)') 'ERROR(409): PROF ',PF%ORDINAL,' requires repositioning.'
STOP_STATUS = SETUP_STOP
RETURN
ENDIF
Expand All @@ -2658,7 +2652,7 @@ SUBROUTINE INITIALIZE_PROFILES(NM)
ENDIF

IF (SF%THERMAL_BC_INDEX/=THERMALLY_THICK) THEN
WRITE(LU_ERR,'(A,I3,A)') 'ERROR: PROFile ',N, ' must be associated with a heat-conducting surface'
WRITE(LU_ERR,'(A,I0,A)') 'ERROR(410): PROF ',N,' must be associated with a heat-conducting surface.'
STOP_STATUS = SETUP_STOP
RETURN
ENDIF
Expand Down Expand Up @@ -3024,7 +3018,7 @@ SUBROUTINE INIT_WALL_CELL(NM,I,J,K,OBST_INDEX,IW,IOR,SURF_INDEX,IERR,TT)
! Check to see if the current interpolated cell face spans more than one other mesh

IF (NOM_CHECK(0)/=NOM_CHECK(1)) THEN
WRITE(LU_ERR,'(A,I3,A,I3)') 'ERROR: MESH ',NM,' is not in alignment with MESH ',MAXVAL(NOM_CHECK)
WRITE(LU_ERR,'(A,I0,A,I0)') 'ERROR(411): MESH ',NM,' is not in alignment with MESH ',MAXVAL(NOM_CHECK)
STOP_STATUS = SETUP_STOP
IERR = 1
RETURN
Expand All @@ -3043,7 +3037,7 @@ SUBROUTINE INIT_WALL_CELL(NM,I,J,K,OBST_INDEX,IW,IOR,SURF_INDEX,IERR,TT)
IF (ABS( ((MM%Z(KKO_MAX)-MM%Z(KKO_MIN-1))-(M%Z(K)-M%Z(K-1))) / MM%DZ(KKO_MIN))>ALIGNMENT_TOLERANCE ) ALIGNED = .FALSE.
ENDIF
IF (.NOT.ALIGNED) THEN
WRITE(LU_ERR,'(A,I3,A,I3)') 'ERROR: MESH ',NM,' is out of alignment with MESH ',NOM
WRITE(LU_ERR,'(A,I0,A,I0)') 'ERROR(411): MESH ',NM,' is out of alignment with MESH ',NOM
STOP_STATUS = SETUP_STOP
IERR = 1
RETURN
Expand All @@ -3061,7 +3055,7 @@ SUBROUTINE INIT_WALL_CELL(NM,I,J,K,OBST_INDEX,IW,IOR,SURF_INDEX,IERR,TT)
IF ( (M%DY(J)>1.01_EB*MM%DY(JJO_MIN)) .AND. (M%DX(I)<0.99_EB*MM%DX(IIO_MIN)) ) ALIGNED = .FALSE.
END SELECT
IF (.NOT.ALIGNED) THEN
WRITE(LU_ERR,'(A,I3,A,I3)') 'ERROR: MESH ',NM,' is finer in one direction and coarser in the other than MESH ',NOM
WRITE(LU_ERR,'(A,I0,A,I0)') 'ERROR(411): MESH ',NM,' is out of alignment with MESH ',NOM
STOP_STATUS = SETUP_STOP
IERR = 1
RETURN
Expand Down Expand Up @@ -3276,7 +3270,7 @@ SUBROUTINE INIT_WALL_CELL(NM,I,J,K,OBST_INDEX,IW,IOR,SURF_INDEX,IERR,TT)
SF%MASS_FLUX = -RHOA*(RSUM0/RSUM_F)*(TMPA/SF%TMP_FRONT)*SF%MASS_FRACTION*B1%U_NORMAL_0
SF%SPECIES_BC_INDEX = SPECIFIED_MASS_FLUX
ELSE
CALL SHUTDOWN('ERROR: SURF: '//TRIM(SF%ID)//' must specify velocity boundary condition for conversion',&
CALL SHUTDOWN('ERROR(412): SURF: '//TRIM(SF%ID)//' must specify velocity boundary condition for conversion',&
PROCESS_0_ONLY=.FALSE.)
IERR = 1
RETURN
Expand Down Expand Up @@ -3365,7 +3359,7 @@ SUBROUTINE INIT_WALL_CELL(NM,I,J,K,OBST_INDEX,IW,IOR,SURF_INDEX,IERR,TT)

IF (SF%PROFILE==ATMOSPHERIC_PROFILE) THEN
IF (M%ZC(K)<GROUND_LEVEL) THEN
CALL SHUTDOWN('ERROR: SURF '//TRIM(SF%ID)//' cannot be applied below GROUND_LEVEL',PROCESS_0_ONLY=.FALSE.)
CALL SHUTDOWN('ERROR(413): SURF '//TRIM(SF%ID)//' cannot be applied below GROUND_LEVEL.',PROCESS_0_ONLY=.FALSE.)
IERR = 1
RETURN
ENDIF
Expand All @@ -3376,23 +3370,23 @@ SUBROUTINE INIT_WALL_CELL(NM,I,J,K,OBST_INDEX,IW,IOR,SURF_INDEX,IERR,TT)
SELECT CASE(ABS(IOR))
CASE(1)
IF (SF%RAMP(VELO_PROF_X)%ID/='null') THEN
CALL SHUTDOWN('ERROR: RAMP_V_X assigned to SURF '//TRIM(SF%ID),PROCESS_0_ONLY=.FALSE.)
CALL SHUTDOWN('ERROR(414): RAMP_V_X assigned to SURF '//TRIM(SF%ID),PROCESS_0_ONLY=.FALSE.)
IERR = 1
RETURN
ENDIF
B1%U_NORMAL_0 = B1%U_NORMAL_0*EVALUATE_RAMP(M%YC(J),SF%RAMP(VELO_PROF_Y)%INDEX,TAU=1._EB)
B1%U_NORMAL_0 = B1%U_NORMAL_0*EVALUATE_RAMP(M%ZC(K),SF%RAMP(VELO_PROF_Z)%INDEX,TAU=1._EB)
CASE(2)
IF (SF%RAMP(VELO_PROF_Y)%ID/='null') THEN
CALL SHUTDOWN('ERROR: RAMP_V_Y assigned to SURF '//TRIM(SF%ID),PROCESS_0_ONLY=.FALSE.)
CALL SHUTDOWN('ERROR(415): RAMP_V_Y assigned to SURF '//TRIM(SF%ID),PROCESS_0_ONLY=.FALSE.)
IERR = 1
RETURN
ENDIF
B1%U_NORMAL_0 = B1%U_NORMAL_0*EVALUATE_RAMP(M%XC(I),SF%RAMP(VELO_PROF_X)%INDEX,TAU=1._EB)
B1%U_NORMAL_0 = B1%U_NORMAL_0*EVALUATE_RAMP(M%ZC(K),SF%RAMP(VELO_PROF_Z)%INDEX,TAU=1._EB)
CASE(3)
IF (SF%RAMP(VELO_PROF_Z)%ID/='null') THEN
CALL SHUTDOWN('ERROR: RAMP_V_Z assigned to SURF '//TRIM(SF%ID),PROCESS_0_ONLY=.FALSE.)
CALL SHUTDOWN('ERROR(416): RAMP_V_Z assigned to SURF '//TRIM(SF%ID),PROCESS_0_ONLY=.FALSE.)
IERR = 1
RETURN
ENDIF
Expand Down Expand Up @@ -3774,7 +3768,7 @@ SUBROUTINE FIND_WALL_BACK_INDEX(NM,IW)
OM => MESHES(NOM)
ELSEIF (IW<=M%N_EXTERNAL_WALL_CELLS .AND. (SF%HT_DIM>1.OR.SF%VARIABLE_THICKNESS)) THEN
! Do not apply HT3D to VARIABLE_THICKNESS exterior boundary
MESSAGE = 'ERROR: SURF '//TRIM(SURFACE(WC%SURF_INDEX)%ID)//' cannot be applied to an exterior boundary'
WRITE(MESSAGE,'(3A)') 'ERROR(417): SURF ',TRIM(SURFACE(WC%SURF_INDEX)%ID),' cannot be applied to an exterior boundary.'
CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.)
RETURN
ENDIF
Expand Down Expand Up @@ -3898,7 +3892,7 @@ SUBROUTINE FIND_WALL_BACK_INDEX(NM,IW)
CALL ADD_MATERIAL(N_MATLS_NEW,SF_BACK%MATL_INDEX,MATL_INDEX_NEW) ! Add new materials from the back surface lining
TOTAL_THICKNESS = SUM(LAYER_THICKNESS(1:N_LAYERS)) ! Thickness of the solid made up of OBSTs
IF (TOTAL_THICKNESS<LINING_THICKNESS+BACK_LINING_THICKNESS) THEN
MESSAGE = 'ERROR: The layer(s) of SURF '//TRIM(SF%ID)//' are thicker than the underlying obstruction.'
WRITE(MESSAGE,'(3A)') 'ERROR(418): SURF ',TRIM(SF%ID),' layers are thicker than the underlying obstruction.'
CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.)
RETURN
ENDIF
Expand Down Expand Up @@ -4972,7 +4966,6 @@ SUBROUTINE UVW_INIT(NM,FN_UVW)
INTEGER, INTENT(IN) :: NM
CHARACTER(80), INTENT(IN) :: FN_UVW
CHARACTER(MESSAGE_LENGTH) :: MESSAGE
CHARACTER(3) :: STR
TYPE(WALL_TYPE), POINTER :: WC
TYPE(BOUNDARY_COORD_TYPE), POINTER :: BC
TYPE(BOUNDARY_PROP1_TYPE), POINTER :: B1
Expand All @@ -4983,8 +4976,7 @@ SUBROUTINE UVW_INIT(NM,FN_UVW)
OPEN(UNIT=LU_UVW,FILE=FN_UVW,FORM='FORMATTED',STATUS='OLD',IOSTAT=IERROR)

IF (IERROR/=0) THEN
WRITE(STR,'(I0)') NM
MESSAGE = 'ERROR: Problem with MESH '//TRIM(ADJUSTL(STR))//'; UVWFILE '//TRIM(FN_UVW)//' does not exist.'
WRITE(MESSAGE,'(A,I0,A,A)') 'ERROR(419): MESH ',NM,', UVWFILE ',TRIM(FN_UVW),' does not exist.'
CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.)
RETURN
ENDIF
Expand Down Expand Up @@ -5067,16 +5059,14 @@ SUBROUTINE TMP_INIT(NM,FN_TMP)
INTEGER, INTENT(IN) :: NM
CHARACTER(80), INTENT(IN) :: FN_TMP
CHARACTER(MESSAGE_LENGTH) :: MESSAGE
CHARACTER(3) :: STR

CALL POINT_TO_MESH(NM)

LU_TMP = GET_FILE_NUMBER()
OPEN(UNIT=LU_TMP,FILE=FN_TMP,FORM='FORMATTED',STATUS='OLD',IOSTAT=IERROR)

IF (IERROR/=0) THEN
WRITE(STR,'(I0)') NM
MESSAGE = 'ERROR: Problem with MESH '//TRIM(ADJUSTL(STR))//'; TMPFILE '//TRIM(FN_TMP)//' does not exist.'
WRITE(MESSAGE,'(A,I0,3A)') 'ERROR(420): MESH ',NM,', TMPFILE ',TRIM(FN_TMP),' does not exist.'
CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.)
RETURN
ENDIF
Expand Down Expand Up @@ -5133,16 +5123,14 @@ SUBROUTINE SPEC_INIT(NM,FN_SPEC)
INTEGER, INTENT(IN) :: NM
CHARACTER(80), INTENT(IN) :: FN_SPEC
CHARACTER(MESSAGE_LENGTH) :: MESSAGE
CHARACTER(3) :: STR

CALL POINT_TO_MESH(NM)

LU_SPEC = GET_FILE_NUMBER()
OPEN(UNIT=LU_SPEC,FILE=FN_SPEC,FORM='FORMATTED',STATUS='OLD',IOSTAT=IERROR)

IF (IERROR/=0) THEN
WRITE(STR,'(I0)') NM
MESSAGE = 'ERROR: Problem with MESH '//TRIM(ADJUSTL(STR))//'; SPECFILE '//TRIM(FN_SPEC)//' does not exist.'
WRITE(MESSAGE,'(A,I0,3A)') 'ERROR(421): MESH ',NM,', SPECFILE ',TRIM(FN_SPEC),' does not exist.'
CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.)
RETURN
ENDIF
Expand Down
Loading