Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in), | dimension(maxlay) | :: | SupportPillar | ||
real(kind=r64), | intent(in), | dimension(maxlay) | :: | scon | ||
real(kind=r64), | intent(in), | dimension(maxlay) | :: | PillarSpacing | ||
real(kind=r64), | intent(in), | dimension(maxlay) | :: | PillarRadius | ||
integer, | intent(in) | :: | nlayer | |||
real(kind=r64), | intent(in), | dimension(MaxGap) | :: | gap | ||
real(kind=r64), | intent(inout), | dimension(maxlay1) | :: | hcgas | ||
real(kind=r64), | intent(in) | :: | VacuumMaxGapThickness | |||
integer, | intent(inout) | :: | nperr | |||
character(len=*), | intent(inout) | :: | ErrorMessage |
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 filmPillar(SupportPillar, scon, PillarSpacing, PillarRadius, nlayer, gap, hcgas, VacuumMaxGapThickness, &
nperr, ErrorMessage)
!***********************************************************************
! subroutine to calculate effective conductance of support pillars
!***********************************************************************
integer, dimension(maxlay), intent(in) :: SupportPillar ! Shows whether or not gap have support pillar
! 0 - does not have support pillar
! 1 - have support pillar
real(r64), dimension(maxlay), intent(in) :: scon ! Conductivity of glass layers
real(r64), dimension(maxlay), intent(in) :: PillarSpacing ! Pillar spacing for each gap (used in case there is support pillar)
real(r64), dimension(maxlay), intent(in) :: PillarRadius ! Pillar radius for each gap (used in case there is support pillar)
real(r64), intent(in) :: VacuumMaxGapThickness
real(r64), dimension(MaxGap), intent(in) :: gap
integer, intent(in) :: nlayer
real(r64), dimension(maxlay1), intent(inout) :: hcgas
integer, intent (inout) :: nperr
character(len=*), intent(inout) :: ErrorMessage
real(r64) :: cpa = 0.0d0
real(r64) :: aveGlassConductivity = 0.0d0
integer :: i = 0
integer :: k = 0
character(len=12) :: a, b
do i=1, nlayer-1
k = 2*i + 1
if (SupportPillar(i).eq.YES_SupportPillar) then
!lkl if (gap(i).gt.(VacuumMaxGapThickness + InputDataTolerance)) then
!lkl nperr = 1007 !support pillar is not necessary for wide gaps (calculation will continue)
!lkl write(a, '(f12.6)') VacuumMaxGapThickness
!lkl write(b, '(i3)') i
!lkl ErrorMessage = 'Gap width is more than '//trim(a)//' and it contains support pillar. Gap #'//trim(b)
!lkl end if !if (gap(i).gt.VacuumMaxGapThickness) then
!Average glass conductivity is taken as average from both glass surrounding gap
aveGlassConductivity = (scon(i) + scon(i+1)) / 2;
cpa = 2.0d0 * aveGlassConductivity * PillarRadius(i) / ((PillarSpacing(i) ** 2) * &
(1.0d0 + 2.0d0 * gap(i) / (pi * PillarRadius(i))))
!It is important to add on prevoius values caluculated for gas
hcgas(i+1) = hcgas(i+1) + cpa
end if !if (SupportPillar(i).eq.YES_SupportPillar) then
end do
end subroutine filmPillar