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 | ||
---|---|---|---|---|---|---|
real(kind=r64), | intent(in), | dimension(3) | :: | RefPoint | ||
type(BSDFRefPoints), | intent(inout) | :: | RefPointMap | |||
integer, | intent(in) | :: | iWin | |||
integer, | intent(in) | :: | CurFenState | |||
integer, | intent(in) | :: | NTrnBasis | |||
real(kind=r64), | intent(in) | :: | AZVIEW |
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 CFSRefPointPosFactor(RefPoint, RefPointMap, iWin, CurFenState, NTrnBasis, AZVIEW)
! SUBROUTINE INFORMATION:
! AUTHOR Simon Vidanovic
! DATE WRITTEN June 2013
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Calculate position factor for given reference point.
! METHODOLOGY EMPLOYED:
! <description>
! REFERENCES:
! na
! USE STATEMENTS:
use vectors
use WindowComplexManager, only: PierceSurfaceVector, DaylghtAltAndAzimuth
implicit none ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
real(r64), dimension(3), intent(in) :: RefPoint
!integer, intent(in) :: iRefPoint
type(BSDFRefPoints), intent(inout) :: RefPointMap
integer, intent(in) :: iWin
integer, intent(in) :: CurFenState
integer, intent(in) :: NTrnBasis
real(r64), intent(in) :: AZVIEW
! SUBROUTINE LOCAL VARIABLES
integer :: iTrnRay
real(r64) :: XR
real(r64) :: YR
type(vector) :: Vec
real(r64), dimension(3) :: V
integer :: iPierc
real(r64), dimension(3) :: InterPoint
type(BSDFDaylghtPosition) :: elPos ! altitude and azimuth of intersection element
do iTrnRay = 1, NTrnBasis
Vec = ComplexWind(iWin)%Geom(CurFenState)%sTrn(iTrnRay)
Vec%x = -Vec%x
Vec%y = -Vec%y
Vec%z = -Vec%z
V = Vec
call DayltgPierceSurface(IWin, RefPoint, V, iPierc, InterPoint)
if (iPierc == 1) then
RefPointMap%RefPointIntersection(iTrnRay) = .true.
elPos = DaylghtAltAndAzimuth(Vec)
XR = TAN(ABS(PIOVR2 - AZVIEW - elPos%Azimuth) + 0.001d0)
YR = TAN(elPos%Altitude + 0.001d0)
RefPointMap%RefPtIntPosFac(iTrnRay) = DayltgGlarePositionFactor(XR, YR)
end if
end do
return
END SUBROUTINE CFSRefPointPosFactor