Single blade class
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| character(len=2), | public | :: | id | ||||
| type(wingpanel_class), | public, | allocatable, dimension(:, :) | :: | wiP |
Wing panel |
||
| type(Nwake_class), | public, | allocatable, dimension(:, :) | :: | waN |
Near wake |
||
| type(Fwake_class), | public, | allocatable, dimension(:) | :: | waF |
Far wake |
||
| type(pFwake_class), | public | :: | wapF |
Prescribed far wake |
|||
| type(pFwake_class), | public | :: | wapFPredicted |
Prescribed far wake |
|||
| type(Nwake_class), | public, | allocatable, dimension(:, :) | :: | waNPredicted | |||
| type(Fwake_class), | public, | allocatable, dimension(:) | :: | waFPredicted | |||
| type(C81_class), | public, | allocatable, dimension(:) | :: | C81 | |||
| integer, | public | :: | nc |
No. of chordwise panels |
|||
| integer, | public | :: | ns |
No. of spanwise panels |
|||
| real(kind=dp), | public | :: | theta | ||||
| real(kind=dp), | public | :: | psi | ||||
| real(kind=dp), | public | :: | pivotLE |
Location of pivot from LE (x/c) for setting pitch angle |
|||
| real(kind=dp), | public | :: | preconeAngle |
Precone angle for blade |
|||
| real(kind=dp), | public | :: | velWakeMax |
Max vel on wake collocation points for preventing blowup |
|||
| real(kind=dp), | public | :: | wakeDispLimitFactor |
Max displacement factor (dx/lc) for wake convection limiting (from rotor) where lc is local wake filament length |
|||
| real(kind=dp), | public | :: | flapInitial | ||||
| real(kind=dp), | public | :: | dflapInitial | ||||
| real(kind=dp), | public | :: | flapPrev | ||||
| real(kind=dp), | public | :: | dflapPrev | ||||
| real(kind=dp), | public | :: | flap | ||||
| real(kind=dp), | public | :: | dflap | ||||
| real(kind=dp), | public | :: | Iflap | ||||
| real(kind=dp), | public | :: | kflap | ||||
| real(kind=dp), | public | :: | cflap | ||||
| real(kind=dp), | public | :: | MflapConstant | ||||
| real(kind=dp), | public | :: | MflapLift | ||||
| real(kind=dp), | public | :: | MflapLiftPrev | ||||
| real(kind=dp), | public, | dimension(3) | :: | flapOrigin | |||
| real(kind=dp), | public, | dimension(3) | :: | forceInertial | |||
| real(kind=dp), | public, | dimension(3) | :: | lift | |||
| real(kind=dp), | public, | dimension(3) | :: | drag | |||
| real(kind=dp), | public, | dimension(3) | :: | dragInduced | |||
| real(kind=dp), | public, | dimension(3) | :: | dragProfile | |||
| real(kind=dp), | public, | dimension(3) | :: | liftUnsteady | |||
| real(kind=dp), | public, | dimension(3) | :: | dragUnsteady | |||
| integer, | public, | allocatable, dimension(:) | :: | airfoilNo | |||
| character(len=30), | public, | allocatable, dimension(:) | :: | airfoilFile | |||
| real(kind=dp), | public, | allocatable, dimension(:) | :: | airfoilSectionLimit | |||
| real(kind=dp), | public, | allocatable, dimension(:, :, :) | :: | velNwake | |||
| real(kind=dp), | public, | allocatable, dimension(:, :, :) | :: | velNwake1 | |||
| real(kind=dp), | public, | allocatable, dimension(:, :, :) | :: | velNwake2 | |||
| real(kind=dp), | public, | allocatable, dimension(:, :, :) | :: | velNwake3 | |||
| real(kind=dp), | public, | allocatable, dimension(:, :, :) | :: | velNwakePredicted | |||
| real(kind=dp), | public, | allocatable, dimension(:, :, :) | :: | velNwakeStep | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | velFwake | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | velFwake1 | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | velFwake2 | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | velFwake3 | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | velFwakePredicted | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | velFwakeStep | |||
| integer, | public | :: | stlNodesCols | ||||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | stlNodes | |||
| integer, | public, | allocatable, dimension(:, :) | :: | stlElementNodes | |||
| real(kind=dp), | public, | dimension(3) | :: | xAxis | |||
| real(kind=dp), | public, | dimension(3) | :: | yAxis | |||
| real(kind=dp), | public, | dimension(3) | :: | zAxis | |||
| real(kind=dp), | public, | dimension(3) | :: | xAxisAzi | |||
| real(kind=dp), | public, | dimension(3) | :: | yAxisAzi | |||
| real(kind=dp), | public, | dimension(3) | :: | zAxisAzi | |||
| real(kind=dp), | public, | dimension(3) | :: | xAxisAziFlap | |||
| real(kind=dp), | public, | dimension(3) | :: | yAxisAziFlap | |||
| real(kind=dp), | public, | dimension(3) | :: | zAxisAziFlap | |||
| real(kind=dp), | public, | allocatable, dimension(:) | :: | secChord | |||
| real(kind=dp), | public, | allocatable, dimension(:) | :: | secArea | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | secForceInertial | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | secLift | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | secDrag | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | secLiftDir | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | secDragDir | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | secLiftInPlane | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | secLiftOutPlane | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | secDragInduced | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | secDragProfile | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | secLiftUnsteady | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | secDragUnsteady | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | secLiftInPlaneUnsteady | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | secLiftOutPlaneUnsteady | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | secTauCapChord | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | secTauCapSpan | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | secNormalVec | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | secCP | |||
| real(kind=dp), | public, | allocatable, dimension(:, :) | :: | secChordwiseResVel | |||
| real(kind=dp), | public, | allocatable, dimension(:) | :: | secAlpha | |||
| real(kind=dp), | public, | allocatable, dimension(:) | :: | secPhi | |||
| real(kind=dp), | public, | allocatable, dimension(:) | :: | secTheta | |||
| real(kind=dp), | public, | allocatable, dimension(:) | :: | secViz | |||
| real(kind=dp), | public, | allocatable, dimension(:) | :: | secVix | |||
| real(kind=dp), | public, | allocatable, dimension(:) | :: | secCD | |||
| real(kind=dp), | public, | allocatable, dimension(:) | :: | secCM | |||
| real(kind=dp), | public, | allocatable, dimension(:) | :: | secMflap | |||
| real(kind=dp), | public, | allocatable, dimension(:) | :: | secMflapArm | |||
| real(kind=dp), | public, | allocatable, dimension(:) | :: | alpha0 | |||
| real(kind=dp), | public, | allocatable, dimension(:) | :: | secCL | |||
| real(kind=dp), | public, | allocatable, dimension(:) | :: | secCLu | |||
| integer, | public | :: | spanwiseLiftSwitch |
Move blade by dshift
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class) | :: | this | ||||
| real(kind=dp), | intent(in), | dimension(3) | :: | dshift |
Rotate blade geometry about axis at specified origin Rotation angle in radians
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| real(kind=dp), | intent(in), | value | :: | angleRad | ||
| real(kind=dp), | intent(in), | value | :: | axisX | ||
| real(kind=dp), | intent(in), | value | :: | axisY | ||
| real(kind=dp), | intent(in), | value | :: | axisZ | ||
| real(kind=dp), | intent(in), | value | :: | originX | ||
| real(kind=dp), | intent(in), | value | :: | originY | ||
| real(kind=dp), | intent(in), | value | :: | originZ | ||
| character(len=*), | intent(in) | :: | rotateType |
Rotate blade by pitch angle about pivotLE
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| real(kind=dp), | intent(in) | :: | theta |
Rotate wake about axis at specified origin
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| real(kind=dp), | intent(in) | :: | theta | |||
| real(kind=dp), | intent(in), | dimension(3) | :: | axisVec | ||
| real(kind=dp), | intent(in), | dimension(3) | :: | origin | ||
| integer, | intent(in) | :: | rowNear | |||
| integer, | intent(in) | :: | rowFar | |||
| character(len=1), | intent(in) | :: | wakeType |
Rotate blade using pts. pts refers to (phi, theta, psi)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| real(kind=dp), | intent(in), | dimension(3) | :: | pts | ||
| real(kind=dp), | intent(in), | dimension(3) | :: | origin | ||
| integer, | intent(in) | :: | order |
Rotate blade by flap angle
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| real(kind=dp), | intent(in) | :: | beta |
Compute induced velocity by blade bound vorticity
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(in) | :: | this | |||
| real(kind=dp), | intent(in), | dimension(3) | :: | P |
Compute induced velocity by blade bound vorticity
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(in) | :: | this | |||
| real(kind=dp), | intent(in), | dimension(3) | :: | P |
Compute induced velocity by bound vortices alone
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(in) | :: | this | |||
| real(kind=dp), | intent(in), | dimension(3) | :: | P |
Compute induced velocity by bound vortices alone
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(in) | :: | this | |||
| real(kind=dp), | intent(in), | dimension(3) | :: | P |
Compute induced velocity by bound vortices alone
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| integer, | intent(in) | :: | ic | |||
| integer, | intent(in) | :: | is | |||
| real(kind=dp), | intent(in), | dimension(3) | :: | P |
Compute induced velocity by wake vortex rings
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | rowNear | |||
| integer, | intent(in) | :: | rowFar | |||
| real(kind=dp), | intent(in), | dimension(3) | :: | P | ||
| character(len=1), | optional | :: | optionalChar |
Convect wake collocation points using velNwake matrix
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| integer, | intent(in) | :: | rowNear | |||
| integer, | intent(in) | :: | rowFar | |||
| real(kind=dp), | intent(in) | :: | dt | |||
| character(len=1), | intent(in) | :: | wakeType | |||
| integer, | optional | :: | ductSwitch |
Limits wake velocity to a set value to prevent blow up. Near wake only for predicted wake; near and far for current wake.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| integer, | intent(in) | :: | rowNear | |||
| integer, | intent(in) | :: | rowFar | |||
| character(len=1), | intent(in) | :: | wakeType |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this |
Compute force using blade circulation
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| real(kind=dp), | intent(in) | :: | density | |||
| real(kind=dp), | intent(in) | :: | Omega | |||
| real(kind=dp), | intent(in) | :: | dt |
Compute force using sectional alpha
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| real(kind=dp), | intent(in) | :: | density | |||
| real(kind=dp), | intent(in) | :: | velSound |
Compute force using alpha approximated from sec circulation
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| real(kind=dp), | intent(in) | :: | density | |||
| real(kind=dp), | intent(in) | :: | invertGammaSign | |||
| real(kind=dp), | intent(in) | :: | velSound | |||
| real(kind=dp), | intent(in) | :: | dt |
Compute sec alpha using sec resultant velocity
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| real(kind=dp), | intent(in), | dimension(3) | :: | verticalAxis |
Compute sectional resultant vel by interpolating local panel vel
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| integer, | intent(in) | :: | rowFar | |||
| real(kind=dp), | intent(in) | :: | skewLimit | |||
| real(kind=dp), | intent(in) | :: | largeCoreRadius |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| integer, | intent(in) | :: | rowNear |
Compute important locations at each section coordinates of collocation point located at chord fraction flap moment arm
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| real(kind=dp), | intent(in) | :: | chordwiseFraction | |||
| real(kind=dp), | intent(in) | :: | flapHingeRadius |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| real(kind=dp), | intent(in) | :: | velSound |
Convert force coefficients to dimensional forces
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| real(kind=dp), | intent(in) | :: | density |
Compute lift and drag direction vectors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| real(kind=dp), | intent(in) | :: | Omega |
Sum up sectional forces to net forces
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| real(kind=dp), | intent(in) | :: | dt | |||
| real(kind=dp), | intent(in) | :: | omega |
Returns ddflap from blade flap equation
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(in) | :: | this | |||
| real(kind=dp), | intent(in) | :: | flap | |||
| real(kind=dp), | intent(in) | :: | dflap | |||
| real(kind=dp), | intent(in) | :: | omega | |||
| real(kind=dp), | intent(in) | :: | MflapLift |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | unit | |||
| integer, | intent(out) | :: | iostat | |||
| character(len=*), | intent(inout) | :: | iomsg |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | unit | |||
| integer, | intent(out) | :: | iostat | |||
| character(len=*), | intent(inout) | :: | iomsg |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| integer, | intent(in) | :: | unit | |||
| integer, | intent(out) | :: | iostat | |||
| character(len=*), | intent(inout) | :: | iomsg |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(blade_class), | intent(inout) | :: | this | |||
| integer, | intent(in) | :: | unit | |||
| integer, | intent(out) | :: | iostat | |||
| character(len=*), | intent(inout) | :: | iomsg |