From 3c68eb8776d39760fac1a62a3b5dfc9ef5602b89 Mon Sep 17 00:00:00 2001 From: marcosvanella Date: Mon, 8 Jan 2024 14:57:10 -0500 Subject: [PATCH] FDS User Guide : Add error codes for geometries. --- Manuals/FDS_User_Guide/FDS_User_Guide.tex | 37 ++++++++++- Source/geom.f90 | 77 ++++++++++++----------- 2 files changed, 75 insertions(+), 39 deletions(-) diff --git a/Manuals/FDS_User_Guide/FDS_User_Guide.tex b/Manuals/FDS_User_Guide/FDS_User_Guide.tex index c3f7d79a503..d60213153e4 100644 --- a/Manuals/FDS_User_Guide/FDS_User_Guide.tex +++ b/Manuals/FDS_User_Guide/FDS_User_Guide.tex @@ -1545,7 +1545,8 @@ \subsection{Reading Geometry Node Locations And Connectivity Data From Binary} This manner of loading large geometries avoids the testing and reading of all lines related to these arrays on the FDS input file. It is particularly efficient in large parallel calculations, where parallel file systems are used. See Sec.~\ref{inout:bingeom} for more information on geometry I/O binary format. If a different name than the default is used, it can be specified in the field {\ct BINARY\_FILE}. The location directory can also be added in the {\ct BINARY\_FILE} string. -Terrains can also be read and written in binary format, and in this case only their top surface triangulation is recorded. The binary contains their geometry information and terrain type, but the {\ct SURF\_ID} array has to be provided in the geometry line as shown above. The same requirement is needed for {\ct EXTEND\_TERRAIN} if terrain extension is desired. +Terrains can also be read and written in binary format, and in this case only their top surface triangulation is recorded. The binary contains their geometry information and terrain type, but the {\ct SURF\_ID} array has to be provided in the geometry line as shown above. +The same requirement is needed for {\ct EXTEND\_TERRAIN} if terrain extension is desired. The number of surface IDs defined in the binary file connectivities must match the number of surfaces defined in {\ct SURF\_ID}. \subsection{Handling Split Cells and Thin Geometries} @@ -13525,6 +13526,40 @@ \chapter{Error Codes} 608 \> {\ct MATL\_ID \ldots\ not found. } \> Section~\ref{info:ht1d} \\ 609 \> {\ct MULT\_ID \ldots\ not found on HOLE line \ldots\ } \> Section~\ref{info:MULT} \\ 610 \> {\ct HOLE \ldots\ Cannot overlap HOLEs with a DEVC or CTRL\_ID. } \> Section~\ref{info:HOLE} \\ + \> \> \\ +701 \> {\ct problem with GEOM, local SURF\_ID index \ldots\ out of bounds. } \> Section~\ref{info:GEOM_Basics} \\ +702 \> {\ct problem with GEOM, SURF\_IDS not defined properly. } \> Section~\ref{info:first_geom} \\ +703 \> {\ct missing SURF\_ID in \&GEOM line \ldots\ } \> Section~\ref{subsec:readbin} \\ +704 \> {\ct problem with GEOM, number of surfaces in SURF\_ID field \ldots\ } \> Section~\ref{subsec:readbin} \\ +705 \> {\ct could not read binary connectivity for GEOM \ldots\ } \> Section~\ref{subsec:readbin} \\ +706 \> {\ct GEOM Expected \ldots\ Z values, found \ldots\ } \> Section~\ref{info:terrain_geom} \\ +707 \> {\ct GEOM IJK(1) and IJK(2) on \&GEOM line needs to be at least 2. } \> Section~\ref{info:terrain_geom} \\ +708 \> {\ct GEOM At least 4 XB values \ldots\ required when using ZVALS. } \> Section~\ref{info:terrain_geom} \\ +709 \> {\ct For terrain GEOM, unconnected boundary edge at node number \ldots\ } \> Section~\ref{info:terrain_geom} \\ +710 \> {\ct For terrain GEOM, unconnected boundary edge at nodes \ldots\ } \> Section~\ref{info:terrain_geom} \\ +711 \> {\ct For terrain GEOM, same boundary vertex \ldots\ } \> Section~\ref{info:terrain_geom} \\ +712 \> {\ct For extruded Polygon GEOM, extrusion distance \ldots\ } \> Section~\ref{info:extrpolys} \\ +713 \> {\ct For extruded Polygon GEOM, Number of POLY indexes \ldots\ } \> Section~\ref{info:extrpolys} \\ +714 \> {\ct For extruded Polygon GEOM, Repeated vertex \ldots\ } \> Section~\ref{info:extrpolys} \\ +715 \> {\ct For extruded Polygon GEOM, Vertices X, Y have same position. } \> Section~\ref{info:extrpolys} \\ +716 \> {\ct problem with GEOM, the surface ID, is not defined. } \> Section~\ref{info:GEOM_Basics} \\ +717 \> {\ct problem with GEOM, vertex index out of bounds. } \> Section~\ref{info:GEOM_Basics} \\ +718 \> {\ct Out of Bounds.GEOM, FACE=, has vertex index I less than 1. } \> Section~\ref{info:GEOM_Basics} \\ +719 \> {\ct Out of Bounds.GEOM, FACE=, has vertex index I higher than \ldots\ } \> Section~\ref{info:GEOM_Basics} \\ +720 \> {\ct GEOM has currently unsupported BURN\_AWAY feature \ldots\ } \> Section~\ref{info:geom_limitations} \\ +721 \> {\ct For extruded Polygon GEOM, Node I not in the plane of \ldots\ } \> Section~\ref{info:extrpolys} \\ +722 \> {\ct GEOM Segments \ldots\ intersect in average POLY plane. } \> Section~\ref{info:extrpolys} \\ +723 \> {\ct For extruded Polygon GEOM, Not enough valid vertices \ldots\ } \> Section~\ref{info:extrpolys} \\ +724 \> {\ct For extruded Polygon GEOM, Could not triangulate polygon. } \> Section~\ref{info:extrpolys} \\ +725 \> {\ct \&GEOM, MOVE\_ID is not recognized. } \> Section~\ref{info:transform_geom} \\ +726 \> {\ct GEOM ID Unknown: Face normals are probably pointing in \ldots\ } \> Section~\ref{info:GEOM_Basics} \\ +727 \> {\ct GEOM ID=, Edge length too small at \ldots\ } \> Section~\ref{triangulated_surfaces_quality} \\ +728 \> {\ct GEOM ID=, Face area too small at \ldots\ } \> Section~\ref{triangulated_surfaces_quality} \\ +729 \> {\ct GEOM ID=, Geometry volume too small. } \> Section~\ref{triangulated_surfaces_quality} \\ +730 \> {\ct GEOM ID=, Open geometry at edge with nodes \ldots\ } \> Section~\ref{triangulated_surfaces_quality} \\ +731 \> {\ct GEOM ID=, Non manifold geometry in adjacent faces at edge \ldots\ } \> Section~\ref{triangulated_surfaces_quality} \\ +732 \> {\ct GEOM ID=, Opposite normals on triangles sharing edge with \ldots\ } \> Section~\ref{triangulated_surfaces_quality} \\ +733 \> {\ct GEOM ID=, Open geometry at edge with nodes \ldots\ } \> Section~\ref{triangulated_surfaces_quality} \\ \end{tabbing} diff --git a/Source/geom.f90 b/Source/geom.f90 index 7e93de9c047..c1c465bc168 100644 --- a/Source/geom.f90 +++ b/Source/geom.f90 @@ -11924,7 +11924,7 @@ SUBROUTINE COLLAPSE_CROSSINGS(BODINT_PLANE2,X1AXIS,X2AXIS,X3AXIS,X3RAY,X1PLN,ITI IF (POSITIVE_ERROR_TEST) THEN WRITE(LU_ERR,'(A)') " SUCCESS: GEOM ID Unknown:" ELSE - WRITE(LU_ERR,'(A)') " ERROR: GEOM ID Unknown:" + WRITE(LU_ERR,'(A)') " ERROR(726): GEOM ID Unknown:" ENDIF WRITE(LU_ERR,'(A)') " Face normals are probably pointing in the wrong direction. " WRITE(LU_ERR,'(A)') " Check they point towards the gas phase." @@ -12421,7 +12421,7 @@ SUBROUTINE CC_INIT_GEOM IF (POSITIVE_ERROR_TEST) THEN WRITE(LU_ERR,'(A,A,A)') "SUCCESS: GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" ELSE - WRITE(LU_ERR,'(A,A,A)') "ERROR: GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" + WRITE(LU_ERR,'(A,A,A)') "ERROR(727): GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" ENDIF WRITE(LU_ERR,'(A,3F12.3)') " Edge length too small at:", XYZV(IAXIS:KAXIS,NOD2) WRITE(LU_ERR,'(A,I8,A,I8,A)') " Check that Vertices:",WSELEM(NOD1),', ',WSELEM(NOD2),' are not equal.' @@ -12433,7 +12433,7 @@ SUBROUTINE CC_INIT_GEOM IF (POSITIVE_ERROR_TEST) THEN WRITE(LU_ERR,'(A,A,A)') "SUCCESS: GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" ELSE - WRITE(LU_ERR,'(A,A,A)') "ERROR: GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" + WRITE(LU_ERR,'(A,A,A)') "ERROR(727): GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" ENDIF WRITE(LU_ERR,'(A,3F12.3)') " Edge length too small at:", XYZV(IAXIS:KAXIS,NOD3) WRITE(LU_ERR,'(A,I8,A,I8,A)') " Check that Vertices:",WSELEM(NOD2),', ',WSELEM(NOD3),' are not equal.' @@ -12445,7 +12445,7 @@ SUBROUTINE CC_INIT_GEOM IF (POSITIVE_ERROR_TEST) THEN WRITE(LU_ERR,'(A,A,A)') "SUCCESS: GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" ELSE - WRITE(LU_ERR,'(A,A,A)') "ERROR: GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" + WRITE(LU_ERR,'(A,A,A)') "ERROR(727): GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" ENDIF WRITE(MESSAGE,'(A,3F12.3)') " Edge length too small at:", XYZV(IAXIS:KAXIS,NOD1) WRITE(LU_ERR,'(A,I8,A,I8,A)') " Check that Vertices:",WSELEM(NOD1),', ',WSELEM(NOD3),' are not equal.' @@ -12478,7 +12478,7 @@ SUBROUTINE CC_INIT_GEOM IF (POSITIVE_ERROR_TEST) THEN WRITE(LU_ERR,'(A,A,A)') "SUCCESS: GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" ELSE - WRITE(LU_ERR,'(A,A,A)') "ERROR: GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" + WRITE(LU_ERR,'(A,A,A)') "ERROR(728): GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" ENDIF WRITE(LU_ERR,'(A,3F12.3)') " Face area too small at:", XYZV(IAXIS:KAXIS,NOD1) WRITE(LU_ERR,*) ' Face IWSEL=', IWSEL, ', Connectivity=', WSELEM(NOD1:NOD3),', Norm Cross=', MGNRM @@ -12517,7 +12517,7 @@ SUBROUTINE CC_INIT_GEOM IF (POSITIVE_ERROR_TEST) THEN WRITE(LU_ERR,'(A,A,A)') "SUCCESS: GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" ELSE - WRITE(LU_ERR,'(A,A,A)') "ERROR: GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" + WRITE(LU_ERR,'(A,A,A)') "ERROR(729): GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" ENDIF WRITE(LU_ERR,'(A)') " Geometry volume too small." WRITE(LU_ERR,'(A)') " Face normals are probably pointing in the wrong direction. " @@ -12560,7 +12560,7 @@ SUBROUTINE CC_INIT_GEOM IF (POSITIVE_ERROR_TEST) THEN WRITE(LU_ERR,'(A,A,A)') "SUCCESS: GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" ELSE - WRITE(LU_ERR,'(A,A,A)') "ERROR: GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" + WRITE(LU_ERR,'(A,A,A)') "ERROR(730): GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" ENDIF WRITE(LU_ERR,'(A,I8,A,3F12.3,A,I8,A,3F12.3,A)') " Open geometry at edge with nodes: NOD1",SEG(NOD1),& " (", XYZV(IAXIS:KAXIS,NOD1), "), NOD2",SEG(NOD2)," (", XYZV(IAXIS:KAXIS,NOD2), ")" @@ -12575,7 +12575,7 @@ SUBROUTINE CC_INIT_GEOM IF (POSITIVE_ERROR_TEST) THEN WRITE(LU_ERR,'(A,A,A)') "SUCCESS: GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" ELSE - WRITE(LU_ERR,'(A,A,A)') "ERROR: GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" + WRITE(LU_ERR,'(A,A,A)') "ERROR(731): GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" ENDIF WRITE(LU_ERR,'(A,I8,A,3F12.3,A,I8,A,3F12.3,A)') " Non manifold geometry in adjacent faces at edge with nodes: NOD1",& SEG(NOD1)," (", XYZV(IAXIS:KAXIS,NOD1), "), NOD2",SEG(NOD2)," (", XYZV(IAXIS:KAXIS,NOD2), ")" @@ -12590,7 +12590,7 @@ SUBROUTINE CC_INIT_GEOM IF (POSITIVE_ERROR_TEST) THEN WRITE(LU_ERR,'(A,A,A)') "SUCCESS: GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" ELSE - WRITE(LU_ERR,'(A,A,A)') "ERROR: GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" + WRITE(LU_ERR,'(A,A,A)') "ERROR(732): GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" ENDIF WRITE(LU_ERR,'(A,I8,A,3F12.3,A,I8,A,3F12.3,A)') & " Opposite normals on triangles sharing edge with nodes: NOD1",& @@ -12612,7 +12612,7 @@ SUBROUTINE CC_INIT_GEOM IF (POSITIVE_ERROR_TEST) THEN WRITE(LU_ERR,'(A,A,A)') "SUCCESS: GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" ELSE - WRITE(LU_ERR,'(A,A,A)') "ERROR: GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" + WRITE(LU_ERR,'(A,A,A)') "ERROR(733): GEOM ID='", TRIM(GEOMETRY(IG)%ID), "':" ENDIF WRITE(LU_ERR,'(A,I8,A,3F12.3,A,I8,A,3F12.3,A)') " Open geometry at edge with nodes: NOD1",& WSELEM(NOD1)," (", XYZV(IAXIS:KAXIS,NOD1), "), NOD2",WSELEM(NOD2)," (", XYZV(IAXIS:KAXIS,NOD2), ")" @@ -21791,7 +21791,7 @@ SUBROUTINE READ_GEOM CALL ALLOCATE_BUFFERS DONE=.FALSE. ELSE - WRITE(BUFFER,'(A,A,A)') 'ERROR: GEOM ID=',TRIM(ID),'. Check &GEOM input line.' + WRITE(BUFFER,'(A,A,A)') 'ERROR(101): GEOM ID=',TRIM(ID),'. Check &GEOM input line.' CALL SHUTDOWN(TRIM(BUFFER)) RETURN ENDIF @@ -21849,7 +21849,7 @@ SUBROUTINE READ_GEOM FACES(3*(I-1)+1:3*(I-1)+3) = FACES(4*(I-1)+1:4*(I-1)+3) SURFS(I) = FACES(4*(I-1)+4) IF(SURFS(I) > N_SURF_ID) THEN - WRITE(MESSAGE,'(A,A,A,I8,A)') 'ERROR: problem with GEOM ',TRIM(ID),& + WRITE(MESSAGE,'(A,A,A,I8,A)') 'ERROR(701): problem with GEOM ',TRIM(ID),& ', local SURF_ID index for FACE ',I,'out of bounds.' CALL SHUTDOWN(MESSAGE); RETURN ENDIF @@ -21891,7 +21891,7 @@ SUBROUTINE READ_GEOM N_SURF_ID = 3 DO I=2,3 IF (TRIM(SURF_ID(I))=='null') THEN - WRITE(MESSAGE,'(A,A,A)') 'ERROR: problem with GEOM ',TRIM(ID),& + WRITE(MESSAGE,'(A,A,A)') 'ERROR(702): problem with GEOM ',TRIM(ID),& ', SURF_IDS not defined properly.' CALL SHUTDOWN(MESSAGE); RETURN ENDIF @@ -21926,13 +21926,13 @@ SUBROUTINE READ_GEOM IF (N_VOLUS > 0 ) READ(731) VOLUS(1:4*N_VOLUS) CLOSE(731) IF (ANY(SURFS(1:N_FACES)>0) .AND. TRIM(SURF_ID(1))=='null') THEN - WRITE(MESSAGE,'(A,A,A,A,A)') 'ERROR: missing SURF_ID in &GEOM line ',TRIM(ID),& + WRITE(MESSAGE,'(A,A,A,A,A)') 'ERROR(703): missing SURF_ID in &GEOM line ',TRIM(ID),& ' for binary file ',TRIM(BINARY_FILE),& '. Add SURF_ID in said &GEOM line.' CALL SHUTDOWN(MESSAGE); RETURN ENDIF IF(N_SURF_ID2 /= N_SURF_ID) THEN - WRITE(MESSAGE,'(A,A,A,I8,A,I8,A,A,A)') 'ERROR: problem with GEOM ',TRIM(ID),& + WRITE(MESSAGE,'(A,A,A,I8,A,I8,A,A,A)') 'ERROR(704): problem with GEOM ',TRIM(ID),& ', number of surfaces in SURF_ID field (',N_SURF_ID, & ') not equal to number of surfaces (',N_SURF_ID2,& ') defined in bingeom ',TRIM(BINARY_FILE),'.' @@ -21940,14 +21940,14 @@ SUBROUTINE READ_GEOM ENDIF DO I = 1, N_FACES IF(SURFS(I) > N_SURF_ID) THEN - WRITE(MESSAGE,'(A,A,A,I8,A)') 'ERROR: problem with GEOM ',TRIM(ID),& + WRITE(MESSAGE,'(A,A,A,I8,A)') 'ERROR(701): problem with GEOM ',TRIM(ID),& ', local SURF_ID index for FACE ',I,'out of bounds.' CALL SHUTDOWN(MESSAGE); RETURN ENDIF ENDDO ENDIF 221 IF(IOS > 0) THEN - WRITE(MESSAGE,'(A,A,A,A,A)') 'ERROR: could not read binary connectivity for GEOM ',TRIM(ID),& + WRITE(MESSAGE,'(A,A,A,A,A)') 'ERROR(705): could not read binary connectivity for GEOM ',TRIM(ID),& ' in binary file ',TRIM(BINARY_FILE),& '. Check file exists.' CALL SHUTDOWN(MESSAGE); RETURN @@ -21964,18 +21964,18 @@ SUBROUTINE READ_GEOM TERRAIN_CASE= .TRUE. CALL CHECK_XB(XB) IF (N_ZVALS/=IJK(1)*IJK(2) ) THEN - WRITE(MESSAGE,'(A,I4,A,I4)') 'ERROR: Expected ',IJK(1)*IJK(2),' Z values, found ',N_ZVALS + WRITE(MESSAGE,'(A,I4,A,I4)') 'ERROR(706): Expected ',IJK(1)*IJK(2),' Z values, found ',N_ZVALS CALL SHUTDOWN(MESSAGE) ENDIF IF (IJK(1)<2 .OR. IJK(2)<2) THEN - CALL SHUTDOWN('ERROR: IJK(1) and IJK(2) on &GEOM line needs to be at least 2') + CALL SHUTDOWN('ERROR(707): IJK(1) and IJK(2) on &GEOM line needs to be at least 2.') ENDIF NXB=0 DO I = 1, 4 ! first 4 XB values must be set, don't care about 5th and 6th IF (XB(I)N_BEDGES) THEN ! Error - WRITE(MESSAGE,'(A,A,A,I8,A)') 'ERROR: For terrain GEOM ',TRIM(ID),& + WRITE(MESSAGE,'(A,A,A,I8,A)') 'ERROR(709): For terrain GEOM ',TRIM(ID),& ' unconnected boundary edge at node number,',BOUND_EDGES2(NOD2,J-1),'.' CALL SHUTDOWN(MESSAGE); RETURN ENDIF ENDDO DO I=1,N_BEDGES IF (COUNTED_EDGES(I) /= 1) THEN - WRITE(MESSAGE,'(A,A,A,2I8,A)') 'ERROR: For terrain GEOM ',TRIM(ID),& + WRITE(MESSAGE,'(A,A,A,2I8,A)') 'ERROR(710): For terrain GEOM ',TRIM(ID),& ' unconnected boundary edge at nodes,',BOUND_EDGES(NOD1:NOD2,I),'.' CALL SHUTDOWN(MESSAGE); RETURN ENDIF @@ -22414,7 +22414,7 @@ SUBROUTINE READ_GEOM DO ICPT=NOD1,NOD4 IJE = CLOSE_PT(ICPT+1) - CLOSE_PT(ICPT); IF (IJE <= 0) THEN - WRITE(MESSAGE,'(A,A,A,I8,A)') 'ERROR: For terrain GEOM ',TRIM(ID),& + WRITE(MESSAGE,'(A,A,A,I8,A)') 'ERROR(711): For terrain GEOM ',TRIM(ID),& ' same boundary vertex ',B_IND(CLOSE_PT(ICPT)),' closest to 2 domain corners.' CALL SHUTDOWN(MESSAGE); RETURN ENDIF @@ -22723,26 +22723,26 @@ SUBROUTINE READ_GEOM ! Setup an extruded POLYGON object: POLY_COND : IF (N_POLY_VERTS > 0) THEN IF ( ABS(EXTRUDE) < GEOMEPS ) THEN - WRITE(MESSAGE,'(A,A,A)') 'ERROR: For extruded Polygon GEOM ',TRIM(ID),& + WRITE(MESSAGE,'(A,A,A)') 'ERROR(712): For extruded Polygon GEOM ',TRIM(ID),& ' : extrusion distance in EXTRUDE field not defined or zero. Define EXTRUDE value in &GEOM.' CALL SHUTDOWN(MESSAGE); RETURN ENDIF ! Do some tests in POLY, Repeated vertex, etc.: IF (N_POLY_VERTS > N_VERTS) THEN - WRITE(MESSAGE,'(A,A,A,I6,A,I6,A)') 'ERROR: For extruded Polygon GEOM ',TRIM(ID),& + WRITE(MESSAGE,'(A,A,A,I6,A,I6,A)') 'ERROR(713): For extruded Polygon GEOM ',TRIM(ID),& ' : Number of POLY indexes ',N_POLY_VERTS,' greater than Number of VERTS ',N_VERTS,'.' CALL SHUTDOWN(MESSAGE); RETURN ENDIF DO J=1,N_POLY_VERTS DO I=J+1,N_POLY_VERTS IF (POLY(I)==POLY(J)) THEN - WRITE(MESSAGE,'(A,A,A,I6,A)') 'ERROR: For extruded Polygon GEOM ',TRIM(ID),& + WRITE(MESSAGE,'(A,A,A,I6,A)') 'ERROR(714): For extruded Polygon GEOM ',TRIM(ID),& ' : Repeated vertex ',POLY(I),' in Polyline.' CALL SHUTDOWN(MESSAGE); RETURN ENDIF IF (NORM2(VERTS(3*POLY(I)-2:3*POLY(I))-VERTS(3*POLY(J)-2:3*POLY(J))) < GEOMEPS) THEN - WRITE(MESSAGE,'(A,A,A,I6,A,I6,A)') 'ERROR: For extruded Polygon GEOM ',TRIM(ID),& + WRITE(MESSAGE,'(A,A,A,I6,A,I6,A)') 'ERROR(715): For extruded Polygon GEOM ',TRIM(ID),& ' : Vertices ',POLY(I),' and ',POLY(J),' have same position.' CALL SHUTDOWN(MESSAGE); RETURN ENDIF @@ -22835,7 +22835,8 @@ SUBROUTINE READ_GEOM EXIT ENDDO IF(.NOT.IN_LIST) THEN - WRITE(MESSAGE,'(A,I4,3A)') 'ERROR: problem with GEOM, the surface IDV(',I,') =',TRIM(SURF_ID(I)),' is not defined.' + WRITE(MESSAGE,'(A,I4,3A)') 'ERROR(716): problem with GEOM, the surface ID(',I,') =',& + TRIM(SURF_ID(I)),' is not defined.' CALL SHUTDOWN(MESSAGE) ENDIF ENDDO @@ -22894,7 +22895,7 @@ SUBROUTINE READ_GEOM ENDDO G%VOLUS(1: 4*N_VOLUS) = VOLUS(1:4*N_VOLUS) IF (ANY(VOLUS(1:4*N_VOLUS)<1 .OR. VOLUS(1:4*N_VOLUS)>N_VERTS)) THEN - CALL SHUTDOWN('ERROR: problem with GEOM, vertex index out of bounds') + CALL SHUTDOWN('ERROR(717): problem with GEOM, vertex index out of bounds.') ENDIF ALLOCATE(G%MATLS(N_VOLUS),STAT=IZERO) @@ -23114,14 +23115,14 @@ SUBROUTINE READ_GEOM ! Check FACES for out of bounds indexes: I = MINVAL(FACES(1:3*N_FACES)); II= MINLOC(FACES(1:3*N_FACES),DIM=1) IF (I < 1) THEN - WRITE(MESSAGE,'(3A,I8,A,I8,A)') 'ERROR: Out of Bounds. GEOM: ',TRIM(ID), ', FACE=',& + WRITE(MESSAGE,'(3A,I8,A,I8,A)') 'ERROR(718): Out of Bounds. GEOM: ',TRIM(ID), ', FACE=',& II/3+1,', has vertex index ',I,' less than 1.' CALL SHUTDOWN(MESSAGE) RETURN ENDIF I = MAXVAL(FACES(1:3*N_FACES)); II= MAXLOC(FACES(1:3*N_FACES),DIM=1) IF (I > N_VERTS) THEN - WRITE(MESSAGE,'(3A,I8,A,I8,A,I8,A)') 'ERROR: Out of Bounds. GEOM: ',TRIM(ID), ', FACE=',& + WRITE(MESSAGE,'(3A,I8,A,I8,A,I8,A)') 'ERROR(719): Out of Bounds. GEOM: ',TRIM(ID), ', FACE=',& II/3+1,', has vertex index ',I,', higher than number of vertices defined ',N_VERTS,'.' CALL SHUTDOWN(MESSAGE) RETURN @@ -23143,7 +23144,7 @@ SUBROUTINE READ_GEOM ENDIF ! HERE do tests on surfaces, is not supperted by GEOMs throw error: UNSUPPERTED_SURF_FIELD : IF(SURFACE(G%SURFS(I))%BURN_AWAY) THEN - WRITE(MESSAGE,'(5A)') 'ERROR: GEOM: ',TRIM(ID),& + WRITE(MESSAGE,'(5A)') 'ERROR(720): GEOM: ',TRIM(ID),& ', has currently unsupported BURN_AWAY feature in surface : ',TRIM(SURFACE(G%SURFS(I))%ID),'.' CALL SHUTDOWN(MESSAGE) RETURN @@ -23329,7 +23330,7 @@ SUBROUTINE DEFINE_EXTRUDED_POLY(MAX_VERTS,N_VERTS,VERTS,MAX_POLY_VERTS,N_POLY_VE DO I=1,N_POLY_VERTS DV1(IAXIS:KAXIS) = PVERTS(3*I-2:3*I ) - XYZCEN(IAXIS:KAXIS) IF (ABS(DOT_PRODUCT(DV1,NVEC)) > THLEN) THEN - WRITE(MESSAGE,'(A,A,A,I3,A)') 'ERROR: For extruded Polygon GEOM ',TRIM(ID),& + WRITE(MESSAGE,'(A,A,A,I3,A)') 'ERROR(721): For extruded Polygon GEOM ',TRIM(ID),& ' : Node (',POLY(I),') not in the plane of the polygon. Check VERTS.' CALL SHUTDOWN(MESSAGE); RETURN ENDIF @@ -23362,8 +23363,8 @@ SUBROUTINE DEFINE_EXTRUDED_POLY(MAX_VERTS,N_VERTS,VERTS,MAX_POLY_VERTS,N_POLY_VE D2(IAXIS:JAXIS) = (/ DOT_PRODUCT(DV2,SVEC), DOT_PRODUCT(DV2,PVEC) /) - P2(IAXIS:JAXIS) ! Seg vector in SVEC, PVEC axes. CALL GET_SEGSEG_INTERSECTION(P1,D1,P2,D2,SVARV,SLENV,INT_FLG) IF (INT_FLG>0) THEN - WRITE(MESSAGE,'(A,I3,A,I3,A,I3,A,I3,A)') 'Error : Segments (',POLY(I-N_POLY_VERTS),'-',POLY(IP1-N_POLY_VERTS),') and (',& - POLY(J-N_POLY_VERTS),'-',POLY(JP1-N_POLY_VERTS),') intersect in average POLY plane.' + WRITE(MESSAGE,'(A,I3,A,I3,A,I3,A,I3,A)') 'ERROR(722): Segments (',POLY(I-N_POLY_VERTS),'-',POLY(IP1-N_POLY_VERTS),& + ') and (',POLY(J-N_POLY_VERTS),'-',POLY(JP1-N_POLY_VERTS),') intersect in average POLY plane.' CALL SHUTDOWN(MESSAGE); RETURN ENDIF ENDDO @@ -23387,7 +23388,7 @@ SUBROUTINE DEFINE_EXTRUDED_POLY(MAX_VERTS,N_VERTS,VERTS,MAX_POLY_VERTS,N_POLY_VE NVERTS2 = SUM(NODE_FLG(1:N_POLY_VERTS)); IF (NVERTS2 < 3) THEN - WRITE(MESSAGE,'(A,A,A)') 'ERROR: For extruded Polygon GEOM ',TRIM(ID),' : Not enough valid vertices on the polygon.' + WRITE(MESSAGE,'(A,A,A)') 'ERROR(723): For extruded Polygon GEOM ',TRIM(ID),' : Not enough valid vertices on the polygon.' CALL SHUTDOWN(MESSAGE); RETURN ENDIF ALLOCATE(PVERTS2(1:2*MAX_DIM*N_POLY_VERTS)); PVERTS2=0._EB @@ -23424,7 +23425,7 @@ SUBROUTINE DEFINE_EXTRUDED_POLY(MAX_VERTS,N_VERTS,VERTS,MAX_POLY_VERTS,N_POLY_VE OUTER_LOOP : DO WHILE(NLIST>=3) ! OUTER LOOP COUNT_OUT = COUNT_OUT + 1 IF (COUNT_OUT > NVERTS2**4) THEN - WRITE(MESSAGE,'(A,A,A)') 'ERROR: For extruded Polygon GEOM ',TRIM(ID),' : Could not triangulate polygon.' + WRITE(MESSAGE,'(A,A,A)') 'ERROR(724): For extruded Polygon GEOM ',TRIM(ID),' : Could not triangulate polygon.' CALL SHUTDOWN(MESSAGE); RETURN ENDIF IVERT = 1 @@ -24642,7 +24643,7 @@ SUBROUTINE PROCESS_GEOM(IS_DYNAMIC,TIME, N_VERTS, N_FACES, N_VOLUS) ENDIF ENDDO IF (MOVE_INDEX==0) THEN - WRITE(MESSAGE,'(A,A,A)') 'ERROR: &GEOM ',TRIM(G%ID),' MOVE_ID is not recognized' + WRITE(MESSAGE,'(A,A,A)') 'ERROR(725): &GEOM ',TRIM(G%ID),' MOVE_ID is not recognized' CALL SHUTDOWN(MESSAGE) ; RETURN ENDIF DO IVERT=1,G%N_VERTS