Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | DeflectionStandard | |||
real(kind=r64), | intent(in) | :: | W | |||
real(kind=r64), | intent(in) | :: | H | |||
integer, | intent(in) | :: | nlayer | |||
real(kind=r64), | intent(in) | :: | Pa | |||
real(kind=r64), | intent(in) | :: | Pini | |||
real(kind=r64), | intent(in) | :: | Tini | |||
real(kind=r64), | intent(in), | dimension(maxlay) | :: | PaneThickness | ||
real(kind=r64), | intent(in), | dimension(MaxGap) | :: | NonDeflectedGapWidth | ||
real(kind=r64), | intent(inout), | dimension(MaxGap) | :: | DeflectedGapWidthMax | ||
real(kind=r64), | intent(out), | dimension(MaxGap) | :: | DeflectedGapWidthMean | ||
real(kind=r64), | intent(in), | dimension(maxlay2) | :: | PanelTemps | ||
real(kind=r64), | intent(in), | dimension(maxlay) | :: | YoungsMod | ||
real(kind=r64), | intent(in), | dimension(maxlay) | :: | PoissonsRat | ||
real(kind=r64), | intent(inout), | dimension(maxlay) | :: | LayerDeflection | ||
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.
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 PanesDeflection(DeflectionStandard, W, H, nlayer, Pa, Pini, Tini, PaneThickness, NonDeflectedGapWidth, &
DeflectedGapWidthMax, DeflectedGapWidthMean, PanelTemps, YoungsMod, PoissonsRat, LayerDeflection, &
nperr, ErrorMessage)
!***********************************************************************
! PanesDeflection - calculates deflection of panes and recalculate gap
! widths at maximal point of deflection
!***********************************************************************
!INPUT
integer, intent(in) :: DeflectionStandard
integer, intent(in) :: nlayer
real(r64), intent(in) :: W, H
real(r64), dimension(maxlay2), intent(in) :: PanelTemps
real(r64), dimension(MaxGap), intent(in) :: NonDeflectedGapWidth
real(r64), dimension(maxlay), intent(in) :: PaneThickness
real(r64), dimension(maxlay), intent(in) :: YoungsMod, PoissonsRat
real(r64), intent(in) :: Pa, Pini, Tini
!OUTPUT
real(r64), dimension(maxlay), intent(inout) :: LayerDeflection !Objexx:ArgIN Changed IN to INOUT: Arg used and modified
real(r64), dimension(MaxGap), intent(inout) :: DeflectedGapWidthMax
real(r64), dimension(MaxGap), intent(out) :: DeflectedGapWidthMean
integer, intent(inout) :: nperr
character(len=*), intent(inout) :: ErrorMessage
!Localy used
real(r64), dimension(maxlay) :: DCoeff
integer :: i
i = 0
! first calculate D coefficients since that will be necessary for any of selected standards
do i = 1, nlayer
DCoeff(i) = YoungsMod(i) * PaneThickness(i)**3.0d0 / (12 * (1 - PoissonsRat(i)**2.0d0))
end do
select case (DeflectionStandard)
case (NO_DEFLECTION_CALCULATION)
return
case (DEFLECTION_CALC_TEMPERATURE)
call DeflectionTemperatures(nlayer, W, H, Pa, Pini, Tini, NonDeflectedGapWidth, DeflectedGapWidthMax, &
DeflectedGapWidthMean, PanelTemps, DCoeff, LayerDeflection, nperr, ErrorMessage)
case (DEFLECTION_CALC_GAP_WIDTHS)
call DeflectionWidths(nlayer, W, H, DCoeff, NonDeflectedGapWidth, DeflectedGapWidthMax, DeflectedGapWidthMean, &
LayerDeflection)
case default
return
end select
return
end subroutine PanesDeflection