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 | ||
---|---|---|---|---|---|---|
type(BSDFRefPoints), | intent(inout) | :: | StateRefPoint | |||
integer, | intent(in) | :: | NumOfWinEl | |||
integer, | intent(in) | :: | NBasis | |||
integer, | intent(in) | :: | NTrnBasis |
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 AllocateForCFSRefPointsState(StateRefPoint, NumOfWinEl, NBasis, NTrnBasis)
! SUBROUTINE INFORMATION:
! AUTHOR Simon Vidanovic
! DATE WRITTEN June 2013
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Memory allocation for complex fenestration systems reference points geometry
! METHODOLOGY EMPLOYED:
! <description>
! REFERENCES:
! na
! USE STATEMENTS:
use vectors
implicit none ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
type(BSDFRefPoints), intent(inout) :: StateRefPoint
integer, intent(in) :: NumOfWinEl
integer, intent(in) :: NBasis
integer, intent(in) :: NTrnBasis
! SUBROUTINE LOCAL VARIABLES
if (.not.allocated(StateRefPoint%NSky)) then
allocate(StateRefPoint%NSky(NumOfWinEl))
StateRefPoint%NSky = 0
end if
if (.not.allocated(StateRefPoint%SkyIndex)) then
allocate(StateRefPoint%SkyIndex(NumOfWinEl, NBasis))
StateRefPoint%SkyIndex = 0
end if
if (.not.allocated(StateRefPoint%NGnd)) then
allocate(StateRefPoint%NGnd(NumOfWinEl))
StateRefPoint%NGnd = 0
end if
if (.not.allocated(StateRefPoint%GndIndex)) then
allocate(StateRefPoint%GndIndex(NumOfWinEl, NBasis))
StateRefPoint%GndIndex = 0
end if
if (.not.allocated(StateRefPoint%GndPt)) then
allocate(StateRefPoint%GndPt(NumOfWinEl, NBasis))
StateRefPoint%GndPt = vector(0.0d0, 0.0d0, 0.0d0)
end if
if (.not.allocated(StateRefPoint%GndObstrMultiplier)) then
allocate(StateRefPoint%GndObstrMultiplier(NumOfWinEl, NBasis))
StateRefPoint%GndObstrMultiplier = 0.0d0
end if
if (.not.allocated(StateRefPoint%NReflSurf)) then
allocate(StateRefPoint%NReflSurf(NumOfWinEl))
StateRefPoint%NReflSurf = 0
end if
if (.not.allocated(StateRefPoint%RefSurfIndex)) then
allocate(StateRefPoint%RefSurfIndex(NumOfWinEl, NBasis))
StateRefPoint%RefSurfIndex = 0
end if
if (.not.allocated(StateRefPoint%TransOutSurf)) then
allocate(StateRefPoint%TransOutSurf(NumOfWinEl, NBasis))
StateRefPoint%TransOutSurf = 1.0d0
end if
if (.not.allocated(StateRefPoint%RefRayNHits)) then
allocate(StateRefPoint%RefRayNHits(NumOfWinEl, NBasis))
StateRefPoint%RefRayNHits = 0
end if
if (.not.allocated(StateRefPoint%HitSurfNo)) then
allocate(StateRefPoint%HitSurfNo(NumOfWinEl, NBasis, TotSurfaces))
StateRefPoint%HitSurfNo = 0
end if
if (.not.allocated(StateRefPoint%HitSurfDSq)) then
allocate(StateRefPoint%HitSurfDSq(NumOfWinEl, NBasis, TotSurfaces))
StateRefPoint%HitSurfDSq = 0.0d0
end if
if (.not.allocated(StateRefPoint%HitPt)) then
allocate(StateRefPoint%HitPt(NumOfWinEl, NBasis, TotSurfaces))
StateRefPoint%HitPt = vector(0.0d0, 0.0d0, 0.0d0)
end if
if (.not.allocated(StateRefPoint%RefPointIndex)) then
allocate(StateRefPoint%RefPointIndex(NumOfWinEl))
StateRefPoint%RefPointIndex = 0
end if
if (.not.allocated(StateRefPoint%RefPointIntersection)) then
allocate(StateRefPoint%RefPointIntersection(NTrnBasis))
StateRefPoint%RefPointIntersection = .false.
end if
if (.not.allocated(StateRefPoint%RefPtIntPosFac)) then
allocate(StateRefPoint%RefPtIntPosFac(NTrnBasis))
StateRefPoint%RefPtIntPosFac = 0.0d0
end if
return
END SUBROUTINE AllocateForCFSRefPointsState