Nodes of different colours represent the following:
Solid arrows point from a parent (sub)module to the submodule which is descended from it. Dashed arrows point from a module being used to the module or program unit using it. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
SUBROUTINE ReportSurfaces
! SUBROUTINE INFORMATION:
! AUTHOR Linda K. Lawrie
! DATE WRITTEN February 1999
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine calls several optional routines to report
! the surfaces to output formats that can render the data
! into a descriptive picture.
! METHODOLOGY EMPLOYED:
! Use a REPORT command to determine if there should be
! a file created.
! REFERENCES:
! na
! USE STATEMENTS:
USE DataPrecisionGlobals
USE DataGlobals, ONLY: MaxNameLength
USE DataInterfaces, ONLY: ShowWarningError
USE DataErrorTracking, ONLY: AskForSurfacesReport
USE DataSurfaceColors
USE General, ONLY: ScanForReports
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
! na
! SUBROUTINE PARAMETER DEFINITIONS:
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER SurfDetails
LOGICAL SurfVert
LOGICAL SurfDet
LOGICAL DXFDone
LOGICAL VRMLDone
CHARACTER(len=MaxNameLength) :: Option1
CHARACTER(len=MaxNameLength) :: Option2
LOGICAL DoReport
AskForSurfacesReport=.false.
SurfDetails=0
SurfVert=.false.
SurfDet=.false.
DXFDone=.false.
VRMLDone=.false.
Option1=' '
Option2=' '
CALL ScanForReports('Surfaces',DoReport,'Lines',Option1)
IF (DoReport) CALL LinesOut(Option1)
CALL ScanForReports('Surfaces',DoReport,'Vertices')
IF (DoReport) THEN
IF (.not. SurfVert) THEN
SurfDetails=SurfDetails+1
SurfVert=.true.
ENDIF
ENDIF
CALL ScanForReports('Surfaces',DoReport,'Details')
IF (DoReport) THEN
IF (.not. SurfDet) THEN
SurfDetails=SurfDetails+10
SurfDet=.true.
ENDIF
ENDIF
CALL ScanForReports('Surfaces',DoReport,'DetailsWithVertices')
IF (DoReport) THEN
IF (.not. SurfDet) THEN
SurfDetails=SurfDetails+10
SurfDet=.true.
ENDIF
IF (.not. SurfVert) THEN
SurfDetails=SurfDetails+1
SurfVert=.true.
ENDIF
ENDIF
CALL ScanForReports('Surfaces',DoReport,'DXF',Option1=Option1,Option2=Option2)
IF (DoReport) THEN
IF (.not. DXFDone) THEN
IF (Option2 /= ' ') THEN
CALL SetUpSchemeColors(Option2,'DXF')
ENDIF
CALL DXFOut(Option1,Option2)
DXFDone=.true.
ELSE
CALL ShowWarningError('ReportSurfaces: DXF output already generated. DXF with option=['//TRIM(Option1)// &
'] will not be generated.')
ENDIF
ENDIF
CALL ScanForReports('Surfaces',DoReport,'DXF:WireFrame',Option1=Option1,Option2=Option2)
IF (DoReport) THEN
IF (.not. DXFDone) THEN
IF (Option2 /= ' ') THEN
CALL SetUpSchemeColors(Option2,'DXF')
ENDIF
CALL DXFOutWireFrame(Option2)
DXFDone=.true.
ELSE
CALL ShowWarningError('ReportSurfaces: DXF output already generated. DXF:WireFrame will not be generated.')
ENDIF
ENDIF
CALL ScanForReports('Surfaces',DoReport,'VRML',Option1,Option2)
IF (DoReport) THEN
IF (.not. VRMLDone) THEN
CALL VRMLOut(Option1,Option2)
VRMLDone=.true.
ELSE
CALL ShowWarningError('ReportSurfaces: VRML output already generated. VRML with option=['//TRIM(Option1)// &
'] will not be generated.')
ENDIF
ENDIF
CALL ScanForReports('Surfaces',DoReport,'CostInfo')
IF (DoReport) THEN
CALL CostInfoOut
ENDIF
IF (SurfDet .or. SurfVert) THEN
CALL DetailsForSurfaces(SurfDetails)
ENDIF
RETURN
END SUBROUTINE ReportSurfaces