Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer | :: | nsides | ||||
type(vector), | dimension(nsides) | :: | polygon | |||
real(kind=r64) | :: | surfazimuth | ||||
real(kind=r64) | :: | surftilt | ||||
real(kind=r64) | :: | xvt(nsides) | ||||
real(kind=r64) | :: | yvt(nsides) | ||||
real(kind=r64) | :: | zvt(nsides) |
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 CalcRfFlrCoordinateTransformation(nsides,polygon,surfazimuth,surftilt,xvt,yvt,zvt)
! Subroutine information:
! Author Linda Lawrie
! Date written October 2005
! Modified na
! Re-engineered na
! Purpose of this subroutine:
! This routine transforms a roof/floor (normally flat polygon) to a flat
! polygon in 2 d (z vertices are then ignored).
! Methodology employed:
! Standard angle rotation
! References:
! na
! Use statements:
! na
implicit none ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
integer :: nsides
type(vector), dimension(nsides) :: polygon
real(r64) :: surfazimuth !unused1208
real(r64) :: surftilt
real(r64) :: xvt(nsides)
real(r64) :: yvt(nsides)
real(r64) :: zvt(nsides)
! Subroutine parameter definitions:
! na
! Interface block specifications
! na
! Derived type definitions
! na
! Subroutine local variable declarations:
integer :: i ! Loop Control
real(r64) :: alpha
real(r64) :: alphrad
alpha=-surftilt
alphrad=alpha/radtodeg
do i=1,nsides
xvt(i)=polygon(i)%x
yvt(i)=cos(alphrad)*polygon(i)%x + sin(alphrad)*polygon(i)%y
zvt(i)=-sin(alphrad)*polygon(i)%x + cos(alphrad)*polygon(i)%y
enddo
return
end subroutine CalcRfFlrCoordinateTransformation