Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | TraceFileUnit | |||
type(PointType), | intent(in) | :: | PointData | |||
logical, | intent(in) | :: | ShowXValue |
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 WritePoint( TraceFileUnit, PointData, ShowXValue )
! SUBROUTINE INFORMATION:
! AUTHOR Dimitri Curtil (LBNL)
! DATE WRITTEN March 2006
! MODIFIED
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine writes the current point data to the trace file
! unit using CSV formatting.
! If not defined writes an empty string instead.
!
! METHODOLOGY EMPLOYED:
! na
! REFERENCES:
! na
! USE STATEMENTS:
! na
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER, INTENT(IN) :: TraceFileUnit ! Unit for trace file
TYPE(PointType), INTENT(IN) :: PointData ! Point data structure
! If set to TRUE, ten always show the X value even if not defined
LOGICAL, INTENT(IN) :: ShowXValue
! SUBROUTINE PARAMETER DEFINITIONS:
CHARACTER(len=1) :: NoValue = ' ' ! String used whenever the value is not available
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
! na
! FLOW:
IF ( PointData%DefinedFlag ) THEN
WRITE(TraceFileUnit,'(2(F20.10,A))',ADVANCE='No') &
PointData%X, ',', &
PointData%Y, ','
ELSE
IF ( ShowXValue ) THEN
WRITE(TraceFileUnit,'(1(F20.10,A),1(A,A))',ADVANCE='No') &
PointData%X, ',', &
NoValue, ','
ELSE
WRITE(TraceFileUnit,'(2(A,A))',ADVANCE='No') &
NoValue, ',', &
NoValue, ','
END IF
END IF
RETURN
END SUBROUTINE WritePoint