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.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | TraceFileUnit | |||
type(RootFinderDataType), | intent(in) | :: | RootFinderData |
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 WriteRootFinderTrace( TraceFileUnit, RootFinderData )
! SUBROUTINE INFORMATION:
! AUTHOR Dimitri Curtil (LBNL)
! DATE WRITTEN March 2006
! MODIFIED
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine writes the current state of the root finder data to the trace file
! unit using CSV formatting.
!
! METHODOLOGY EMPLOYED:
! na
! REFERENCES:
! na
! USE STATEMENTS:
USE General, ONLY: TrimSigDigits
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER, INTENT(IN) :: TraceFileUnit ! Unit for trace file
TYPE(RootFinderDataType), INTENT(IN) :: RootFinderData ! Data used by root finding algorithm
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
! na
! FLOW:
WRITE(TraceFileUnit,'(2(A,A))',ADVANCE='No') &
TRIM(TrimSigDigits(RootFinderData%StatusFlag)), ',', &
TRIM(TrimSigDigits(RootFinderData%CurrentMethodType)), ','
! Only show current point if defined.
CALL WritePoint( TraceFileUnit, RootFinderData%CurrentPoint, .FALSE. )
WRITE(TraceFileUnit,'(2(F20.10,A))',ADVANCE='No') &
RootFinderData%XCandidate, ',', &
RootFinderData%ConvergenceRate, ','
! Always show min and max points.
! Only show lower and upper points if defined.
CALL WritePoint( TraceFileUnit, RootFinderData%MinPoint, .TRUE. )
CALL WritePoint( TraceFileUnit, RootFinderData%LowerPoint, .FALSE. )
CALL WritePoint( TraceFileUnit, RootFinderData%UpperPoint, .FALSE. )
CALL WritePoint( TraceFileUnit, RootFinderData%MaxPoint, .TRUE. )
! Only show history points if defined.
CALL WritePoint( TraceFileUnit, RootFinderData%History(1), .FALSE. )
CALL WritePoint( TraceFileUnit, RootFinderData%History(2), .FALSE. )
CALL WritePoint( TraceFileUnit, RootFinderData%History(3), .FALSE. )
RETURN
END SUBROUTINE WriteRootFinderTrace