14 character,
dimension(maxcgnsnamelen),
intent(in) :: chararray
15 integer(kind=inttype),
intent(in) :: n
23 integer(kind=inttype) :: i
29 function tsbeta(degreepolbeta, coefpolbeta, degreefourbeta, &
30 & omegafourbeta, coscoeffourbeta, sincoeffourbeta, t)
41 real(kind=realtype) ::
tsbeta
45 integer(kind=inttype),
intent(in) :: degreepolbeta
46 integer(kind=inttype),
intent(in) :: degreefourbeta
47 real(kind=realtype),
intent(in) :: omegafourbeta, t
48 real(kind=realtype),
dimension(0:*),
intent(in) :: coefpolbeta
49 real(kind=realtype),
dimension(0:*),
intent(in) :: coscoeffourbeta
50 real(kind=realtype),
dimension(*),
intent(in) :: sincoeffourbeta
54 integer(kind=inttype) :: nn
55 real(kind=realtype) :: beta, val
67 beta = beta + coefpolbeta(nn)*t**nn
71 beta = beta + coscoeffourbeta(0)
72 do nn=1,degreefourbeta
73 val = nn*omegafourbeta*t
74 beta = beta + coscoeffourbeta(nn)*cos(val) + sincoeffourbeta(nn)&
82 function tsbetadot(degreepolbeta, coefpolbeta, degreefourbeta, &
83 & omegafourbeta, coscoeffourbeta, sincoeffourbeta, t)
98 integer(kind=inttype),
intent(in) :: degreepolbeta
99 integer(kind=inttype),
intent(in) :: degreefourbeta
100 real(kind=realtype),
intent(in) :: omegafourbeta, t
101 real(kind=realtype),
dimension(0:*),
intent(in) :: coefpolbeta
102 real(kind=realtype),
dimension(0:*),
intent(in) :: coscoeffourbeta
103 real(kind=realtype),
dimension(*),
intent(in) :: sincoeffourbeta
107 integer(kind=inttype) :: nn
108 real(kind=realtype) :: betadot, val
119 do nn=1,degreepolbeta
120 betadot = betadot + nn*coefpolbeta(nn)*t**(nn-1)
124 do nn=1,degreefourbeta
125 val = nn*omegafourbeta
126 betadot = betadot - val*coscoeffourbeta(nn)*sin(val*t) + val*&
127 & sincoeffourbeta(nn)*cos(val*t)
134 function tsmach(degreepolmach, coefpolmach, degreefourmach, &
135 & omegafourmach, coscoeffourmach, sincoeffourmach, t)
146 real(kind=realtype) ::
tsmach
150 integer(kind=inttype),
intent(in) :: degreepolmach
151 integer(kind=inttype),
intent(in) :: degreefourmach
152 real(kind=realtype),
intent(in) :: omegafourmach, t
153 real(kind=realtype),
dimension(0:*),
intent(in) :: coefpolmach
154 real(kind=realtype),
dimension(0:*),
intent(in) :: coscoeffourmach
155 real(kind=realtype),
dimension(*),
intent(in) :: sincoeffourmach
159 integer(kind=inttype) :: nn
160 real(kind=realtype) :: intervalmach, val
170 intervalmach = coefpolmach(0)
171 do nn=1,degreepolmach
172 intervalmach = intervalmach + coefpolmach(nn)*t**nn
176 intervalmach = intervalmach + coscoeffourmach(0)
177 do nn=1,degreefourmach
178 val = nn*omegafourmach*t
179 intervalmach = intervalmach + coscoeffourmach(nn)*cos(val) + &
180 & sincoeffourmach(nn)*sin(val)
182 print*,
'intsmach', intervalmach, nn, val, t
188 function tsmachdot(degreepolmach, coefpolmach, degreefourmach, &
189 & omegafourmach, coscoeffourmach, sincoeffourmach, t)
204 integer(kind=inttype),
intent(in) :: degreepolmach
205 integer(kind=inttype),
intent(in) :: degreefourmach
206 real(kind=realtype),
intent(in) :: omegafourmach, t
207 real(kind=realtype),
dimension(0:*),
intent(in) :: coefpolmach
208 real(kind=realtype),
dimension(0:*),
intent(in) :: coscoeffourmach
209 real(kind=realtype),
dimension(*),
intent(in) :: sincoeffourmach
213 integer(kind=inttype) :: nn
214 real(kind=realtype) :: machdot, val
225 do nn=1,degreepolmach
226 machdot = machdot + nn*coefpolmach(nn)*t**(nn-1)
230 do nn=1,degreefourmach
231 val = nn*omegafourmach
232 machdot = machdot - val*coscoeffourmach(nn)*sin(val*t) + val*&
233 & sincoeffourmach(nn)*cos(val*t)
240 function tsalpha(degreepolalpha, coefpolalpha, degreefouralpha, &
241 & omegafouralpha, coscoeffouralpha, sincoeffouralpha, t)
256 integer(kind=inttype),
intent(in) :: degreepolalpha
257 integer(kind=inttype),
intent(in) :: degreefouralpha
258 real(kind=realtype),
intent(in) :: omegafouralpha, t
259 real(kind=realtype),
dimension(0:*),
intent(in) :: coefpolalpha
260 real(kind=realtype),
dimension(0:*),
intent(in) :: coscoeffouralpha
261 real(kind=realtype),
dimension(*),
intent(in) :: sincoeffouralpha
265 integer(kind=inttype) :: nn
266 real(kind=realtype) :: alpha, val
276 alpha = coefpolalpha(0)
277 do nn=1,degreepolalpha
278 alpha = alpha + coefpolalpha(nn)*t**nn
282 alpha = alpha + coscoeffouralpha(0)
283 do nn=1,degreefouralpha
284 val = nn*omegafouralpha*t
285 alpha = alpha + coscoeffouralpha(nn)*cos(val) + sincoeffouralpha&
294 function tsalphadot(degreepolalpha, coefpolalpha, degreefouralpha, &
295 & omegafouralpha, coscoeffouralpha, sincoeffouralpha, t)
310 integer(kind=inttype),
intent(in) :: degreepolalpha
311 integer(kind=inttype),
intent(in) :: degreefouralpha
312 real(kind=realtype),
intent(in) :: omegafouralpha, t
313 real(kind=realtype),
dimension(0:*),
intent(in) :: coefpolalpha
314 real(kind=realtype),
dimension(0:*),
intent(in) :: coscoeffouralpha
315 real(kind=realtype),
dimension(*),
intent(in) :: sincoeffouralpha
319 integer(kind=inttype) :: nn
320 real(kind=realtype) :: alphadot, val
331 do nn=1,degreepolalpha
332 alphadot = alphadot + nn*coefpolalpha(nn)*t**(nn-1)
336 do nn=1,degreefouralpha
337 val = nn*omegafouralpha
338 alphadot = alphadot - val*coscoeffouralpha(nn)*sin(val*t) + val*&
339 & sincoeffouralpha(nn)*cos(val*t)
347 & degreefourrot, omegafourrot, coscoeffourrot, sincoeffourrot, t)
365 integer(kind=inttype),
intent(in) :: degreepolrot
366 integer(kind=inttype),
intent(in) :: degreefourrot
367 real(kind=realtype),
intent(in) :: omegafourrot, t
368 real(kind=realtype),
dimension(0:*),
intent(in) :: coefpolrot
369 real(kind=realtype),
dimension(0:*),
intent(in) :: coscoeffourrot
370 real(kind=realtype),
dimension(*),
intent(in) :: sincoeffourrot
374 integer(kind=inttype) :: nn
375 real(kind=realtype) :: dphi, val
386 dphi = dphi + nn*coefpolrot(nn)*t**(nn-1)
389 do nn=1,degreefourrot
390 val = nn*omegafourrot
391 dphi = dphi - val*coscoeffourrot(nn)*sin(val*t)
392 dphi = dphi + val*sincoeffourrot(nn)*cos(val*t)
406 real(kind=realtype) :: x, y
407 real(kind=realtype) :: xd, yd
408 real(kind=realtype) ::
mydim
409 real(kind=realtype) :: mydimd
411 if (
mydim .lt. 0.0) mydimd = 0.0_8
419 real(kind=realtype) :: x, y
420 real(kind=realtype) ::
mydim
449 character(len=*),
intent(in) :: routinename
450 character(len=*),
intent(in) :: errormessage
467 real(kind=realtype),
intent(in) :: tnew, told
468 real(kind=realtype),
dimension(3),
intent(out) :: rotationpoint
469 real(kind=realtype),
dimension(3, 3),
intent(out) :: rotationmatrix
473 integer(kind=inttype) :: i, j
474 real(kind=realtype) :: phi
475 real(kind=realtype) :: cosx, cosy, cosz, sinx, siny, sinz
476 real(kind=realtype),
dimension(3, 3) :: mnew, mold
498 mnew(1, 1) = cosy*cosz
499 mnew(2, 1) = cosy*sinz
501 mnew(1, 2) = sinx*siny*cosz - cosx*sinz
502 mnew(2, 2) = sinx*siny*sinz + cosx*cosz
503 mnew(3, 2) = sinx*cosy
504 mnew(1, 3) = cosx*siny*cosz + sinx*sinz
505 mnew(2, 3) = cosx*siny*sinz - sinx*cosz
506 mnew(3, 3) = cosx*cosy
524 mold(1, 1) = cosy*cosz
525 mold(2, 1) = cosy*sinz
527 mold(1, 2) = sinx*siny*cosz - cosx*sinz
528 mold(2, 2) = sinx*siny*sinz + cosx*cosz
529 mold(3, 2) = sinx*cosy
530 mold(1, 3) = cosx*siny*cosz + sinx*sinz
531 mold(2, 3) = cosx*siny*sinz - sinx*cosz
532 mold(3, 3) = cosx*cosy
538 rotationmatrix(i, j) = mnew(i, 1)*mold(j, 1) + mnew(i, 2)*mold(j&
539 & , 2) + mnew(i, 3)*mold(j, 3)
557 & degreefourrot, omegafourrot, coscoeffourrot, sincoeffourrot, t)
575 integer(kind=inttype),
intent(in) :: degreepolrot
576 integer(kind=inttype),
intent(in) :: degreefourrot
577 real(kind=realtype),
intent(in) :: omegafourrot, t
578 real(kind=realtype),
dimension(0:*),
intent(in) :: coefpolrot
579 real(kind=realtype),
dimension(0:*),
intent(in) :: coscoeffourrot
580 real(kind=realtype),
dimension(*),
intent(in) :: sincoeffourrot
584 integer(kind=inttype) :: nn
585 real(kind=realtype) :: dphi, val
596 dphi = dphi + (nn-1)*nn*coefpolrot(nn)*t**(nn-2)
599 do nn=1,degreefourrot
600 val = nn*omegafourrot
601 dphi = dphi - val**2*sincoeffourrot(nn)*sin(val*t)
602 dphi = dphi - val**2*coscoeffourrot(nn)*cos(val*t)
611 & omegafourrot, coscoeffourrot, sincoeffourrot, t)
627 integer(kind=inttype),
intent(in) :: degreepolrot
628 integer(kind=inttype),
intent(in) :: degreefourrot
629 real(kind=realtype),
intent(in) :: omegafourrot, t
630 real(kind=realtype),
dimension(0:*),
intent(in) :: coefpolrot
631 real(kind=realtype),
dimension(0:*),
intent(in) :: coscoeffourrot
632 real(kind=realtype),
dimension(*),
intent(in) :: sincoeffourrot
636 integer(kind=inttype) :: nn
637 real(kind=realtype) :: phi, val
649 phi = phi + coefpolrot(nn)*t**nn
653 phi = phi + coscoeffourrot(0)
654 do nn=1,degreefourrot
655 val = nn*omegafourrot*t
656 phi = phi + coscoeffourrot(nn)*cos(val) + sincoeffourrot(nn)*sin&
672 &
si,
sj,
sk,
s,
globalcell,
bcdata,
nx,
il,
ie,
ib,
ny,
jl,
je,
jb, &
675 use bcpointers,
only :
ww0,
ww1,
ww2,
ww3,
pp0,
pp1,
pp2,
pp3,
rlv0,&
676 &
rlv1,
rlv2,
rlv3,
rev0,
rev1,
rev2,
rev3,
gamma0,
gamma1,
gamma2, &
677 &
gamma3,
gcp,
xx,
ss,
ssi,
ssj,
ssk,
dd2wall,
sface,
istart,
iend, &
682 integer(kind=inttype),
intent(in) :: nn
683 logical,
intent(in) :: spatialpointers
698 ww3 =>
w(3, 1:, 1:, :)
699 ww2 =>
w(2, 1:, 1:, :)
700 ww1 =>
w(1, 1:, 1:, :)
701 ww0 =>
w(0, 1:, 1:, :)
744 ww3 =>
w(1:, 3, 1:, :)
745 ww2 =>
w(1:, 2, 1:, :)
746 ww1 =>
w(1:, 1, 1:, :)
747 ww0 =>
w(1:, 0, 1:, :)
790 ww3 =>
w(1:, 1:, 3, :)
791 ww2 =>
w(1:, 1:, 2, :)
792 ww1 =>
w(1:, 1:, 1, :)
793 ww0 =>
w(1:, 1:, 0, :)
835 if (spatialpointers)
then
839 ssi =>
si(1, :, :, :)
840 ssj =>
sj(2, :, :, :)
841 ssk =>
sk(2, :, :, :)
851 ssi =>
sj(:, 1, :, :)
852 ssj =>
si(:, 2, :, :)
853 ssk =>
sk(:, 2, :, :)
863 ssi =>
sk(:, :, 1, :)
864 ssj =>
si(:, :, 2, :)
865 ssk =>
sj(:, :, 2, :)
920 real(kind=realtype),
dimension(3),
intent(in) :: cf, cm
921 real(kind=realtype),
intent(out) :: bendingmoment
923 real(kind=realtype) :: elasticmomentx, elasticmomenty, &
933 bendingmoment = sqrt(elasticmomentx**2 + elasticmomentz**2)
940 bendingmoment = sqrt(elasticmomentx**2 + elasticmomenty**2)
952 integer(kind=inttype) :: npts
953 real(kind=realtype),
dimension(npts) :: x, y
954 real(kind=realtype) :: m, b
956 real(kind=realtype) :: sumx, sumy, sumx2, sumxy
957 integer(kind=inttype) :: i
966 sumx2 = sumx2 + x(i)*x(i)
967 sumxy = sumxy + x(i)*y(i)
969 m = (npts*sumxy-sumy*sumx)/(npts*sumx2-sumx**2)
970 b = (sumy*sumx2-sumx*sumxy)/(npts*sumx2-sumx**2)
974 & dcdalphadot, dcdq, dcdqdot)
993 real(kind=realtype),
dimension(3, ntimeintervalsspectral) :: force, &
995 real(kind=realtype),
dimension(8) :: dcdq, dcdqdot
996 real(kind=realtype),
dimension(8) :: dcdalpha, dcdalphadot
997 real(kind=realtype),
dimension(8) :: coef0
999 real(kind=realtype),
dimension(ntimeintervalsspectral, 8) :: &
1001 real(kind=realtype),
dimension(8) :: coef0dot
1002 real(kind=realtype),
dimension(ntimeintervalsspectral, 8) :: &
1004 real(kind=realtype),
dimension(ntimeintervalsspectral) :: &
1005 & intervalalpha, intervalalphadot
1006 real(kind=realtype),
dimension(ntimeintervalsspectral) :: &
1007 & intervalmach, intervalmachdot
1008 real(kind=realtype),
dimension(nsections) :: t
1009 integer(kind=inttype) :: i, sps, nn
1011 real(kind=realtype) :: a
1012 real(kind=realtype) :: fact, factmoment
1014 real(kind=realtype),
dimension(ntimeintervalsspectral) :: dphix, &
1016 real(kind=realtype),
dimension(ntimeintervalsspectral) :: dphixdot, &
1017 & dphiydot, dphizdot
1025 &
'ts q mode code needs to be updated in computetsderivatives!'
1077 t(nn) = t(nn) + (sps-1)*
sections(nn)%timeperiod/(&
1089 basecoef(sps, 1) = fact*(force(1, sps)*
liftdirection(1)+force(2&
1091 basecoef(sps, 2) = fact*(force(1, sps)*
dragdirection(1)+force(2&
1093 basecoef(sps, 3) = force(1, sps)*fact
1094 basecoef(sps, 4) = force(2, sps)*fact
1095 basecoef(sps, 5) = force(3, sps)*fact
1096 basecoef(sps, 6) = moment(1, sps)*factmoment
1097 basecoef(sps, 7) = moment(2, sps)*factmoment
1098 basecoef(sps, 8) = moment(3, sps)*factmoment
1110 resbasecoef(sps, i) = basecoef(sps, i) - (dcdalpha(i)*&
1111 & intervalalpha(sps)+coef0(i))
1117 & intervalalphadot, &
1124 call terminate(
'computetsderivatives', &
1125 &
'not a valid stability motion')
1158 real(kind=realtype),
dimension(3),
intent(in) :: freestreamaxis
1159 real(kind=realtype),
dimension(3),
intent(in) :: liftaxis
1160 real(kind=realtype),
intent(out) :: alpha, beta
1161 integer(kind=inttype),
intent(out) :: liftindex
1165 real(kind=realtype) :: rnorm
1166 integer(kind=inttype) :: flowindex, i
1167 real(kind=realtype),
dimension(3) :: freestreamaxisnorm
1168 integer(kind=inttype) :: temp
1173 real(kind=realtype) :: abs0
1174 real(kind=realtype) :: abs1
1175 real(kind=realtype) :: abs2
1176 real(kind=realtype) :: abs3
1177 real(kind=realtype) :: abs4
1178 real(kind=realtype) :: abs5
1179 real(kind=realtype) :: abs6
1180 real(kind=realtype) :: abs7
1183 if (liftaxis(1) .ge. 0.)
then
1188 if (liftaxis(2) .ge. 0.)
then
1193 if (liftaxis(1) .ge. 0.)
then
1198 if (liftaxis(3) .ge. 0.)
then
1204 if (abs0 .gt. abs2 .and. abs4 .gt. abs6)
then
1207 if (liftaxis(2) .ge. 0.)
then
1212 if (liftaxis(1) .ge. 0.)
then
1217 if (liftaxis(2) .ge. 0.)
then
1222 if (liftaxis(3) .ge. 0.)
then
1227 if (abs1 .gt. abs3 .and. abs5 .gt. abs7)
then
1235 rnorm = sqrt(freestreamaxis(1)**2 + freestreamaxis(2)**2 + &
1236 & freestreamaxis(3)**2)
1238 freestreamaxisnorm(i) = freestreamaxis(i)/rnorm
1240 if (liftindex .eq. 2)
then
1244 alpha = asin(freestreamaxisnorm(2))
1246 beta = -atan2(freestreamaxisnorm(3), freestreamaxisnorm(1))
1247 else if (liftindex .eq. 3)
then
1250 alpha = asin(freestreamaxisnorm(3))
1252 beta = atan2(freestreamaxisnorm(2), freestreamaxisnorm(1))
1254 call terminate(
'getdirangle',
'invalid lift direction')
1268 real(kind=
realtype),
dimension(8) :: dcdalpha, dcdalphadot, dcdbeta&
1269 & , dcdbetadot, dcdmach, dcdmachdot
1270 real(kind=
realtype),
dimension(8) :: dcdp, dcdpdot, dcdq, dcdqdot, &
1272 real(kind=
realtype),
dimension(8) :: coef0, coef0dot
1293 integer(kind=inttype) :: nn, nlevelsset
1374 coeftime(0) = 11.0_realtype/6.0_realtype
1377 coeftime(3) = -(1.0_realtype/3.0_realtype)
1381 print*,
'third-order ale not implemented yet.'
1406 real(kind=realtype),
dimension(3),
intent(in) :: x
1407 real(kind=realtype) ::
mynorm2
1409 mynorm2 = sqrt(x(1)**2 + x(2)**2 + x(3)**2)
1415 integer(kind=inttype) :: btype
1426 real(kind=
realtype),
dimension(3),
intent(in) :: a, b
1428 real(kind=
realtype),
dimension(3),
intent(out) :: c
1429 c(1) = a(2)*b(3) - a(3)*b(2)
1430 c(2) = a(3)*b(1) - a(1)*b(3)
1431 c(3) = a(1)*b(2) - a(2)*b(1)
1436 use su_cgns,
only : radian, degree
1441 integer,
intent(in) :: angle
1442 real(kind=realtype),
intent(out) :: mult, trans
1444 if (angle .eq. radian)
then
1448 else if (angle .eq. degree)
then
1450 mult =
pi/180.0_realtype
1454 &
'no idea how to convert this to si units')
1467 use su_cgns,
only : kilogram, meter
1472 integer,
intent(in) :: mass, len
1473 real(kind=realtype),
intent(out) :: mult, trans
1475 if (mass .eq. kilogram .and. len .eq. meter)
then
1481 &
'no idea how to convert this to si units')
1493 use su_cgns,
only : meter, centimeter, millimeter, foot, inch
1498 integer,
intent(in) :: len
1499 real(kind=realtype),
intent(out) :: mult, trans
1506 mult = 0.01_realtype
1509 mult = 0.001_realtype
1512 mult = 0.3048_realtype
1515 mult = 0.0254_realtype
1518 call terminate(
'silen',
'no idea how to convert this to si units')
1520 end subroutine silen
1531 use su_cgns,
only : kilogram, meter, second
1536 integer,
intent(in) :: mass, len, time
1537 real(kind=realtype),
intent(out) :: mult, trans
1539 if (mass .eq. kilogram .and. len .eq. meter .and. time .eq. second) &
1546 &
'no idea how to convert this to si units')
1559 use su_cgns,
only : kelvin, celsius, rankine, fahrenheit
1564 integer,
intent(in) :: temp
1565 real(kind=realtype),
intent(out) :: mult, trans
1576 trans = 273.16_realtype
1580 mult = 5.0_realtype/9.0_realtype
1585 mult = 5.0_realtype/9.0_realtype
1590 &
'no idea how to convert this to si units')
1594 subroutine siturb(mass, len, time, temp, turbname, mult, trans)
1603 use su_cgns,
only : kilogram, meter, second, kelvin
1608 integer,
intent(in) :: mass, len, time, temp
1609 character(len=*),
intent(in) :: turbname
1610 real(kind=realtype),
intent(out) :: mult, trans
1612 if (mass .eq. kilogram .and. len .eq. meter .and. time .eq. second &
1613 & .and. temp .eq. kelvin)
then
1618 call terminate(
'siturb',
'no idea how to convert this to si units'&
1632 use su_cgns,
only : meter, centimeter, millimeter, foot, inch, &
1638 integer,
intent(in) :: length, time
1639 real(kind=realtype),
intent(out) :: mult, trans
1642 select case (length)
1647 mult = 0.01_realtype
1650 mult = 0.001_realtype
1653 mult = 0.3048_realtype
1656 mult = 0.0254_realtype
1660 &
'no idea how to convert this length to si units')
1668 &
'no idea how to convert this time to si units')
real(kind=realtype), dimension(:, :), pointer rlv2
real(kind=realtype), dimension(:, :), pointer gamma2
real(kind=realtype), dimension(:, :), pointer rev0
integer(kind=inttype), dimension(:, :), pointer gcp
real(kind=realtype), dimension(:, :, :), pointer ww0
real(kind=realtype), dimension(:, :), pointer dd2wall
real(kind=realtype), dimension(:, :, :), pointer ssk
real(kind=realtype), dimension(:, :), pointer pp3
real(kind=realtype), dimension(:, :), pointer rlv0
integer(kind=inttype) istart
integer(kind=inttype) iend
real(kind=realtype), dimension(:, :), pointer rlv1
real(kind=realtype), dimension(:, :), pointer pp1
real(kind=realtype), dimension(:, :), pointer pp0
real(kind=realtype), dimension(:, :), pointer rev2
real(kind=realtype), dimension(:, :, :), pointer ww3
real(kind=realtype), dimension(:, :), pointer rev1
integer(kind=inttype) jsize
real(kind=realtype), dimension(:, :), pointer sface
real(kind=realtype), dimension(:, :, :), pointer ssj
integer(kind=inttype) jend
real(kind=realtype), dimension(:, :), pointer rlv3
real(kind=realtype), dimension(:, :, :), pointer ww1
real(kind=realtype), dimension(:, :), pointer gamma3
real(kind=realtype), dimension(:, :), pointer pp2
real(kind=realtype), dimension(:, :, :), pointer xx
integer(kind=inttype) jstart
real(kind=realtype), dimension(:, :), pointer gamma1
real(kind=realtype), dimension(:, :, :), pointer ww2
integer(kind=inttype) isize
real(kind=realtype), dimension(:, :, :), pointer ss
real(kind=realtype), dimension(:, :), pointer gamma0
real(kind=realtype), dimension(:, :), pointer rev3
real(kind=realtype), dimension(:, :, :), pointer ssi
real(kind=realtype), dimension(:, :, :), pointer sfacek
real(kind=realtype), dimension(:, :, :), pointer gamma
logical addgridvelocities
real(kind=realtype), dimension(:, :, :), pointer p
real(kind=realtype), dimension(:, :, :, :), pointer w
real(kind=realtype), dimension(:, :, :), pointer sfacei
real(kind=realtype), dimension(:, :, :), pointer d2wall
integer(kind=inttype), dimension(:, :, :), pointer globalcell
real(kind=realtype), dimension(:, :, :), pointer rlv
integer(kind=inttype), dimension(:), pointer bcfaceid
real(kind=realtype), dimension(:, :, :, :), pointer si
real(kind=realtype), dimension(:, :, :, :), pointer sj
real(kind=realtype), dimension(:, :, :, :), pointer s
real(kind=realtype), dimension(:, :, :), pointer rev
real(kind=realtype), dimension(:, :, :, :), pointer sk
real(kind=realtype), dimension(:, :, :), pointer sfacej
real(kind=realtype), dimension(:, :, :, :), pointer x
integer adflow_comm_world
integer(kind=inttype), parameter firstorder
integer(kind=inttype), parameter eulerwall
real(kind=realtype), parameter zero
integer(kind=inttype), parameter imax
real(kind=realtype), parameter threefourth
integer(kind=inttype), parameter kmin
real(kind=realtype), parameter pi
integer(kind=inttype), parameter jmax
integer(kind=inttype), parameter nswalladiabatic
integer(kind=inttype), parameter timespectral
integer(kind=inttype), parameter unsteady
real(kind=realtype), parameter one
real(kind=realtype), parameter half
integer(kind=inttype), parameter imin
integer(kind=inttype), parameter steady
real(kind=realtype), parameter two
real(kind=realtype), parameter fourth
integer(kind=inttype), parameter nswallisothermal
real(kind=realtype), parameter sqrtthree
integer(kind=inttype), parameter thirdorder
integer(kind=inttype), parameter secondorder
integer(kind=inttype), parameter kmax
integer(kind=inttype), parameter ransequations
integer(kind=inttype), parameter jmin
real(kind=realtype) rhoinfdim
real(kind=realtype) gammainf
real(kind=realtype) pinfdim
real(kind=realtype) timeref
integer(kind=inttype) noldlevels
real(kind=realtype), dimension(:, :), allocatable coefmeshale
integer(kind=inttype) currentlevel
integer(kind=inttype) groundlevel
real(kind=realtype), dimension(:), allocatable coeftime
real(kind=realtype), dimension(:), allocatable coeftimeale
integer(kind=inttype) noldsolavail
real(kind=realtype) timeunsteadyrestart
integer, parameter realtype
integer(kind=inttype) nsections
type(sectiontype), dimension(:), allocatable sections
subroutine silen(len, mult, trans)
logical function getcorrectfork()
subroutine computetsderivatives(force, moment, coef0, dcdalpha, dcdalphadot, dcdq, dcdqdot)
real(kind=realtype) function tsalphadot(degreepolalpha, coefpolalpha, degreefouralpha, omegafouralpha, coscoeffouralpha, sincoeffouralpha, t)
subroutine terminate(routinename, errormessage)
subroutine rotmatrixrigidbody(tnew, told, rotationmatrix, rotationpoint)
subroutine sipressure(mass, len, time, mult, trans)
subroutine sivelocity(length, time, mult, trans)
subroutine setcoeftimeintegrator()
real(kind=realtype) function rigidrotangle(degreepolrot, coefpolrot, degreefourrot, omegafourrot, coscoeffourrot, sincoeffourrot, t)
real(kind=realtype) function mydim(x, y)
real(kind=realtype) function tsmach(degreepolmach, coefpolmach, degreefourmach, omegafourmach, coscoeffourmach, sincoeffourmach, t)
subroutine sitemperature(temp, mult, trans)
real(kind=realtype) function secondderivativerigidrotangle(degreepolrot, coefpolrot, degreefourrot, omegafourrot, coscoeffourrot, sincoeffourrot, t)
subroutine getdirangle(freestreamaxis, liftaxis, liftindex, alpha, beta)
logical function iswalltype(btype)
subroutine siangle(angle, mult, trans)
subroutine computerootbendingmoment(cf, cm, bendingmoment)
real(kind=realtype) function derivativerigidrotangle(degreepolrot, coefpolrot, degreefourrot, omegafourrot, coscoeffourrot, sincoeffourrot, t)
real(kind=realtype) function tsalpha(degreepolalpha, coefpolalpha, degreefouralpha, omegafouralpha, coscoeffouralpha, sincoeffouralpha, t)
subroutine computeleastsquaresregression(y, x, npts, m, b)
subroutine setbcpointers(nn, spatialpointers)
subroutine sidensity(mass, len, mult, trans)
real(kind=realtype) function tsbetadot(degreepolbeta, coefpolbeta, degreefourbeta, omegafourbeta, coscoeffourbeta, sincoeffourbeta, t)
character(len=n) function char2str(chararray, n)
subroutine siturb(mass, len, time, temp, turbname, mult, trans)
subroutine cross_prod(a, b, c)
real(kind=realtype) function tsmachdot(degreepolmach, coefpolmach, degreefourmach, omegafourmach, coscoeffourmach, sincoeffourmach, t)
real(kind=realtype) function tsbeta(degreepolbeta, coefpolbeta, degreefourbeta, omegafourbeta, coscoeffourbeta, sincoeffourbeta, t)
subroutine stabilityderivativedriver()
subroutine mydim_fast_b(x, xd, y, yd, mydimd)
real(kind=realtype) function mynorm2(x)