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 SETSKY
! SUBROUTINE INFORMATION:
! AUTHOR George Walton
! DATE WRITTEN 1998
! MODIFIED Feb. 2006 (L. Gu) to meet requirements of AirflowNetwork
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine sets up the "IK" array describing the sparse matrix [A] in skyline
! form by using the location matrix.
! METHODOLOGY EMPLOYED:
! na
! REFERENCES:
! AIRNET
! USE STATEMENTS:
! na
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
! na
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
! IK(K) - pointer to the top of column/row "K".
INTEGER I, J, K, L, M, N1, N2
! FLOW:
! Initialize "IK".
DO I=1,NetworkNumOfNodes+1
IK(I) = 0
END DO
! Determine column heights.
DO M=1,NetworkNumOfLinks
J = AirflowNetworkLinkageData(M)%NodeNums(2)
IF(J.EQ.0) CYCLE
L = ID(J)
I = AirflowNetworkLinkageData(M)%NodeNums(1)
K = ID(I)
N1 = ABS(L-K)
N2 = MAX(K,L)
IK(N2) = MAX(IK(N2),N1)
END DO
! Convert heights to column addresses.
J = IK(1)
IK(1) = 1
DO K=1,NetworkNumOfNodes
I = IK(K+1)
IK(K+1) = IK(K)+J
J = I
END DO
RETURN
END SUBROUTINE SETSKY