Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | NNN | |||
integer, | intent(in) | :: | LOC0 | |||
integer, | intent(in) | :: | NRFIGS |
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 MULTOL(NNN,LOC0,NRFIGS)
! SUBROUTINE INFORMATION:
! AUTHOR Legacy Code
! DATE WRITTEN
! MODIFIED na
! RE-ENGINEERED Lawrie, Oct 2000
! PURPOSE OF THIS SUBROUTINE:
! This subroutine determines the overlaps of figure 'NS2' with previous figures
! 'LOC0+1' through 'LOC0+NRFIGS'. For example, if NS2
! is a shadow, overlap with previous shadows.
! METHODOLOGY EMPLOYED:
! na
! REFERENCES:
! BLAST/IBLAST code, original author George Walton
! USE STATEMENTS:
! na
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER, INTENT(IN) :: NNN ! argument
INTEGER, INTENT(IN) :: LOC0 ! Location in the homogeneous coordinate array
! first figure overlapped (minus 1)
INTEGER, INTENT(IN) :: NRFIGS ! Number of figures overlapped
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER I ! Loop Control
INTEGER NS1 ! Number of the figure being overlapped
INTEGER NS2 ! Number of the figure doing overlapping
INTEGER NS3 ! Location to place results of overlap
maxNumberOfFigures=MAX(maxNumberOfFigures,NRFIGS)
NS2=NNN
DO I = 1, NRFIGS
NS1=LOC0+I
NS3=LOCHCA+1
CALL DeterminePolygonOverlap(NS1,NS2,NS3) ! Find overlap of figure NS2 on figure NS1.
! Process overlap cases:
IF (OverlapStatus == NoOverlap) CYCLE
IF ( (OverlapStatus == TooManyVertices).OR. &
(OverlapStatus == TooManyFigures) ) EXIT
LOCHCA=NS3 ! Increment h.c. arrays pointer.
END DO
RETURN
END SUBROUTINE MULTOL