15 character,
dimension(maxCGNSNameLen),
intent(in) :: chararray
16 integer(kind=intType),
intent(in) :: n
24 integer(kind=intType) :: i
31 function tsbeta(degreePolBeta, coefPolBeta, &
32 degreeFourBeta, omegaFourBeta, &
33 cosCoefFourBeta, sinCoefFourBeta, t)
44 real(kind=realtype) ::
tsbeta
48 integer(kind=intType),
intent(in) :: degreepolbeta
49 integer(kind=intType),
intent(in) :: degreefourbeta
51 real(kind=realtype),
intent(in) :: omegafourbeta, t
53 real(kind=realtype),
dimension(0:*),
intent(in) :: coefpolbeta
54 real(kind=realtype),
dimension(0:*),
intent(in) :: coscoeffourbeta
55 real(kind=realtype),
dimension(*),
intent(in) :: sincoeffourbeta
59 integer(kind=intType) :: nn
61 real(kind=realtype) :: beta, val
74 do nn = 1, degreepolbeta
75 beta = beta + coefpolbeta(nn) * (t**nn)
81 beta = beta + coscoeffourbeta(0)
82 do nn = 1, degreefourbeta
83 val = nn * omegafourbeta * t
84 beta = beta + coscoeffourbeta(nn) * cos(val) &
85 + sincoeffourbeta(nn) * sin(val)
95 degreeFourBeta, omegaFourBeta, &
96 cosCoefFourBeta, sinCoefFourBeta, t)
111 integer(kind=intType),
intent(in) :: degreepolbeta
112 integer(kind=intType),
intent(in) :: degreefourbeta
114 real(kind=realtype),
intent(in) :: omegafourbeta, t
116 real(kind=realtype),
dimension(0:*),
intent(in) :: coefpolbeta
117 real(kind=realtype),
dimension(0:*),
intent(in) :: coscoeffourbeta
118 real(kind=realtype),
dimension(*),
intent(in) :: sincoeffourbeta
122 integer(kind=intType) :: nn
124 real(kind=realtype) :: betadot, val
137 do nn = 1, degreepolbeta
138 betadot = betadot + nn * coefpolbeta(nn) * (t**(nn - 1))
144 do nn = 1, degreefourbeta
145 val = nn * omegafourbeta
146 betadot = betadot - val * coscoeffourbeta(nn) * sin(val * t) &
147 + val * sincoeffourbeta(nn) * cos(val * t)
156 function tsmach(degreePolMach, coefPolMach, &
157 degreeFourMach, omegaFourMach, &
158 cosCoefFourMach, sinCoefFourMach, t)
169 real(kind=realtype) ::
tsmach
173 integer(kind=intType),
intent(in) :: degreepolmach
174 integer(kind=intType),
intent(in) :: degreefourmach
176 real(kind=realtype),
intent(in) :: omegafourmach, t
178 real(kind=realtype),
dimension(0:*),
intent(in) :: coefpolmach
179 real(kind=realtype),
dimension(0:*),
intent(in) :: coscoeffourmach
180 real(kind=realtype),
dimension(*),
intent(in) :: sincoeffourmach
184 integer(kind=intType) :: nn
186 real(kind=realtype) :: intervalmach, val
198 intervalmach = coefpolmach(0)
199 do nn = 1, degreepolmach
200 intervalmach = intervalmach + coefpolmach(nn) * (t**nn)
206 intervalmach = intervalmach + coscoeffourmach(0)
207 do nn = 1, degreefourmach
208 val = nn * omegafourmach * t
209 intervalmach = intervalmach + coscoeffourmach(nn) * cos(val) &
210 + sincoeffourmach(nn) * sin(val)
212 print *,
'inTSMach', intervalmach, nn, val, t
220 degreeFourMach, omegaFourMach, &
221 cosCoefFourMach, sinCoefFourMach, t)
236 integer(kind=intType),
intent(in) :: degreepolmach
237 integer(kind=intType),
intent(in) :: degreefourmach
239 real(kind=realtype),
intent(in) :: omegafourmach, t
241 real(kind=realtype),
dimension(0:*),
intent(in) :: coefpolmach
242 real(kind=realtype),
dimension(0:*),
intent(in) :: coscoeffourmach
243 real(kind=realtype),
dimension(*),
intent(in) :: sincoeffourmach
247 integer(kind=intType) :: nn
249 real(kind=realtype) :: machdot, val
262 do nn = 1, degreepolmach
263 machdot = machdot + nn * coefpolmach(nn) * (t**(nn - 1))
269 do nn = 1, degreefourmach
270 val = nn * omegafourmach
271 machdot = machdot - val * coscoeffourmach(nn) * sin(val * t) &
272 + val * sincoeffourmach(nn) * cos(val * t)
281 function tsalpha(degreePolAlpha, coefPolAlpha, &
282 degreeFourAlpha, omegaFourAlpha, &
283 cosCoefFourAlpha, sinCoefFourAlpha, t)
298 integer(kind=intType),
intent(in) :: degreepolalpha
299 integer(kind=intType),
intent(in) :: degreefouralpha
301 real(kind=realtype),
intent(in) :: omegafouralpha, t
303 real(kind=realtype),
dimension(0:*),
intent(in) :: coefpolalpha
304 real(kind=realtype),
dimension(0:*),
intent(in) :: coscoeffouralpha
305 real(kind=realtype),
dimension(*),
intent(in) :: sincoeffouralpha
309 integer(kind=intType) :: nn
311 real(kind=realtype) :: alpha, val
322 alpha = coefpolalpha(0)
323 do nn = 1, degreepolalpha
324 alpha = alpha + coefpolalpha(nn) * (t**nn)
330 alpha = alpha + coscoeffouralpha(0)
331 do nn = 1, degreefouralpha
332 val = nn * omegafouralpha * t
333 alpha = alpha + coscoeffouralpha(nn) * cos(val) &
334 + sincoeffouralpha(nn) * sin(val)
344 degreeFourAlpha, omegaFourAlpha, &
345 cosCoefFourAlpha, sinCoefFourAlpha, t)
360 integer(kind=intType),
intent(in) :: degreepolalpha
361 integer(kind=intType),
intent(in) :: degreefouralpha
363 real(kind=realtype),
intent(in) :: omegafouralpha, t
365 real(kind=realtype),
dimension(0:*),
intent(in) :: coefpolalpha
366 real(kind=realtype),
dimension(0:*),
intent(in) :: coscoeffouralpha
367 real(kind=realtype),
dimension(*),
intent(in) :: sincoeffouralpha
371 integer(kind=intType) :: nn
373 real(kind=realtype) :: alphadot, val
386 do nn = 1, degreepolalpha
387 alphadot = alphadot + nn * coefpolalpha(nn) * (t**(nn - 1))
393 do nn = 1, degreefouralpha
394 val = nn * omegafouralpha
395 alphadot = alphadot - val * coscoeffouralpha(nn) * sin(val * t) &
396 + val * sincoeffouralpha(nn) * cos(val * t)
428 integer(kind=intType),
intent(in) :: degreepolrot
429 integer(kind=intType),
intent(in) :: degreefourrot
431 real(kind=realtype),
intent(in) :: omegafourrot, t
433 real(kind=realtype),
dimension(0:*),
intent(in) :: coefpolrot
434 real(kind=realtype),
dimension(0:*),
intent(in) :: coscoeffourrot
435 real(kind=realtype),
dimension(*),
intent(in) :: sincoeffourrot
439 integer(kind=intType) :: nn
441 real(kind=realtype) :: dphi, val
453 do nn = 1, degreepolrot
454 dphi = dphi + nn * coefpolrot(nn) * (t**(nn - 1))
459 do nn = 1, degreefourrot
460 val = nn * omegafourrot
461 dphi = dphi - val * coscoeffourrot(nn) * sin(val * t)
462 dphi = dphi + val * sincoeffourrot(nn) * cos(val * t)
476 real(kind=realtype) x, y
477 real(kind=realtype) ::
mydim
480 if (
mydim < 0.0)
then
512 character(len=*),
intent(in) :: routineName
513 character(len=*),
intent(in) :: errorMessage
519 integer,
parameter :: maxCharLine = 55
523 integer :: ierr, len, i2
526 character(len=len_trim(errorMessage)) :: message
527 character(len=8) :: integerString
535 message = errormessage
541 print
"(a)",
"#--------------------------- !!! Error !!! &
542 &----------------------------"
544 write (integerstring,
"(i8)")
myid
545 integerstring = adjustl(integerstring)
547 print
"(2a)",
"#* Terminate called by processor ", &
552 print
"(2a)",
"#* Run-time error in procedure ", &
564 message = adjustl(message)
565 len = len_trim(message)
566 i2 = min(maxcharline, len)
568 if (i2 < len) i2 = index(message(:i2),
" ", .true.) - 1
569 if (i2 < 0) i2 = index(message,
" ") - 1
576 print
"(2a)",
"#* Error message: ", &
580 print
"(2a)",
"#* ", &
590 message = message(i2 + 1:)
597 print
"(a)",
"#* Now exiting"
598 print
"(a)",
"#------------------------------------------&
599 &----------------------------"
626 real(kind=realtype),
intent(in) :: tnew, told
628 real(kind=realtype),
dimension(3),
intent(out) :: rotationpoint
629 real(kind=realtype),
dimension(3, 3),
intent(out) :: rotationmatrix
633 integer(kind=intType) :: i, j
635 real(kind=realtype) :: phi
636 real(kind=realtype) :: cosx, cosy, cosz, sinx, siny, sinz
638 real(kind=realtype),
dimension(3, 3) :: mnew, mold
669 mnew(1, 1) = cosy * cosz
670 mnew(2, 1) = cosy * sinz
673 mnew(1, 2) = sinx * siny * cosz - cosx * sinz
674 mnew(2, 2) = sinx * siny * sinz + cosx * cosz
675 mnew(3, 2) = sinx * cosy
677 mnew(1, 3) = cosx * siny * cosz + sinx * sinz
678 mnew(2, 3) = cosx * siny * sinz - sinx * cosz
679 mnew(3, 3) = cosx * cosy
708 mold(1, 1) = cosy * cosz
709 mold(2, 1) = cosy * sinz
712 mold(1, 2) = sinx * siny * cosz - cosx * sinz
713 mold(2, 2) = sinx * siny * sinz + cosx * cosz
714 mold(3, 2) = sinx * cosy
716 mold(1, 3) = cosx * siny * cosz + sinx * sinz
717 mold(2, 3) = cosx * siny * sinz - sinx * cosz
718 mold(3, 3) = cosx * cosy
726 rotationmatrix(i, j) = mnew(i, 1) * mold(j, 1) &
727 + mnew(i, 2) * mold(j, 2) &
728 + mnew(i, 3) * mold(j, 3)
773 integer(kind=intType),
intent(in) :: degreepolrot
774 integer(kind=intType),
intent(in) :: degreefourrot
776 real(kind=realtype),
intent(in) :: omegafourrot, t
778 real(kind=realtype),
dimension(0:*),
intent(in) :: coefpolrot
779 real(kind=realtype),
dimension(0:*),
intent(in) :: coscoeffourrot
780 real(kind=realtype),
dimension(*),
intent(in) :: sincoeffourrot
784 integer(kind=intType) :: nn
786 real(kind=realtype) :: dphi, val
798 do nn = 2, degreepolrot
799 dphi = dphi + (nn - 1) * nn * coefpolrot(nn) * (t**(nn - 2))
804 do nn = 1, degreefourrot
805 val = nn * omegafourrot
806 dphi = dphi - val**2 * sincoeffourrot(nn) * sin(val * t)
807 dphi = dphi - val**2 * coscoeffourrot(nn) * cos(val * t)
818 degreeFourRot, omegaFourRot, &
819 cosCoefFourRot, sinCoefFourRot, t)
835 integer(kind=intType),
intent(in) :: degreepolrot
836 integer(kind=intType),
intent(in) :: degreefourrot
838 real(kind=realtype),
intent(in) :: omegafourrot, t
840 real(kind=realtype),
dimension(0:*),
intent(in) :: coefpolrot
841 real(kind=realtype),
dimension(0:*),
intent(in) :: coscoeffourrot
842 real(kind=realtype),
dimension(*),
intent(in) :: sincoeffourrot
846 integer(kind=intType) :: nn
848 real(kind=realtype) :: phi, val
861 do nn = 1, degreepolrot
862 phi = phi + coefpolrot(nn) * (t**nn)
868 phi = phi + coscoeffourrot(0)
869 do nn = 1, degreefourrot
870 val = nn * omegafourrot * t
871 phi = phi + coscoeffourrot(nn) * cos(val) &
872 + sincoeffourrot(nn) * sin(val)
889 si,
sj,
sk,
s,
globalcell,
bcdata,
nx,
il,
ie,
ib, &
894 gamma0,
gamma1,
gamma2,
gamma3,
gcp,
xx,
ss,
ssi,
ssj,
ssk,
dd2wall, &
900 integer(kind=intType),
intent(in) :: nn
901 logical,
intent(in) :: spatialPointers
922 ww3 =>
w(3, 1:, 1:, :)
923 ww2 =>
w(2, 1:, 1:, :)
924 ww1 =>
w(1, 1:, 1:, :)
925 ww0 =>
w(0, 1:, 1:, :)
982 ww3 =>
w(1:, 3, 1:, :)
983 ww2 =>
w(1:, 2, 1:, :)
984 ww1 =>
w(1:, 1, 1:, :)
985 ww0 =>
w(1:, 0, 1:, :)
1042 ww3 =>
w(1:, 1:, 3, :)
1043 ww2 =>
w(1:, 1:, 2, :)
1044 ww1 =>
w(1:, 1:, 1, :)
1045 ww0 =>
w(1:, 1:, 0, :)
1100 if (spatialpointers)
then
1104 ssi =>
si(1, :, :, :)
1105 ssj =>
sj(2, :, :, :)
1106 ssk =>
sk(2, :, :, :)
1109 xx =>
x(
il, :, :, :)
1113 ss =>
s(
il, :, :, :)
1116 ssi =>
sj(:, 1, :, :)
1117 ssj =>
si(:, 2, :, :)
1118 ssk =>
sk(:, 2, :, :)
1121 xx =>
x(:,
jl, :, :)
1125 ss =>
s(:,
jl, :, :)
1128 ssi =>
sk(:, :, 1, :)
1129 ssj =>
si(:, :, 2, :)
1130 ssk =>
sj(:, :, 2, :)
1133 xx =>
x(:, :,
kl, :)
1137 ss =>
s(:, :,
kl, :)
1190 real(kind=realtype),
intent(in),
dimension(3) :: cf, cm
1191 real(kind=realtype),
intent(out) :: bendingmoment
1194 real(kind=realtype) :: elasticmomentx, elasticmomenty, elasticmomentz
1195 bendingmoment =
zero
1198 elasticmomentx = cm(1) + cf(2) * (
pointrefec(3) - &
1201 elasticmomentz = cm(3) - cf(2) * (
pointrefec(1) - &
1204 bendingmoment = sqrt(elasticmomentx**2 + elasticmomentz**2)
1207 elasticmomentx = cm(1) + cf(3) * (
pointrefec(2) - &
1210 elasticmomenty = cm(2) + cf(3) * (
pointrefec(1) - &
1213 bendingmoment = sqrt(elasticmomentx**2 + elasticmomenty**2)
1226 integer(kind=intType) :: npts
1227 real(kind=realtype),
dimension(npts) :: x, y
1228 real(kind=realtype) :: m, b
1231 real(kind=realtype) :: sumx, sumy, sumx2, sumxy
1232 integer(kind=intType) :: i
1243 sumx2 = sumx2 + x(i) * x(i)
1244 sumxy = sumxy + x(i) * y(i)
1247 m = ((npts * sumxy) - (sumy * sumx)) / ((npts * sumx2) - (sumx)**2)
1248 b = (sumy * sumx2 - (sumx * sumxy)) / ((npts * sumx2) - (sumx)**2)
1253 dcdalphadot, dcdq, dcdqdot)
1273 real(kind=realtype),
dimension(3, nTimeIntervalsSpectral) :: force, moment
1274 real(kind=realtype),
dimension(8) :: dcdq, dcdqdot
1275 real(kind=realtype),
dimension(8) :: dcdalpha, dcdalphadot
1276 real(kind=realtype),
dimension(8) :: coef0
1279 real(kind=realtype),
dimension(nTimeIntervalsSpectral, 8) :: basecoef
1280 real(kind=realtype),
dimension(8) :: coef0dot
1281 real(kind=realtype),
dimension(nTimeIntervalsSpectral, 8) :: resbasecoef
1282 real(kind=realtype),
dimension(nTimeIntervalsSpectral) :: intervalalpha, intervalalphadot
1283 real(kind=realtype),
dimension(nTimeIntervalsSpectral) :: intervalmach, intervalmachdot
1284 real(kind=realtype),
dimension(nSections) :: t
1285 integer(kind=intType) :: i, sps, nn
1287 real(kind=realtype) :: a
1288 real(kind=realtype) :: fact, factmoment
1290 real(kind=realtype),
dimension(nTimeIntervalsSpectral) :: dphix, dphiy, dphiz
1291 real(kind=realtype),
dimension(nTimeIntervalsSpectral) :: dphixdot, dphiydot, dphizdot
1300 print *,
'TS Q Mode code needs to be updated in computeTSDerivatives!'
1365 t(nn) = t(nn) + (sps - 1) *
sections(nn)%timePeriod &
1381 basecoef(sps, 1) = fact * ( &
1385 basecoef(sps, 2) = fact * ( &
1389 basecoef(sps, 3) = force(1, sps) * fact
1390 basecoef(sps, 4) = force(2, sps) * fact
1391 basecoef(sps, 5) = force(3, sps) * fact
1392 basecoef(sps, 6) = moment(1, sps) * factmoment
1393 basecoef(sps, 7) = moment(2, sps) * factmoment
1394 basecoef(sps, 8) = moment(3, sps) * factmoment
1407 resbasecoef(sps, i) = basecoef(sps, i) - (dcdalpha(i) * intervalalpha(sps) + coef0(i))
1415 dcdalphadot(i), coef0dot(i))
1422 call terminate(
'computeTSDerivatives',
'Not a valid stability motion')
1427 subroutine getdirangle(freeStreamAxis, liftAxis, liftIndex, alpha, beta)
1456 real(kind=realtype),
dimension(3),
intent(in) :: freestreamaxis
1457 real(kind=realtype),
dimension(3),
intent(in) :: liftaxis
1458 real(kind=realtype),
intent(out) :: alpha, beta
1459 integer(kind=intType),
intent(out) :: liftIndex
1463 real(kind=realtype) :: rnorm
1464 integer(kind=intType) :: flowIndex, i
1465 real(kind=realtype),
dimension(3) :: freestreamaxisnorm
1466 integer(kind=intType) :: temp
1473 if (abs(liftaxis(1)) > abs(liftaxis(2)) .and. &
1474 abs(liftaxis(1)) > abs(liftaxis(3)))
then
1476 else if (abs(liftaxis(2)) > abs(liftaxis(1)) .and. &
1477 abs(liftaxis(2)) > abs(liftaxis(3)))
then
1486 rnorm = sqrt(freestreamaxis(1)**2 + freestreamaxis(2)**2 + freestreamaxis(3)**2)
1488 freestreamaxisnorm(i) = freestreamaxis(i) / rnorm
1491 if (liftindex == 2)
then
1496 alpha = asin(freestreamaxisnorm(2))
1500 beta = -atan2(freestreamaxisnorm(3), freestreamaxisnorm(1))
1502 elseif (liftindex == 3)
then
1507 alpha = asin(freestreamaxisnorm(3))
1511 beta = atan2(freestreamaxisnorm(2), freestreamaxisnorm(1))
1513 call terminate(
'getDirAngle',
'Invalid Lift Direction')
1527 real(kind=
realtype),
dimension(8) :: dcdalpha, dcdalphadot, dcdbeta, &
1528 dcdbetadot, dcdmach, dcdmachdot
1529 real(kind=
realtype),
dimension(8) :: dcdp, dcdpdot, dcdq, dcdqdot, dcdr, dcdrdot
1530 real(kind=
realtype),
dimension(8) :: coef0, coef0dot
1552 integer(kind=intType) :: nn, nLevelsSet
1660 coeftime(0) = 11.0_realtype / 6.0_realtype
1663 coeftime(3) = -1.0_realtype / 3.0_realtype
1668 print *,
'Third-order ALE not implemented yet.'
1699 real(kind=realtype),
dimension(3),
intent(in) :: x
1700 real(kind=realtype) ::
mynorm2
1701 mynorm2 = sqrt(x(1)**2 + x(2)**2 + x(3)**2)
1708 integer(kind=intType) :: btype
1725 real(kind=
realtype),
dimension(3),
intent(in) :: a, b
1728 real(kind=
realtype),
dimension(3),
intent(out) :: c
1730 c(1) = a(2) * b(3) - a(3) * b(2)
1731 c(2) = a(3) * b(1) - a(1) * b(3)
1732 c(3) = a(1) * b(2) - a(2) * b(1)
1739 use su_cgns,
only: radian, degree
1744 integer,
intent(in) :: angle
1745 real(kind=realtype),
intent(out) :: mult, trans
1749 if (angle == radian)
then
1756 else if (angle == degree)
then
1760 mult =
pi / 180.0_realtype
1766 "No idea how to convert this to SI units")
1781 use su_cgns,
only: kilogram, meter
1786 integer,
intent(in) :: mass, len
1787 real(kind=realtype),
intent(out) :: mult, trans
1791 if (mass == kilogram .and. len == meter)
then
1801 "No idea how to convert this to SI units")
1815 use su_cgns,
only: meter, centimeter, millimeter, foot, inch
1820 integer,
intent(in) :: len
1821 real(kind=realtype),
intent(out) :: mult, trans
1831 mult = 0.01_realtype; trans =
zero
1834 mult = 0.001_realtype; trans =
zero
1837 mult = 0.3048_realtype; trans =
zero
1840 mult = 0.0254_realtype; trans =
zero
1844 "No idea how to convert this to SI units")
1848 end subroutine silen
1859 use su_cgns,
only: kilogram, meter, second
1864 integer,
intent(in) :: mass, len, time
1865 real(kind=realtype),
intent(out) :: mult, trans
1869 if (mass == kilogram .and. len == meter .and. time == second)
then
1879 "No idea how to convert this to SI units")
1894 use su_cgns,
only: kelvin, celsius, rankine, fahrenheit
1899 integer,
intent(in) :: temp
1900 real(kind=realtype),
intent(out) :: mult, trans
1918 trans = 273.16_realtype
1925 mult = 5.0_realtype / 9.0_realtype
1933 mult = 5.0_realtype / 9.0_realtype
1941 "No idea how to convert this to SI units")
1946 subroutine siturb(mass, len, time, temp, turbName, mult, trans)
1955 use su_cgns,
only: kilogram, meter, second, kelvin
1960 integer,
intent(in) :: mass, len, time, temp
1961 character(len=*),
intent(in) :: turbName
1962 real(kind=realtype),
intent(out) :: mult, trans
1966 if (mass == kilogram .and. len == meter .and. &
1967 time == second .and. temp == kelvin)
then
1977 "No idea how to convert this to SI units")
1992 use su_cgns,
only: meter, centimeter, millimeter, foot, inch, second
1997 integer,
intent(in) :: length, time
1998 real(kind=realtype),
intent(out) :: mult, trans
2003 select case (length)
2009 mult = 0.01_realtype; trans =
zero
2012 mult = 0.001_realtype; trans =
zero
2015 mult = 0.3048_realtype; trans =
zero
2018 mult = 0.0254_realtype; trans =
zero
2022 "No idea how to convert this length to SI units")
2035 "No idea how to convert this time to SI units")
2047 #ifndef USE_TAPENADE
2056 &
gamma,
x,
xd,
d2wall,
d2walld,
si,
sid,
sj,
sjd,
sk,
skd,
s,
sd, &
2057 &
globalcell,
bcdata,
bcdatad,
nx,
il,
ie,
ib,
ny,
jl,
je,
jb,
nz,
kl,&
2060 use bcpointers_d,
only: ww0, ww0d, ww1, ww1d, ww2, ww2d, ww3, ww3d,&
2061 & pp0, pp0d, pp1, pp1d, pp2, pp2d, pp3, pp3d, rlv0, rlv0d, rlv1, rlv1d&
2062 & , rlv2, rlv2d, rlv3, rlv3d, rev0, rev0d, rev1, rev1d, rev2, rev2d, &
2063 & rev3, rev3d, gamma0, gamma1, gamma2, gamma3, gcp, xx, xxd, ss, ssd, &
2064 & ssi, ssid, ssj, ssjd, ssk, sskd, dd2wall, sface, istart, iend, &
2065 & jstart, jend, isize, jsize
2069 integer(kind=inttype),
intent(in) :: nn
2070 logical,
intent(in) :: spatialpointers
2073 istart =
bcdata(nn)%icbeg
2075 jstart =
bcdata(nn)%jcbeg
2078 isize = iend - istart + 1
2079 jsize = jend - jstart + 1
2085 ww3d =>
wd(3, 1:, 1:, :)
2086 ww3 =>
w(3, 1:, 1:, :)
2087 ww2d =>
wd(2, 1:, 1:, :)
2088 ww2 =>
w(2, 1:, 1:, :)
2089 ww1d =>
wd(1, 1:, 1:, :)
2090 ww1 =>
w(1, 1:, 1:, :)
2091 ww0d =>
wd(0, 1:, 1:, :)
2092 ww0 =>
w(0, 1:, 1:, :)
2093 pp3d =>
pd(3, 1:, 1:)
2095 pp2d =>
pd(2, 1:, 1:)
2097 pp1d =>
pd(1, 1:, 1:)
2099 pp0d =>
pd(0, 1:, 1:)
2101 rlv3d =>
rlvd(3, 1:, 1:)
2102 rlv3 =>
rlv(3, 1:, 1:)
2103 rlv2d =>
rlvd(2, 1:, 1:)
2104 rlv2 =>
rlv(2, 1:, 1:)
2105 rlv1d =>
rlvd(1, 1:, 1:)
2106 rlv1 =>
rlv(1, 1:, 1:)
2107 rlv0d =>
rlvd(0, 1:, 1:)
2108 rlv0 =>
rlv(0, 1:, 1:)
2109 rev3d =>
revd(3, 1:, 1:)
2110 rev3 =>
rev(3, 1:, 1:)
2111 rev2d =>
revd(2, 1:, 1:)
2112 rev2 =>
rev(2, 1:, 1:)
2113 rev1d =>
revd(1, 1:, 1:)
2114 rev1 =>
rev(1, 1:, 1:)
2115 rev0d =>
revd(0, 1:, 1:)
2116 rev0 =>
rev(0, 1:, 1:)
2117 gamma3 =>
gamma(3, 1:, 1:)
2118 gamma2 =>
gamma(2, 1:, 1:)
2119 gamma1 =>
gamma(1, 1:, 1:)
2120 gamma0 =>
gamma(0, 1:, 1:)
2124 ww3d =>
wd(
nx, 1:, 1:, :)
2125 ww3 =>
w(
nx, 1:, 1:, :)
2126 ww2d =>
wd(
il, 1:, 1:, :)
2127 ww2 =>
w(
il, 1:, 1:, :)
2128 ww1d =>
wd(
ie, 1:, 1:, :)
2129 ww1 =>
w(
ie, 1:, 1:, :)
2130 ww0d =>
wd(
ib, 1:, 1:, :)
2131 ww0 =>
w(
ib, 1:, 1:, :)
2132 pp3d =>
pd(
nx, 1:, 1:)
2133 pp3 =>
p(
nx, 1:, 1:)
2134 pp2d =>
pd(
il, 1:, 1:)
2135 pp2 =>
p(
il, 1:, 1:)
2136 pp1d =>
pd(
ie, 1:, 1:)
2137 pp1 =>
p(
ie, 1:, 1:)
2138 pp0d =>
pd(
ib, 1:, 1:)
2139 pp0 =>
p(
ib, 1:, 1:)
2140 rlv3d =>
rlvd(
nx, 1:, 1:)
2141 rlv3 =>
rlv(
nx, 1:, 1:)
2142 rlv2d =>
rlvd(
il, 1:, 1:)
2143 rlv2 =>
rlv(
il, 1:, 1:)
2144 rlv1d =>
rlvd(
ie, 1:, 1:)
2145 rlv1 =>
rlv(
ie, 1:, 1:)
2146 rlv0d =>
rlvd(
ib, 1:, 1:)
2147 rlv0 =>
rlv(
ib, 1:, 1:)
2148 rev3d =>
revd(
nx, 1:, 1:)
2149 rev3 =>
rev(
nx, 1:, 1:)
2150 rev2d =>
revd(
il, 1:, 1:)
2151 rev2 =>
rev(
il, 1:, 1:)
2152 rev1d =>
revd(
ie, 1:, 1:)
2153 rev1 =>
rev(
ie, 1:, 1:)
2154 rev0d =>
revd(
ib, 1:, 1:)
2155 rev0 =>
rev(
ib, 1:, 1:)
2163 ww3d =>
wd(1:, 3, 1:, :)
2164 ww3 =>
w(1:, 3, 1:, :)
2165 ww2d =>
wd(1:, 2, 1:, :)
2166 ww2 =>
w(1:, 2, 1:, :)
2167 ww1d =>
wd(1:, 1, 1:, :)
2168 ww1 =>
w(1:, 1, 1:, :)
2169 ww0d =>
wd(1:, 0, 1:, :)
2170 ww0 =>
w(1:, 0, 1:, :)
2171 pp3d =>
pd(1:, 3, 1:)
2173 pp2d =>
pd(1:, 2, 1:)
2175 pp1d =>
pd(1:, 1, 1:)
2177 pp0d =>
pd(1:, 0, 1:)
2179 rlv3d =>
rlvd(1:, 3, 1:)
2180 rlv3 =>
rlv(1:, 3, 1:)
2181 rlv2d =>
rlvd(1:, 2, 1:)
2182 rlv2 =>
rlv(1:, 2, 1:)
2183 rlv1d =>
rlvd(1:, 1, 1:)
2184 rlv1 =>
rlv(1:, 1, 1:)
2185 rlv0d =>
rlvd(1:, 0, 1:)
2186 rlv0 =>
rlv(1:, 0, 1:)
2187 rev3d =>
revd(1:, 3, 1:)
2188 rev3 =>
rev(1:, 3, 1:)
2189 rev2d =>
revd(1:, 2, 1:)
2190 rev2 =>
rev(1:, 2, 1:)
2191 rev1d =>
revd(1:, 1, 1:)
2192 rev1 =>
rev(1:, 1, 1:)
2193 rev0d =>
revd(1:, 0, 1:)
2194 rev0 =>
rev(1:, 0, 1:)
2195 gamma3 =>
gamma(1:, 3, 1:)
2196 gamma2 =>
gamma(1:, 2, 1:)
2197 gamma1 =>
gamma(1:, 1, 1:)
2198 gamma0 =>
gamma(1:, 0, 1:)
2202 ww3d =>
wd(1:,
ny, 1:, :)
2203 ww3 =>
w(1:,
ny, 1:, :)
2204 ww2d =>
wd(1:,
jl, 1:, :)
2205 ww2 =>
w(1:,
jl, 1:, :)
2206 ww1d =>
wd(1:,
je, 1:, :)
2207 ww1 =>
w(1:,
je, 1:, :)
2208 ww0d =>
wd(1:,
jb, 1:, :)
2209 ww0 =>
w(1:,
jb, 1:, :)
2210 pp3d =>
pd(1:,
ny, 1:)
2211 pp3 =>
p(1:,
ny, 1:)
2212 pp2d =>
pd(1:,
jl, 1:)
2213 pp2 =>
p(1:,
jl, 1:)
2214 pp1d =>
pd(1:,
je, 1:)
2215 pp1 =>
p(1:,
je, 1:)
2216 pp0d =>
pd(1:,
jb, 1:)
2217 pp0 =>
p(1:,
jb, 1:)
2218 rlv3d =>
rlvd(1:,
ny, 1:)
2219 rlv3 =>
rlv(1:,
ny, 1:)
2220 rlv2d =>
rlvd(1:,
jl, 1:)
2221 rlv2 =>
rlv(1:,
jl, 1:)
2222 rlv1d =>
rlvd(1:,
je, 1:)
2223 rlv1 =>
rlv(1:,
je, 1:)
2224 rlv0d =>
rlvd(1:,
jb, 1:)
2225 rlv0 =>
rlv(1:,
jb, 1:)
2226 rev3d =>
revd(1:,
ny, 1:)
2227 rev3 =>
rev(1:,
ny, 1:)
2228 rev2d =>
revd(1:,
jl, 1:)
2229 rev2 =>
rev(1:,
jl, 1:)
2230 rev1d =>
revd(1:,
je, 1:)
2231 rev1 =>
rev(1:,
je, 1:)
2232 rev0d =>
revd(1:,
jb, 1:)
2233 rev0 =>
rev(1:,
jb, 1:)
2241 ww3d =>
wd(1:, 1:, 3, :)
2242 ww3 =>
w(1:, 1:, 3, :)
2243 ww2d =>
wd(1:, 1:, 2, :)
2244 ww2 =>
w(1:, 1:, 2, :)
2245 ww1d =>
wd(1:, 1:, 1, :)
2246 ww1 =>
w(1:, 1:, 1, :)
2247 ww0d =>
wd(1:, 1:, 0, :)
2248 ww0 =>
w(1:, 1:, 0, :)
2249 pp3d =>
pd(1:, 1:, 3)
2251 pp2d =>
pd(1:, 1:, 2)
2253 pp1d =>
pd(1:, 1:, 1)
2255 pp0d =>
pd(1:, 1:, 0)
2257 rlv3d =>
rlvd(1:, 1:, 3)
2258 rlv3 =>
rlv(1:, 1:, 3)
2259 rlv2d =>
rlvd(1:, 1:, 2)
2260 rlv2 =>
rlv(1:, 1:, 2)
2261 rlv1d =>
rlvd(1:, 1:, 1)
2262 rlv1 =>
rlv(1:, 1:, 1)
2263 rlv0d =>
rlvd(1:, 1:, 0)
2264 rlv0 =>
rlv(1:, 1:, 0)
2265 rev3d =>
revd(1:, 1:, 3)
2266 rev3 =>
rev(1:, 1:, 3)
2267 rev2d =>
revd(1:, 1:, 2)
2268 rev2 =>
rev(1:, 1:, 2)
2269 rev1d =>
revd(1:, 1:, 1)
2270 rev1 =>
rev(1:, 1:, 1)
2271 rev0d =>
revd(1:, 1:, 0)
2272 rev0 =>
rev(1:, 1:, 0)
2273 gamma3 =>
gamma(1:, 1:, 3)
2274 gamma2 =>
gamma(1:, 1:, 2)
2275 gamma1 =>
gamma(1:, 1:, 1)
2276 gamma0 =>
gamma(1:, 1:, 0)
2280 ww3d =>
wd(1:, 1:,
nz, :)
2281 ww3 =>
w(1:, 1:,
nz, :)
2282 ww2d =>
wd(1:, 1:,
kl, :)
2283 ww2 =>
w(1:, 1:,
kl, :)
2284 ww1d =>
wd(1:, 1:,
ke, :)
2285 ww1 =>
w(1:, 1:,
ke, :)
2286 ww0d =>
wd(1:, 1:,
kb, :)
2287 ww0 =>
w(1:, 1:,
kb, :)
2288 pp3d =>
pd(1:, 1:,
nz)
2289 pp3 =>
p(1:, 1:,
nz)
2290 pp2d =>
pd(1:, 1:,
kl)
2291 pp2 =>
p(1:, 1:,
kl)
2292 pp1d =>
pd(1:, 1:,
ke)
2293 pp1 =>
p(1:, 1:,
ke)
2294 pp0d =>
pd(1:, 1:,
kb)
2295 pp0 =>
p(1:, 1:,
kb)
2296 rlv3d =>
rlvd(1:, 1:,
nz)
2297 rlv3 =>
rlv(1:, 1:,
nz)
2298 rlv2d =>
rlvd(1:, 1:,
kl)
2299 rlv2 =>
rlv(1:, 1:,
kl)
2300 rlv1d =>
rlvd(1:, 1:,
ke)
2301 rlv1 =>
rlv(1:, 1:,
ke)
2302 rlv0d =>
rlvd(1:, 1:,
kb)
2303 rlv0 =>
rlv(1:, 1:,
kb)
2304 rev3d =>
revd(1:, 1:,
nz)
2305 rev3 =>
rev(1:, 1:,
nz)
2306 rev2d =>
revd(1:, 1:,
kl)
2307 rev2 =>
rev(1:, 1:,
kl)
2308 rev1d =>
revd(1:, 1:,
ke)
2309 rev1 =>
rev(1:, 1:,
ke)
2310 rev0d =>
revd(1:, 1:,
kb)
2311 rev0 =>
rev(1:, 1:,
kb)
2318 if (spatialpointers)
then
2321 xxd =>
xd(1, :, :, :)
2323 ssid =>
sid(1, :, :, :)
2324 ssi =>
si(1, :, :, :)
2325 ssjd =>
sjd(2, :, :, :)
2326 ssj =>
sj(2, :, :, :)
2327 sskd =>
skd(2, :, :, :)
2328 ssk =>
sk(2, :, :, :)
2329 ssd =>
sd(2, :, :, :)
2332 xxd =>
xd(
il, :, :, :)
2333 xx =>
x(
il, :, :, :)
2334 ssid =>
sid(
il, :, :, :)
2335 ssi =>
si(
il, :, :, :)
2336 ssjd =>
sjd(
il, :, :, :)
2337 ssj =>
sj(
il, :, :, :)
2338 sskd =>
skd(
il, :, :, :)
2339 ssk =>
sk(
il, :, :, :)
2340 ssd =>
sd(
il, :, :, :)
2341 ss =>
s(
il, :, :, :)
2343 xxd =>
xd(:, 1, :, :)
2345 ssid =>
sjd(:, 1, :, :)
2346 ssi =>
sj(:, 1, :, :)
2347 ssjd =>
sid(:, 2, :, :)
2348 ssj =>
si(:, 2, :, :)
2349 sskd =>
skd(:, 2, :, :)
2350 ssk =>
sk(:, 2, :, :)
2351 ssd =>
sd(:, 2, :, :)
2354 xxd =>
xd(:,
jl, :, :)
2355 xx =>
x(:,
jl, :, :)
2356 ssid =>
sjd(:,
jl, :, :)
2357 ssi =>
sj(:,
jl, :, :)
2358 ssjd =>
sid(:,
jl, :, :)
2359 ssj =>
si(:,
jl, :, :)
2360 sskd =>
skd(:,
jl, :, :)
2361 ssk =>
sk(:,
jl, :, :)
2362 ssd =>
sd(:,
jl, :, :)
2363 ss =>
s(:,
jl, :, :)
2365 xxd =>
xd(:, :, 1, :)
2367 ssid =>
skd(:, :, 1, :)
2368 ssi =>
sk(:, :, 1, :)
2369 ssjd =>
sid(:, :, 2, :)
2370 ssj =>
si(:, :, 2, :)
2371 sskd =>
sjd(:, :, 2, :)
2372 ssk =>
sj(:, :, 2, :)
2373 ssd =>
sd(:, :, 2, :)
2376 xxd =>
xd(:, :,
kl, :)
2377 xx =>
x(:, :,
kl, :)
2378 ssid =>
skd(:, :,
kl, :)
2379 ssi =>
sk(:, :,
kl, :)
2380 ssjd =>
sid(:, :,
kl, :)
2381 ssj =>
si(:, :,
kl, :)
2382 sskd =>
sjd(:, :,
kl, :)
2383 ssk =>
sj(:, :,
kl, :)
2384 ssd =>
sd(:, :,
kl, :)
2385 ss =>
s(:, :,
kl, :)
2406 dd2wall =>
d2wall(2, :, :)
2410 dd2wall =>
d2wall(:, 2, :)
2414 dd2wall =>
d2wall(:, :, 2)
2434 real(kind=realtype),
intent(out) :: eddyvismax
2438 integer(kind=intType) :: i, j, k
2440 real(kind=realtype) :: eddyvis
2457 eddyvis =
rev(i, j, k) /
rlv(i, j, k)
2458 eddyvismax = max(eddyvismax, eddyvis)
2480 real(kind=realtype),
intent(out) :: hdiffmax, machmax
2484 integer(kind=intType) :: i, j, k
2486 real(kind=realtype) :: hdiff, hinf, mach2
2510 hdiff = abs((
w(i, j, k,
irhoe) +
p(i, j, k)) /
w(i, j, k,
irho) - hinf)
2511 mach2 = (
w(i, j, k,
ivx)**2 +
w(i, j, k,
ivy)**2 &
2512 +
w(i, j, k,
ivz)**2) *
w(i, j, k,
irho) / (
gamma(i, j, k) *
p(i, j, k))
2517 hdiffmax = max(hdiffmax, hdiff)
2518 machmax = max(machmax, mach2)
2528 machmax = sqrt(machmax)
2529 hdiffmax = hdiffmax / hinf
2545 integer(kind=intType) ::
delta
2549 integer(kind=intType) :: val1, val2
2551 if (abs(val1) == abs(val2))
then
2570 integer(kind=intType),
intent(in) :: nn
2574 nullify (
cgnsdoms(nn)%connNonMatchAbutting)
2590 integer(kind=intType),
intent(in) :: nn, level, sps
2592 nullify (
flowdoms(nn, level, sps)%BCType)
2593 nullify (
flowdoms(nn, level, sps)%BCFaceID)
2594 nullify (
flowdoms(nn, level, sps)%cgnsSubface)
2596 nullify (
flowdoms(nn, level, sps)%inBeg)
2597 nullify (
flowdoms(nn, level, sps)%jnBeg)
2598 nullify (
flowdoms(nn, level, sps)%knBeg)
2599 nullify (
flowdoms(nn, level, sps)%inEnd)
2600 nullify (
flowdoms(nn, level, sps)%jnEnd)
2601 nullify (
flowdoms(nn, level, sps)%knEnd)
2603 nullify (
flowdoms(nn, level, sps)%dinBeg)
2604 nullify (
flowdoms(nn, level, sps)%djnBeg)
2605 nullify (
flowdoms(nn, level, sps)%dknBeg)
2606 nullify (
flowdoms(nn, level, sps)%dinEnd)
2607 nullify (
flowdoms(nn, level, sps)%djnEnd)
2608 nullify (
flowdoms(nn, level, sps)%dknEnd)
2610 nullify (
flowdoms(nn, level, sps)%icBeg)
2611 nullify (
flowdoms(nn, level, sps)%jcBeg)
2612 nullify (
flowdoms(nn, level, sps)%kcBeg)
2613 nullify (
flowdoms(nn, level, sps)%icEnd)
2614 nullify (
flowdoms(nn, level, sps)%jcEnd)
2615 nullify (
flowdoms(nn, level, sps)%kcEnd)
2617 nullify (
flowdoms(nn, level, sps)%neighBlock)
2618 nullify (
flowdoms(nn, level, sps)%neighProc)
2619 nullify (
flowdoms(nn, level, sps)%l1)
2620 nullify (
flowdoms(nn, level, sps)%l2)
2621 nullify (
flowdoms(nn, level, sps)%l3)
2622 nullify (
flowdoms(nn, level, sps)%groupNum)
2624 nullify (
flowdoms(nn, level, sps)%iblank)
2625 nullify (
flowdoms(nn, level, sps)%forcedRecv)
2626 nullify (
flowdoms(nn, level, sps)%status)
2627 nullify (
flowdoms(nn, level, sps)%fringes)
2628 nullify (
flowdoms(nn, level, sps)%orphans)
2630 nullify (
flowdoms(nn, level, sps)%BCData)
2631 nullify (
flowdoms(nn, level, sps)%viscSubface)
2633 nullify (
flowdoms(nn, level, sps)%viscIminPointer)
2634 nullify (
flowdoms(nn, level, sps)%viscImaxPointer)
2635 nullify (
flowdoms(nn, level, sps)%viscJminPointer)
2636 nullify (
flowdoms(nn, level, sps)%viscJmaxPointer)
2637 nullify (
flowdoms(nn, level, sps)%viscKminPointer)
2638 nullify (
flowdoms(nn, level, sps)%viscKmaxPointer)
2640 nullify (
flowdoms(nn, level, sps)%x)
2641 nullify (
flowdoms(nn, level, sps)%xOld)
2642 nullify (
flowdoms(nn, level, sps)%si)
2643 nullify (
flowdoms(nn, level, sps)%sj)
2644 nullify (
flowdoms(nn, level, sps)%sk)
2645 nullify (
flowdoms(nn, level, sps)%vol)
2646 nullify (
flowdoms(nn, level, sps)%volRef)
2647 nullify (
flowdoms(nn, level, sps)%volOld)
2649 nullify (
flowdoms(nn, level, sps)%pori)
2650 nullify (
flowdoms(nn, level, sps)%porj)
2651 nullify (
flowdoms(nn, level, sps)%pork)
2653 nullify (
flowdoms(nn, level, sps)%indFamilyI)
2654 nullify (
flowdoms(nn, level, sps)%indFamilyJ)
2655 nullify (
flowdoms(nn, level, sps)%indFamilyK)
2657 nullify (
flowdoms(nn, level, sps)%factFamilyI)
2658 nullify (
flowdoms(nn, level, sps)%factFamilyJ)
2659 nullify (
flowdoms(nn, level, sps)%factFamilyK)
2661 nullify (
flowdoms(nn, level, sps)%rotMatrixI)
2662 nullify (
flowdoms(nn, level, sps)%rotMatrixJ)
2663 nullify (
flowdoms(nn, level, sps)%rotMatrixK)
2665 nullify (
flowdoms(nn, level, sps)%sFaceI)
2666 nullify (
flowdoms(nn, level, sps)%sFaceJ)
2667 nullify (
flowdoms(nn, level, sps)%sFaceK)
2669 nullify (
flowdoms(nn, level, sps)%w)
2670 nullify (
flowdoms(nn, level, sps)%wOld)
2671 nullify (
flowdoms(nn, level, sps)%p)
2672 nullify (
flowdoms(nn, level, sps)%aa)
2673 nullify (
flowdoms(nn, level, sps)%gamma)
2674 nullify (
flowdoms(nn, level, sps)%rlv)
2675 nullify (
flowdoms(nn, level, sps)%rev)
2676 nullify (
flowdoms(nn, level, sps)%s)
2678 nullify (
flowdoms(nn, level, sps)%ux)
2679 nullify (
flowdoms(nn, level, sps)%uy)
2680 nullify (
flowdoms(nn, level, sps)%uz)
2682 nullify (
flowdoms(nn, level, sps)%vx)
2683 nullify (
flowdoms(nn, level, sps)%vy)
2684 nullify (
flowdoms(nn, level, sps)%vz)
2686 nullify (
flowdoms(nn, level, sps)%wx)
2687 nullify (
flowdoms(nn, level, sps)%wy)
2688 nullify (
flowdoms(nn, level, sps)%wz)
2690 nullify (
flowdoms(nn, level, sps)%qx)
2691 nullify (
flowdoms(nn, level, sps)%qy)
2692 nullify (
flowdoms(nn, level, sps)%qz)
2694 nullify (
flowdoms(nn, level, sps)%dw)
2695 nullify (
flowdoms(nn, level, sps)%fw)
2696 nullify (
flowdoms(nn, level, sps)%scratch)
2697 nullify (
flowdoms(nn, level, sps)%shockSensor)
2699 nullify (
flowdoms(nn, level, sps)%dwOldRK)
2701 nullify (
flowdoms(nn, level, sps)%p1)
2702 nullify (
flowdoms(nn, level, sps)%w1)
2703 nullify (
flowdoms(nn, level, sps)%wr)
2705 nullify (
flowdoms(nn, level, sps)%mgIFine)
2706 nullify (
flowdoms(nn, level, sps)%mgJFine)
2707 nullify (
flowdoms(nn, level, sps)%mgKFine)
2709 nullify (
flowdoms(nn, level, sps)%mgIWeight)
2710 nullify (
flowdoms(nn, level, sps)%mgJWeight)
2711 nullify (
flowdoms(nn, level, sps)%mgKWeight)
2713 nullify (
flowdoms(nn, level, sps)%mgICoarse)
2714 nullify (
flowdoms(nn, level, sps)%mgJCoarse)
2715 nullify (
flowdoms(nn, level, sps)%mgKCoarse)
2717 nullify (
flowdoms(nn, level, sps)%ico)
2718 nullify (
flowdoms(nn, level, sps)%jco)
2719 nullify (
flowdoms(nn, level, sps)%kco)
2721 nullify (
flowdoms(nn, level, sps)%wn)
2722 nullify (
flowdoms(nn, level, sps)%pn)
2723 nullify (
flowdoms(nn, level, sps)%dtl)
2724 nullify (
flowdoms(nn, level, sps)%radI)
2725 nullify (
flowdoms(nn, level, sps)%radJ)
2726 nullify (
flowdoms(nn, level, sps)%radK)
2728 nullify (
flowdoms(nn, level, sps)%d2Wall)
2730 nullify (
flowdoms(nn, level, sps)%bmti1)
2731 nullify (
flowdoms(nn, level, sps)%bmti2)
2732 nullify (
flowdoms(nn, level, sps)%bmtj1)
2733 nullify (
flowdoms(nn, level, sps)%bmtj2)
2734 nullify (
flowdoms(nn, level, sps)%bmtk1)
2735 nullify (
flowdoms(nn, level, sps)%bmtk2)
2737 nullify (
flowdoms(nn, level, sps)%bvti1)
2738 nullify (
flowdoms(nn, level, sps)%bvti2)
2739 nullify (
flowdoms(nn, level, sps)%bvtj1)
2740 nullify (
flowdoms(nn, level, sps)%bvtj2)
2741 nullify (
flowdoms(nn, level, sps)%bvtk1)
2742 nullify (
flowdoms(nn, level, sps)%bvtk2)
2744 nullify (
flowdoms(nn, level, sps)%globalCell)
2745 nullify (
flowdoms(nn, level, sps)%globalNode)
2746 nullify (
flowdoms(nn, level, sps)%surfNodeIndices)
2747 nullify (
flowdoms(nn, level, sps)%uv)
2748 nullify (
flowdoms(nn, level, sps)%wallInd)
2749 nullify (
flowdoms(nn, level, sps)%xSeed)
2752 nullify (
flowdoms(nn, level, sps)%xALE)
2753 nullify (
flowdoms(nn, level, sps)%sIALE)
2754 nullify (
flowdoms(nn, level, sps)%sJALE)
2755 nullify (
flowdoms(nn, level, sps)%sKALE)
2756 nullify (
flowdoms(nn, level, sps)%sFaceIALE)
2757 nullify (
flowdoms(nn, level, sps)%sFaceJALE)
2758 nullify (
flowdoms(nn, level, sps)%sFaceKALE)
2759 nullify (
flowdoms(nn, level, sps)%dwALE)
2760 nullify (
flowdoms(nn, level, sps)%fwALE)
2761 #ifndef USE_TAPENADE
2762 nullify (
flowdoms(nn, level, sps)%PCMat)
2763 nullify (
flowdoms(nn, level, sps)%i_D_Fact)
2764 nullify (
flowdoms(nn, level, sps)%i_L_Fact)
2765 nullify (
flowdoms(nn, level, sps)%i_U_Fact)
2766 nullify (
flowdoms(nn, level, sps)%i_U2_Fact)
2768 nullify (
flowdoms(nn, level, sps)%j_D_Fact)
2769 nullify (
flowdoms(nn, level, sps)%j_L_Fact)
2770 nullify (
flowdoms(nn, level, sps)%j_U_Fact)
2771 nullify (
flowdoms(nn, level, sps)%j_U2_Fact)
2773 nullify (
flowdoms(nn, level, sps)%k_D_Fact)
2774 nullify (
flowdoms(nn, level, sps)%k_L_Fact)
2775 nullify (
flowdoms(nn, level, sps)%k_U_Fact)
2776 nullify (
flowdoms(nn, level, sps)%k_U2_Fact)
2793 integer(kind=intType),
dimension(:),
pointer :: intArray
2794 integer(kind=intType),
intent(in) :: newSize, oldSize
2795 logical,
intent(in) :: alwaysFreeMem
2799 integer(kind=intType),
dimension(:),
pointer :: tmp
2801 integer(kind=intType) :: i, nn, ll
2807 nn = min(newsize, oldsize)
2817 if (newsize > 0 .or. alwaysfreemem)
then
2820 if (
associated(intarray)) ll = lbound(intarray, 1)
2822 allocate (intarray(ll:newsize + ll - 1), stat=ierr)
2825 "Memory allocation failure for intArray")
2826 do i = ll, ll + nn - 1
2827 intarray(i) = tmp(i)
2834 if (oldsize > 0 .or. alwaysfreemem)
then
2835 deallocate (tmp, stat=ierr)
2838 "Deallocation error for tmp")
2846 oldSize, alwaysFreeMem)
2858 integer(kind=mpi_offset_kind),
dimension(:),
pointer :: intArray
2859 integer(kind=intType),
intent(in) :: newSize, oldSize
2860 logical,
intent(in) :: alwaysFreeMem
2864 integer(kind=mpi_offset_kind),
dimension(:),
pointer :: tmp
2866 integer(kind=intType) :: i, nn, ll
2872 nn = min(newsize, oldsize)
2882 if (newsize > 0 .or. alwaysfreemem)
then
2885 if (
associated(intarray)) ll = lbound(intarray, 1)
2887 allocate (intarray(ll:newsize + ll - 1), stat=ierr)
2889 call terminate(
"reallocateMpiOffsetKindInteger", &
2890 "Memory allocation failure for intArray")
2891 do i = ll, ll + nn - 1
2892 intarray(i) = tmp(i)
2899 if (oldsize > 0 .or. alwaysfreemem)
then
2900 deallocate (tmp, stat=ierr)
2902 call terminate(
"reallocateMpiOffsetKindInteger", &
2903 "Deallocation error for tmp")
2911 oldSize1, oldSize2, &
2924 integer(kind=intType),
dimension(:, :),
pointer :: intArray
2925 integer(kind=intType),
intent(in) :: newSize1, newSize2, &
2927 logical,
intent(in) :: alwaysFreeMem
2931 integer(kind=intType),
dimension(:, :),
pointer :: tmp
2933 integer(kind=intType) :: newSize, oldSize
2934 integer(kind=intType) :: nn1, nn2, nn
2936 integer(kind=intType) :: i, j
2942 newsize = newsize1 * newsize2
2943 oldsize = oldsize1 * oldsize2
2949 nn1 = min(newsize1, oldsize1)
2950 nn2 = min(newsize2, oldsize2)
2962 if (newsize > 0 .or. alwaysfreemem)
then
2963 allocate (intarray(newsize1, newsize2), stat=ierr)
2966 "Memory allocation failure for intArray")
2969 intarray(i, j) = tmp(i, j)
2977 if (oldsize > 0 .or. alwaysfreemem)
then
2978 deallocate (tmp, stat=ierr)
2981 "Deallocation error for tmp")
2998 real(kind=realtype),
dimension(:),
pointer :: realarray
2999 integer(kind=intType),
intent(in) :: newSize, oldSize
3000 logical,
intent(in) :: alwaysFreeMem
3004 real(kind=realtype),
dimension(:),
pointer :: tmp
3006 integer(kind=intType) :: i, nn
3012 nn = min(newsize, oldsize)
3022 if (newsize > 0 .or. alwaysfreemem)
then
3023 allocate (realarray(newsize), stat=ierr)
3026 "Memory allocation failure for realArray")
3028 realarray(i) = tmp(i)
3035 if (oldsize > 0 .or. alwaysfreemem)
then
3036 deallocate (tmp, stat=ierr)
3039 "Deallocation error for tmp")
3047 oldSize1, oldSize2, &
3060 real(kind=realtype),
dimension(:, :),
pointer :: realarray
3061 integer(kind=intType),
intent(in) :: newSize1, newSize2, &
3063 logical,
intent(in) :: alwaysFreeMem
3067 real(kind=realtype),
dimension(:, :),
pointer :: tmp
3069 integer(kind=intType) :: newSize, oldSize
3070 integer(kind=intType) :: nn1, nn2, nn
3072 integer(kind=intType) :: i, j
3078 newsize = newsize1 * newsize2
3079 oldsize = oldsize1 * oldsize2
3085 nn1 = min(newsize1, oldsize1)
3086 nn2 = min(newsize2, oldsize2)
3098 if (newsize > 0 .or. alwaysfreemem)
then
3099 allocate (realarray(newsize1, newsize2), stat=ierr)
3102 "Memory allocation failure for realArray")
3105 realarray(i, j) = tmp(i, j)
3113 if (oldsize > 0 .or. alwaysfreemem)
then
3114 deallocate (tmp, stat=ierr)
3117 "Deallocation error for tmp")
3142 integer(kind=intType),
intent(in) :: level, sps
3143 logical,
intent(in) :: determine1to1Buf
3144 logical,
intent(in) :: determineOversetBuf
3148 integer(kind=intType) :: i
3149 integer(kind=intType) :: sendSize, recvSize, nVarComm
3155 if (
viscous) nvarcomm = nvarcomm + 1
3160 if (determine1to1buf)
then
3180 sendsize = max(sendsize, &
3184 recvsize = max(recvsize, &
3190 sendsize = sendsize * nvarcomm
3191 recvsize = recvsize * nvarcomm
3203 if (determineoversetbuf)
then
3216 sendsize = sendsize * nvarcomm
3217 recvsize = recvsize * nvarcomm
3249 integer(kind=intType),
intent(in) :: nn, mm, ll
3257 nbkglobal = flowdoms(nn, mm, ll)%cgnsBlockID
3263 nx = flowdoms(nn, mm, ll)%nx
3264 ny = flowdoms(nn, mm, ll)%ny
3265 nz = flowdoms(nn, mm, ll)%nz
3267 il = flowdoms(nn, mm, ll)%il
3268 jl = flowdoms(nn, mm, ll)%jl
3269 kl = flowdoms(nn, mm, ll)%kl
3271 ie = flowdoms(nn, mm, ll)%ie
3272 je = flowdoms(nn, mm, ll)%je
3273 ke = flowdoms(nn, mm, ll)%ke
3275 ib = flowdoms(nn, mm, ll)%ib
3276 jb = flowdoms(nn, mm, ll)%jb
3277 kb = flowdoms(nn, mm, ll)%kb
3286 ibegor = flowdoms(nn, mm, ll)%iBegor
3287 iendor = flowdoms(nn, mm, ll)%iEndor
3288 jbegor = flowdoms(nn, mm, ll)%jBegor
3289 jendor = flowdoms(nn, mm, ll)%jEndor
3290 kbegor = flowdoms(nn, mm, ll)%kBegor
3291 kendor = flowdoms(nn, mm, ll)%kEndor
3297 nsubface = flowdoms(nn, mm, ll)%nSubface
3298 n1to1 = flowdoms(nn, mm, ll)%n1to1
3299 nbocos = flowdoms(nn, mm, ll)%nBocos
3302 bctype => flowdoms(nn, mm, 1)%BCType
3303 bcfaceid => flowdoms(nn, mm, 1)%BCFaceID
3306 inbeg => flowdoms(nn, mm, 1)%inBeg
3307 jnbeg => flowdoms(nn, mm, 1)%jnBeg
3308 knbeg => flowdoms(nn, mm, 1)%knBeg
3309 inend => flowdoms(nn, mm, 1)%inEnd
3310 jnend => flowdoms(nn, mm, 1)%jnEnd
3311 knend => flowdoms(nn, mm, 1)%knEnd
3313 dinbeg => flowdoms(nn, mm, 1)%dinBeg
3314 djnbeg => flowdoms(nn, mm, 1)%djnBeg
3315 dknbeg => flowdoms(nn, mm, 1)%dknBeg
3316 dinend => flowdoms(nn, mm, 1)%dinEnd
3317 djnend => flowdoms(nn, mm, 1)%djnEnd
3318 dknend => flowdoms(nn, mm, 1)%dknEnd
3320 icbeg => flowdoms(nn, mm, 1)%icBeg
3321 jcbeg => flowdoms(nn, mm, 1)%jcBeg
3322 kcbeg => flowdoms(nn, mm, 1)%kcBeg
3323 icend => flowdoms(nn, mm, 1)%icEnd
3324 jcend => flowdoms(nn, mm, 1)%jcEnd
3325 kcend => flowdoms(nn, mm, 1)%kcEnd
3328 neighproc => flowdoms(nn, mm, 1)%neighProc
3329 l1 => flowdoms(nn, mm, 1)%l1
3330 l2 => flowdoms(nn, mm, 1)%l2
3331 l3 => flowdoms(nn, mm, 1)%l3
3332 groupnum => flowdoms(nn, mm, 1)%groupNum
3335 iblank => flowdoms(nn, mm, ll)%iblank
3336 status => flowdoms(nn, mm, ll)%status
3337 forcedrecv => flowdoms(nn, mm, ll)%forcedRecv
3339 fringes => flowdoms(nn, mm, ll)%fringes
3340 fringeptr => flowdoms(nn, mm, ll)%fringePtr
3341 gind => flowdoms(nn, mm, ll)%gInd
3342 ndonors => flowdoms(nn, mm, ll)%nDonors
3344 orphans => flowdoms(nn, mm, ll)%orphans
3345 norphans = flowdoms(nn, mm, ll)%nOrphans
3349 bcdata => flowdoms(nn, mm, ll)%BCData
3371 x => flowdoms(nn, mm, ll)%x
3372 xold => flowdoms(nn, 1, ll)%xOld
3374 si => flowdoms(nn, mm, ll)%si
3375 sj => flowdoms(nn, mm, ll)%sj
3376 sk => flowdoms(nn, mm, ll)%sk
3378 vol => flowdoms(nn, mm, ll)%vol
3379 volref => flowdoms(nn, mm, ll)%volRef
3380 volold => flowdoms(nn, 1, ll)%volOld
3382 skew => flowdoms(nn, mm, ll)%skew
3384 pori => flowdoms(nn, mm, 1)%porI
3385 porj => flowdoms(nn, mm, 1)%porJ
3386 pork => flowdoms(nn, mm, 1)%porK
3396 rotmatrixi => flowdoms(nn, mm, ll)%rotMatrixI
3397 rotmatrixj => flowdoms(nn, mm, ll)%rotMatrixJ
3398 rotmatrixk => flowdoms(nn, mm, ll)%rotMatrixK
3403 sfacei => flowdoms(nn, mm, ll)%sFaceI
3404 sfacej => flowdoms(nn, mm, ll)%sFaceJ
3405 sfacek => flowdoms(nn, mm, ll)%sFaceK
3413 w => flowdoms(nn, mm, ll)%w
3414 wold => flowdoms(nn, 1, ll)%wOld
3415 p => flowdoms(nn, mm, ll)%p
3416 aa => flowdoms(nn, mm, ll)%aa
3419 gamma => flowdoms(nn, 1, ll)%gamma
3420 rlv => flowdoms(nn, 1, ll)%rlv
3421 rev => flowdoms(nn, mm, ll)%rev
3422 s => flowdoms(nn, mm, ll)%s
3424 ux => flowdoms(nn, mm, ll)%ux
3425 uy => flowdoms(nn, mm, ll)%uy
3426 uz => flowdoms(nn, mm, ll)%uz
3428 vx => flowdoms(nn, mm, ll)%vx
3429 vy => flowdoms(nn, mm, ll)%vy
3430 vz => flowdoms(nn, mm, ll)%vz
3432 wx => flowdoms(nn, mm, ll)%wx
3433 wy => flowdoms(nn, mm, ll)%wy
3434 wz => flowdoms(nn, mm, ll)%wz
3436 qx => flowdoms(nn, mm, ll)%qx
3437 qy => flowdoms(nn, mm, ll)%qy
3438 qz => flowdoms(nn, mm, ll)%qz
3443 dw => flowdoms(nn, 1, ll)%dw
3444 fw => flowdoms(nn, 1, ll)%fw
3445 dwoldrk => flowdoms(nn, 1, ll)%dwOldRK
3446 scratch => flowdoms(nn, 1, ll)%scratch
3448 p1 => flowdoms(nn, mm, ll)%p1
3449 w1 => flowdoms(nn, mm, ll)%w1
3450 wr => flowdoms(nn, mm, ll)%wr
3456 mgifine => flowdoms(nn, mm, 1)%mgIFine
3457 mgjfine => flowdoms(nn, mm, 1)%mgJFine
3458 mgkfine => flowdoms(nn, mm, 1)%mgKFine
3460 mgiweight => flowdoms(nn, mm, 1)%mgIWeight
3461 mgjweight => flowdoms(nn, mm, 1)%mgJWeight
3462 mgkweight => flowdoms(nn, mm, 1)%mgKWeight
3464 mgicoarse => flowdoms(nn, mm, 1)%mgICoarse
3465 mgjcoarse => flowdoms(nn, mm, 1)%mgJCoarse
3466 mgkcoarse => flowdoms(nn, mm, 1)%mgKCoarse
3471 wn => flowdoms(nn, 1, ll)%wn
3472 pn => flowdoms(nn, 1, ll)%pn
3473 dtl => flowdoms(nn, 1, ll)%dtl
3475 radi => flowdoms(nn, 1, ll)%radI
3476 radj => flowdoms(nn, 1, ll)%radJ
3477 radk => flowdoms(nn, 1, ll)%radK
3481 d2wall => flowdoms(nn, mm, ll)%d2Wall
3482 filterdes => flowdoms(nn, mm, ll)%filterDES
3489 bmti1 => flowdoms(nn, 1, 1)%bmti1
3490 bmti2 => flowdoms(nn, 1, 1)%bmti2
3491 bmtj1 => flowdoms(nn, 1, 1)%bmtj1
3492 bmtj2 => flowdoms(nn, 1, 1)%bmtj2
3493 bmtk1 => flowdoms(nn, 1, 1)%bmtk1
3494 bmtk2 => flowdoms(nn, 1, 1)%bmtk2
3496 bvti1 => flowdoms(nn, 1, 1)%bvti1
3497 bvti2 => flowdoms(nn, 1, 1)%bvti2
3498 bvtj1 => flowdoms(nn, 1, 1)%bvtj1
3499 bvtj2 => flowdoms(nn, 1, 1)%bvtj2
3500 bvtk1 => flowdoms(nn, 1, 1)%bvtk1
3501 bvtk2 => flowdoms(nn, 1, 1)%bvtk2
3504 globalcell => flowdoms(nn, mm, ll)%globalCell
3505 globalnode => flowdoms(nn, mm, ll)%globalNode
3507 xseed => flowdoms(nn, mm, ll)%xSeed
3508 wallind => flowdoms(nn, mm, ll)%wallInd
3512 xale => flowdoms(nn, mm, ll)%xALE
3513 sveloiale => flowdoms(nn, mm, ll)%sVeloIALE
3514 svelojale => flowdoms(nn, mm, ll)%sVeloJALE
3515 svelokale => flowdoms(nn, mm, ll)%sVeloKALE
3516 siale => flowdoms(nn, mm, ll)%sIALE
3517 sjale => flowdoms(nn, mm, ll)%sJALE
3518 skale => flowdoms(nn, mm, ll)%sKALE
3519 sfaceiale => flowdoms(nn, mm, ll)%sFaceIALE
3520 sfacejale => flowdoms(nn, mm, ll)%sFaceJALE
3521 sfacekale => flowdoms(nn, mm, ll)%sFaceKALE
3522 dwale => flowdoms(nn, 1, ll)%dwALE
3523 fwale => flowdoms(nn, 1, ll)%fwALE
3526 pcmat => flowdoms(nn, mm, ll)%pcMat
3528 i_d_fact => flowdoms(nn, mm, ll)%i_D_fact
3529 i_l_fact => flowdoms(nn, mm, ll)%i_L_fact
3530 i_u_fact => flowdoms(nn, mm, ll)%i_U_fact
3531 i_u2_fact => flowdoms(nn, mm, ll)%i_U2_fact
3533 j_d_fact => flowdoms(nn, mm, ll)%j_D_fact
3534 j_l_fact => flowdoms(nn, mm, ll)%j_L_fact
3535 j_u_fact => flowdoms(nn, mm, ll)%j_U_fact
3536 j_u2_fact => flowdoms(nn, mm, ll)%j_U2_fact
3538 k_d_fact => flowdoms(nn, mm, ll)%k_D_fact
3539 k_l_fact => flowdoms(nn, mm, ll)%k_L_fact
3540 k_u_fact => flowdoms(nn, mm, ll)%k_U_fact
3541 k_u2_fact => flowdoms(nn, mm, ll)%k_U2_fact
3543 pcvec1 => flowdoms(nn, mm, ll)%PCVec1
3544 pcvec2 => flowdoms(nn, mm, ll)%PCVec2
3546 i_ipiv => flowdoms(nn, mm, ll)%i_ipiv
3547 j_ipiv => flowdoms(nn, mm, ll)%j_ipiv
3548 k_ipiv => flowdoms(nn, mm, ll)%k_ipiv
3555 integer(kind=intType),
intent(in) :: nn, level, sps
3571 integer(kind=intType),
intent(in) :: nn, level, sps
3683 integer(kind=intType),
intent(in) :: nsps
3684 real(kind=realtype),
intent(in) :: t
3686 real(kind=realtype),
dimension(0:nsps - 1),
intent(out) :: alpscal
3687 real(kind=realtype),
dimension(nSections, 0:nsps - 1, 3, 3), &
3688 intent(out) :: alpmat
3692 integer(kind=intType) :: jj, nn, j, p, r, nhalfM1, m, mhalfM1
3694 real(kind=realtype) :: nspsinv, minv, tm, alp
3696 real(kind=realtype),
dimension(3, 3) :: rp, tmp
3703 if (mod(nsps, 2) .eq. 0)
then
3704 nhalfm1 = nsps / 2 - 1
3706 nhalfm1 = (nsps - 1) / 2
3709 nspsinv =
one / real(nsps, realtype)
3711 do j = 0, (nsps - 1)
3712 if (mod(nsps, 2) .eq. 0)
then
3713 alpscal(j) =
one + cos(j *
pi) * cos(nsps *
pi * t)
3715 alpscal(j) =
one + cos(j *
pi * (nsps + 1) / nsps) * cos((nsps + 1) *
pi * t)
3719 alpscal(j) = alpscal(j) &
3720 +
two * cos(r * j *
two *
pi * nspsinv) * cos(r *
two *
pi * t) &
3721 +
two * sin(r * j *
two *
pi * nspsinv) * sin(r *
two *
pi * t)
3724 alpscal(j) = alpscal(j) * nspsinv
3741 if (mod(m, 2) .eq. 0)
then
3744 mhalfm1 = (m - 1) / 2
3746 minv =
one / real(m, realtype)
3747 tm = t / real(
sections(nn)%nSlices, realtype)
3751 spectralloop:
do jj = 0, (nsps - 1)
3757 alpmat(nn, jj, 1, 1) =
zero
3758 alpmat(nn, jj, 1, 2) =
zero
3759 alpmat(nn, jj, 1, 3) =
zero
3761 alpmat(nn, jj, 2, 1) =
zero
3762 alpmat(nn, jj, 2, 2) =
zero
3763 alpmat(nn, jj, 2, 3) =
zero
3765 alpmat(nn, jj, 3, 1) =
zero
3766 alpmat(nn, jj, 3, 2) =
zero
3767 alpmat(nn, jj, 3, 3) =
zero
3784 slicesloop:
do p = 0, (
sections(nn)%nSlices - 1)
3794 if (mod(m, 2) .eq. 0)
then
3795 alp =
one + cos(j *
pi) * cos(m *
pi * tm)
3797 alp =
one + cos(j *
pi * (m + 1) / m) * cos((m + 1) *
pi * tm)
3800 alp = alp +
two * cos(r * j *
two *
pi * minv) * cos(r *
two *
pi * tm) &
3801 +
two * sin(r * j *
two *
pi * minv) * sin(r *
two *
pi * tm)
3810 alpmat(nn, jj, r, j) = alpmat(nn, jj, r, j) + alp * rp(r, j)
3849 logical,
intent(in) :: resNeeded
3855 integer(kind=intType) :: nn, mm
3861 call terminate(
"deallocateTempMemory", &
3862 "Deallocation error for communication buffers")
3870 domains:
do nn = 1,
ndom
3874 if (.not. resneeded)
then
3885 call terminate(
"deallocateTempMemory", &
3886 "Deallocation error for dw, fw, dtl and &
3898 call terminate(
"deallocateTempMemory", &
3899 "Deallocation error for wn and pn")
3903 end do spectralmodes
3923 logical,
intent(in) :: resNeeded
3929 integer(kind=intType) :: nn, mm
3930 integer(kind=intType) :: il, jl, kl, ie, je, ke, ib, jb, kb
3938 "Memory allocation failure for comm buffers")
3946 domains:
do nn = 1,
ndom
3964 if (.not. resneeded)
then
3969 allocate (
flowdoms(nn, 1, mm)%dw(0:ib, 0:jb, 0:kb, 1:
nw), &
3970 flowdoms(nn, 1, mm)%fw(0:ib, 0:jb, 0:kb, 1:
nwf), &
3971 flowdoms(nn, 1, mm)%dtl(1:ie, 1:je, 1:ke), &
3972 flowdoms(nn, 1, mm)%radI(1:ie, 1:je, 1:ke), &
3973 flowdoms(nn, 1, mm)%radJ(1:ie, 1:je, 1:ke), &
3974 flowdoms(nn, 1, mm)%radK(1:ie, 1:je, 1:ke), stat=ierr)
3977 "Memory allocation failure for dw, fw, &
3978 &dtl and the spectral radii.")
3993 allocate (
flowdoms(nn, 1, mm)%wn(2:il, 2:jl, 2:kl, 1:
nwf), &
3994 flowdoms(nn, 1, mm)%pn(2:il, 2:jl, 2:kl), stat=ierr)
3997 "Memory allocation failure for wn and pn")
4001 end do spectralmodes
4017 integer(kind=intType),
intent(out) :: liftDir
4018 integer(kind=intType),
dimension(3) :: sym_local, sym
4021 integer(kind=intType) :: nn, i_index(1), mm, ierr
4022 real(kind=realtype),
dimension(:, :, :),
pointer :: xx
4023 real(kind=realtype) :: cp(3), v1(3), v2(3)
4026 sym_local = 0_inttype
4038 xx =>
x(
il, :, :, :)
4042 xx =>
x(:,
jl, :, :)
4046 xx =>
x(:, :,
kl, :)
4056 cp(1) = (v1(2) * v2(3) - v1(3) * v2(2))
4057 cp(2) = (v1(3) * v2(1) - v1(1) * v2(3))
4058 cp(3) = (v1(1) * v2(2) - v1(2) * v2(1))
4064 i_index = maxloc(real(cp))
4066 sym_local(i_index(1)) = 1_inttype
4073 call mpi_allreduce(sym_local, sym, 3, adflow_integer, &
4075 call echk(ierr, __file__, __line__)
4080 if (sym(1) == 0 .and. sym(2) == 0 .and. sym(3) == 0)
then
4082 else if (sym(1) .ne. 0 .and. sym(2) == 0 .and. sym(3) == 0)
then
4084 else if (sym(1) == 0 .and. sym(2) .ne. 0 .and. sym(3) == 0)
then
4086 else if (sym(1) == 0 .and. sym(2) == 0 .and. sym(3) .ne. 0)
then
4107 character(len=7) :: integerString
4111 if (
myid > 0)
return
4116 print
"(a)",
"# ADflow, multiblock structured flow solver"
4118 print
"(a)",
"# This code solves the 3D RANS, laminar NS or &
4120 print
"(a)",
"# on multiblock structured hexahedral grids."
4122 write (integerstring,
"(i7)")
nproc
4123 integerstring = adjustl(integerstring)
4124 print
"(3a)",
"# This is a parallel executable running on ", &
4125 trim(integerstring),
" processors."
4126 print
"(a)",
"# It has been compiled with the &
4127 &following options:"
4130 print
"(a)",
"# - Debug mode."
4132 print
"(a)",
"# - Optimized mode."
4136 print
"(a)",
"# - Size of standard integers: 8 bytes."
4138 print
"(a)",
"# - Size of standard integers: 4 bytes."
4141 #ifdef USE_SINGLE_PRECISION
4142 print
"(a)",
"# - Size of standard floating point types: &
4145 #elif USE_QUADRUPLE_PRECISION
4146 print
"(a)",
"# - Size of standard floating point types: &
4149 print
"(a)",
"# - Size of standard floating point types: &
4154 print
"(a)",
"# - Without cgns support"
4156 print
"(a)",
"# - With cgns support"
4159 #ifdef USE_NO_SIGNALS
4160 print
"(a)",
"# - Without support for signals."
4162 print
"(a)",
"# - With support for signals."
4181 integer(kind=intType),
intent(in) :: N
4182 real(kind=realtype),
intent(in),
dimension(3, N) :: pts
4183 real(kind=realtype),
intent(in) :: tol
4186 real(kind=realtype),
intent(out),
dimension(3, N) :: uniquepts
4187 integer(kind=intType),
intent(out),
dimension(N) :: link
4188 integer(kind=intType),
intent(out) :: nUnique
4191 type(
kdtree2),
pointer :: mytree
4192 real(kind=realtype) :: tol2, timeb, timea
4193 integer(kind=intType) :: nFound, i, j, nAlloc
4194 type(kdtree2_result),
allocatable,
dimension(:) :: results
4211 allocate (results(nalloc))
4218 if (link(i) == 0)
then
4222 if (nfound > nalloc)
then
4223 deallocate (results)
4225 allocate (results(nalloc))
4229 if (nfound == 1)
then
4231 nunique = nunique + 1
4233 uniquepts(:, nunique) = pts(:, i)
4235 if (link(i) == 0)
then
4237 nunique = nunique + 1
4238 uniquepts(:, nunique) = pts(:, i)
4241 link(results(j)%idx) = nunique
4250 deallocate (results)
4282 integer(kind=intType) :: sps, nLevels, level, nn, l, i, j
4295 do level = 2, nlevels
4311 flowdoms(nn, 1, sps)%shockSensor, &
4315 "Deallocation error for dw, fw, dwALE, fwALE, dtl and &
4326 "Deallocation error for dwALE, fwALE.")
4334 nullify (
flowdoms(nn, 1, sps)%dwALE)
4335 nullify (
flowdoms(nn, 1, sps)%fwALE)
4337 nullify (
flowdoms(nn, 1, sps)%radI)
4338 nullify (
flowdoms(nn, 1, sps)%radJ)
4339 nullify (
flowdoms(nn, 1, sps)%radK)
4340 nullify (
flowdoms(nn, 1, sps)%scratch)
4341 nullify (
flowdoms(nn, 1, sps)%shockSensor)
4351 "Deallocation error for wn and pn")
4364 deallocate (
flowdoms(nn, 1, sps)%dwOldRK, stat=ierr)
4367 "Deallocation error for dwOldRK,")
4369 nullify (
flowdoms(nn, 1, sps)%dwOldRK)
4390 if (
allocated(
monloc))
then
4398 if (
allocated(
monref))
then
4489 integer(kind=intType) :: ierr, i
4495 do i = 1, comm%nProcSend
4496 deallocate (comm%sendList(i)%block, stat=ierr)
4497 call echk(ierr, __file__, __line__)
4499 deallocate (comm%sendList(i)%indices, stat=ierr)
4500 call echk(ierr, __file__, __line__)
4502 deallocate (comm%sendList(i)%interp, stat=ierr)
4503 call echk(ierr, __file__, __line__)
4507 do i = 1, comm%nProcRecv
4508 deallocate (comm%recvList(i)%block, stat=ierr)
4509 call echk(ierr, __file__, __line__)
4511 deallocate (comm%recvList(i)%indices, stat=ierr)
4512 call echk(ierr, __file__, __line__)
4515 deallocate (comm%sendProc, stat=ierr)
4516 call echk(ierr, __file__, __line__)
4518 deallocate (comm%nsend, stat=ierr)
4519 call echk(ierr, __file__, __line__)
4521 deallocate (comm%nsendcum, stat=ierr)
4522 call echk(ierr, __file__, __line__)
4524 deallocate (comm%sendlist, stat=ierr)
4525 call echk(ierr, __file__, __line__)
4527 deallocate (comm%recvProc, stat=ierr)
4528 call echk(ierr, __file__, __line__)
4530 deallocate (comm%nrecv, stat=ierr)
4531 call echk(ierr, __file__, __line__)
4533 deallocate (comm%nrecvcum, stat=ierr)
4534 call echk(ierr, __file__, __line__)
4536 deallocate (comm%recvlist, stat=ierr)
4537 call echk(ierr, __file__, __line__)
4539 deallocate (comm%indexsendproc, stat=ierr)
4540 call echk(ierr, __file__, __line__)
4542 deallocate (comm%indexrecvproc, stat=ierr)
4543 call echk(ierr, __file__, __line__)
4545 if (comm%nPeriodic > 0)
then
4546 do i = 1, comm%nPeriodic
4547 deallocate (comm%periodicData(i)%block, stat=ierr)
4548 call echk(ierr, __file__, __line__)
4550 deallocate (comm%periodicData(i)%indices)
4551 call echk(ierr, __file__, __line__)
4554 deallocate (comm%periodicData, stat=ierr)
4555 call echk(ierr, __file__, __line__)
4563 integer(kind=intType) :: ierr, i
4567 deallocate (comm%donorBlock, stat=ierr)
4568 call echk(ierr, __file__, __line__)
4570 deallocate (comm%donorIndices, stat=ierr)
4571 call echk(ierr, __file__, __line__)
4573 deallocate (comm%donorInterp, stat=ierr)
4574 call echk(ierr, __file__, __line__)
4576 deallocate (comm%haloBlock, stat=ierr)
4577 call echk(ierr, __file__, __line__)
4579 deallocate (comm%haloIndices, stat=ierr)
4580 call echk(ierr, __file__, __line__)
4582 if (comm%nPeriodic > 0)
then
4583 do i = 1, comm%nPeriodic
4584 deallocate (comm%periodicData(i)%block, stat=ierr)
4585 call echk(ierr, __file__, __line__)
4587 deallocate (comm%periodicData(i)%indices)
4588 call echk(ierr, __file__, __line__)
4590 deallocate (comm%periodicData, stat=ierr)
4591 call echk(ierr, __file__, __line__)
4610 integer(kind=intType) :: level
4613 integer(kind=intType) :: nn, sps, stat, mm, ierr
4670 call echk(ierr, __file__, __line__)
4673 do mm = 1,
flowdoms(nn, level, sps)%nBocos
4675 flowdomsd(nn, level, sps)%BCData(mm)%norm, &
4676 flowdomsd(nn, level, sps)%BCData(mm)%rface, &
4677 flowdomsd(nn, level, sps)%BCData(mm)%Fp, &
4678 flowdomsd(nn, level, sps)%BCData(mm)%Fv, &
4679 flowdomsd(nn, level, sps)%BCData(mm)%Tp, &
4680 flowdomsd(nn, level, sps)%BCData(mm)%Tv, &
4681 flowdomsd(nn, level, sps)%BCData(mm)%F, &
4682 flowdomsd(nn, level, sps)%BCData(mm)%T, &
4683 flowdomsd(nn, level, sps)%BCData(mm)%area, &
4684 flowdomsd(nn, level, sps)%BCData(mm)%uSlip, &
4685 flowdomsd(nn, level, sps)%BCData(mm)%TNS_Wall, &
4687 call echk(ierr, __file__, __line__)
4690 deallocate (
flowdomsd(nn, level, sps)%BCData, stat=ierr)
4691 call echk(ierr, __file__, __line__)
4693 viscbocoloop:
do mm = 1,
flowdoms(nn, level, sps)%nViscBocos
4695 flowdomsd(nn, level, sps)%viscSubface(mm)%tau, &
4696 flowdomsd(nn, level, sps)%viscSubface(mm)%q, &
4698 call echk(ierr, __file__, __line__)
4701 deallocate (
flowdomsd(nn, level, sps)%viscSubFace, stat=ierr)
4702 call echk(ierr, __file__, __line__)
4712 call echk(ierr, __file__, __line__)
4717 call vecdestroy(xsurfvec(1, sps), ierr)
4722 call vecdestroy(xsurfvecd(sps), ierr)
4723 call echk(ierr, __file__, __line__)
4725 deallocate (xsurfvecd)
4749 integer(kind=intType) :: nn, sps
4762 "Deallocation failure for flowDoms")
4778 call vecdestroy(w_like1, petscierr)
4779 call echk(petscierr, __file__, __line__)
4781 call vecdestroy(w_like2, petscierr)
4782 call echk(petscierr, __file__, __line__)
4784 call vecdestroy(psi_like1, petscierr)
4785 call echk(petscierr, __file__, __line__)
4787 call vecdestroy(psi_like2, petscierr)
4788 call echk(petscierr, __file__, __line__)
4790 call vecdestroy(psi_like3, petscierr)
4791 call echk(petscierr, __file__, __line__)
4793 call vecdestroy(x_like, petscierr)
4794 call echk(petscierr, __file__, __line__)
4801 if (
associated(
cgnsdoms(nn)%procStored)) &
4802 deallocate (
cgnsdoms(nn)%procStored)
4804 if (
associated(
cgnsdoms(nn)%conn1to1)) &
4807 if (
associated(
cgnsdoms(nn)%connNonMatchAbutting)) &
4808 deallocate (
cgnsdoms(nn)%connNonMatchAbutting)
4810 if (
associated(
cgnsdoms(nn)%bocoInfo)) &
4838 integer(kind=intType),
intent(in) :: nn, level, sps
4844 integer(kind=intType) :: i
4847 type(
bcdatatype),
dimension(:),
pointer :: BCData
4849 logical :: deallocationFailure
4853 deallocationfailure = .false.
4860 viscsubface =>
flowdoms(nn, level, sps)%viscSubface
4861 do i = 1,
flowdoms(nn, level, sps)%nViscBocos
4862 deallocate (viscsubface(i)%tau, viscsubface(i)%q, &
4863 viscsubface(i)%utau, stat=ierr)
4864 if (ierr /= 0) deallocationfailure = .true.
4866 nullify (viscsubface(i)%tau)
4867 nullify (viscsubface(i)%q)
4868 nullify (viscsubface(i)%utau)
4874 do i = 1,
flowdoms(nn, level, sps)%nBocos
4876 if (
associated(
bcdata(i)%norm)) &
4877 deallocate (
bcdata(i)%norm, stat=ierr)
4878 if (ierr /= 0) deallocationfailure = .true.
4880 if (
associated(
bcdata(i)%area)) &
4881 deallocate (
bcdata(i)%area, stat=ierr)
4882 if (ierr /= 0) deallocationfailure = .true.
4884 if (
associated(
bcdata(i)%surfIndex)) &
4885 deallocate (
bcdata(i)%surfIndex, stat=ierr)
4886 if (ierr /= 0) deallocationfailure = .true.
4888 if (
associated(
bcdata(i)%F)) &
4889 deallocate (
bcdata(i)%F, stat=ierr)
4890 if (ierr /= 0) deallocationfailure = .true.
4892 if (
associated(
bcdata(i)%Fv)) &
4893 deallocate (
bcdata(i)%Fv, stat=ierr)
4894 if (ierr /= 0) deallocationfailure = .true.
4896 if (
associated(
bcdata(i)%Fp)) &
4897 deallocate (
bcdata(i)%Fp, stat=ierr)
4898 if (ierr /= 0) deallocationfailure = .true.
4900 if (
associated(
bcdata(i)%T)) &
4901 deallocate (
bcdata(i)%T, stat=ierr)
4902 if (ierr /= 0) deallocationfailure = .true.
4904 if (
associated(
bcdata(i)%Tv)) &
4905 deallocate (
bcdata(i)%Tv, stat=ierr)
4906 if (ierr /= 0) deallocationfailure = .true.
4908 if (
associated(
bcdata(i)%Tp)) &
4909 deallocate (
bcdata(i)%Tp, stat=ierr)
4910 if (ierr /= 0) deallocationfailure = .true.
4912 if (
associated(
bcdata(i)%rface)) &
4913 deallocate (
bcdata(i)%rface, stat=ierr)
4914 if (ierr /= 0) deallocationfailure = .true.
4916 if (
associated(
bcdata(i)%uSlip)) &
4917 deallocate (
bcdata(i)%uSlip, stat=ierr)
4918 if (ierr /= 0) deallocationfailure = .true.
4920 if (
associated(
bcdata(i)%TNS_Wall)) &
4921 deallocate (
bcdata(i)%TNS_Wall, stat=ierr)
4922 if (ierr /= 0) deallocationfailure = .true.
4924 if (
associated(
bcdata(i)%ptInlet)) &
4925 deallocate (
bcdata(i)%ptInlet, stat=ierr)
4926 if (ierr /= 0) deallocationfailure = .true.
4928 if (
associated(
bcdata(i)%ttInlet)) &
4929 deallocate (
bcdata(i)%ttInlet, stat=ierr)
4930 if (ierr /= 0) deallocationfailure = .true.
4932 if (
associated(
bcdata(i)%htInlet)) &
4933 deallocate (
bcdata(i)%htInlet, stat=ierr)
4934 if (ierr /= 0) deallocationfailure = .true.
4936 if (
associated(
bcdata(i)%flowXdirInlet)) &
4937 deallocate (
bcdata(i)%flowXdirInlet, stat=ierr)
4938 if (ierr /= 0) deallocationfailure = .true.
4940 if (
associated(
bcdata(i)%flowYdirInlet)) &
4941 deallocate (
bcdata(i)%flowYdirInlet, stat=ierr)
4942 if (ierr /= 0) deallocationfailure = .true.
4944 if (
associated(
bcdata(i)%flowZdirInlet)) &
4945 deallocate (
bcdata(i)%flowZdirInlet, stat=ierr)
4946 if (ierr /= 0) deallocationfailure = .true.
4948 if (
associated(
bcdata(i)%rho)) &
4949 deallocate (
bcdata(i)%rho, stat=ierr)
4950 if (ierr /= 0) deallocationfailure = .true.
4952 if (
associated(
bcdata(i)%velx)) &
4953 deallocate (
bcdata(i)%velx, stat=ierr)
4954 if (ierr /= 0) deallocationfailure = .true.
4956 if (
associated(
bcdata(i)%vely)) &
4957 deallocate (
bcdata(i)%vely, stat=ierr)
4958 if (ierr /= 0) deallocationfailure = .true.
4960 if (
associated(
bcdata(i)%velz)) &
4961 deallocate (
bcdata(i)%velz, stat=ierr)
4962 if (ierr /= 0) deallocationfailure = .true.
4964 if (
associated(
bcdata(i)%ps)) &
4965 deallocate (
bcdata(i)%ps, stat=ierr)
4966 if (ierr /= 0) deallocationfailure = .true.
4968 if (
associated(
bcdata(i)%turbInlet)) &
4969 deallocate (
bcdata(i)%turbInlet, stat=ierr)
4970 if (ierr /= 0) deallocationfailure = .true.
4972 if (
associated(
bcdata(i)%normALE)) &
4973 deallocate (
bcdata(i)%normALE, stat=ierr)
4974 if (ierr /= 0) deallocationfailure = .true.
4975 if (
associated(
bcdata(i)%rFaceALE)) &
4976 deallocate (
bcdata(i)%rFaceALE, stat=ierr)
4977 if (ierr /= 0) deallocationfailure = .true.
4978 if (
associated(
bcdata(i)%uSlipALE)) &
4979 deallocate (
bcdata(i)%uSlipALE, stat=ierr)
4980 if (ierr /= 0) deallocationfailure = .true.
4981 if (
associated(
bcdata(i)%cellHeatFlux)) &
4982 deallocate (
bcdata(i)%cellHeatFlux, stat=ierr)
4983 if (
associated(
bcdata(i)%nodeHeatFlux)) &
4984 deallocate (
bcdata(i)%nodeHeatFlux, stat=ierr)
4985 if (ierr /= 0) deallocationfailure = .true.
4987 if (
associated(
bcdata(i)%iBlank)) &
4988 deallocate (
bcdata(i)%iBlank, stat=ierr)
4990 if (ierr /= 0) deallocationfailure = .true.
4993 nullify (
bcdata(i)%rface)
5001 nullify (
bcdata(i)%uSlip)
5002 nullify (
bcdata(i)%TNS_Wall)
5004 nullify (
bcdata(i)%normALE)
5005 nullify (
bcdata(i)%rfaceALE)
5006 nullify (
bcdata(i)%uSlipALE)
5007 nullify (
bcdata(i)%cellHeatFlux)
5008 nullify (
bcdata(i)%nodeHeatFlux)
5010 nullify (
bcdata(i)%ptInlet)
5011 nullify (
bcdata(i)%ttInlet)
5012 nullify (
bcdata(i)%htInlet)
5013 nullify (
bcdata(i)%flowXdirInlet)
5014 nullify (
bcdata(i)%flowYdirInlet)
5015 nullify (
bcdata(i)%flowZdirInlet)
5017 nullify (
bcdata(i)%turbInlet)
5024 nullify (
bcdata(i)%iblank)
5028 if (
associated(
flowdoms(nn, level, sps)%BCType)) &
5029 deallocate (
flowdoms(nn, level, sps)%BCType, stat=ierr)
5030 if (ierr /= 0) deallocationfailure = .true.
5032 if (
associated(
flowdoms(nn, level, sps)%BCFaceID)) &
5033 deallocate (
flowdoms(nn, level, sps)%BCFaceID, stat=ierr)
5034 if (ierr /= 0) deallocationfailure = .true.
5036 if (
associated(
flowdoms(nn, level, sps)%cgnsSubface)) &
5037 deallocate (
flowdoms(nn, level, sps)%cgnsSubface, stat=ierr)
5038 if (ierr /= 0) deallocationfailure = .true.
5040 if (
associated(
flowdoms(nn, level, sps)%inBeg)) &
5041 deallocate (
flowdoms(nn, level, sps)%inBeg, stat=ierr)
5042 if (ierr /= 0) deallocationfailure = .true.
5044 if (
associated(
flowdoms(nn, level, sps)%inEnd)) &
5045 deallocate (
flowdoms(nn, level, sps)%inEnd, stat=ierr)
5046 if (ierr /= 0) deallocationfailure = .true.
5048 if (
associated(
flowdoms(nn, level, sps)%jnBeg)) &
5049 deallocate (
flowdoms(nn, level, sps)%jnBeg, stat=ierr)
5050 if (ierr /= 0) deallocationfailure = .true.
5052 if (
associated(
flowdoms(nn, level, sps)%jnEnd)) &
5053 deallocate (
flowdoms(nn, level, sps)%jnEnd, stat=ierr)
5054 if (ierr /= 0) deallocationfailure = .true.
5056 if (
associated(
flowdoms(nn, level, sps)%knBeg)) &
5057 deallocate (
flowdoms(nn, level, sps)%knBeg, stat=ierr)
5058 if (ierr /= 0) deallocationfailure = .true.
5060 if (
associated(
flowdoms(nn, level, sps)%knEnd)) &
5061 deallocate (
flowdoms(nn, level, sps)%knEnd, stat=ierr)
5062 if (ierr /= 0) deallocationfailure = .true.
5064 if (
associated(
flowdoms(nn, level, sps)%dinBeg)) &
5065 deallocate (
flowdoms(nn, level, sps)%dinBeg, stat=ierr)
5066 if (ierr /= 0) deallocationfailure = .true.
5068 if (
associated(
flowdoms(nn, level, sps)%dinEnd)) &
5069 deallocate (
flowdoms(nn, level, sps)%dinEnd, stat=ierr)
5070 if (ierr /= 0) deallocationfailure = .true.
5072 if (
associated(
flowdoms(nn, level, sps)%djnBeg)) &
5073 deallocate (
flowdoms(nn, level, sps)%djnBeg, stat=ierr)
5074 if (ierr /= 0) deallocationfailure = .true.
5076 if (
associated(
flowdoms(nn, level, sps)%djnEnd)) &
5077 deallocate (
flowdoms(nn, level, sps)%djnEnd, stat=ierr)
5078 if (ierr /= 0) deallocationfailure = .true.
5080 if (
associated(
flowdoms(nn, level, sps)%dknBeg)) &
5081 deallocate (
flowdoms(nn, level, sps)%dknBeg, stat=ierr)
5082 if (ierr /= 0) deallocationfailure = .true.
5084 if (
associated(
flowdoms(nn, level, sps)%dknEnd)) &
5085 deallocate (
flowdoms(nn, level, sps)%dknEnd, stat=ierr)
5086 if (ierr /= 0) deallocationfailure = .true.
5088 if (
associated(
flowdoms(nn, level, sps)%icBeg)) &
5089 deallocate (
flowdoms(nn, level, sps)%icBeg, stat=ierr)
5090 if (ierr /= 0) deallocationfailure = .true.
5092 if (
associated(
flowdoms(nn, level, sps)%icEnd)) &
5093 deallocate (
flowdoms(nn, level, sps)%icEnd, stat=ierr)
5094 if (ierr /= 0) deallocationfailure = .true.
5096 if (
associated(
flowdoms(nn, level, sps)%jcBeg)) &
5097 deallocate (
flowdoms(nn, level, sps)%jcBeg, stat=ierr)
5098 if (ierr /= 0) deallocationfailure = .true.
5100 if (
associated(
flowdoms(nn, level, sps)%jcEnd)) &
5101 deallocate (
flowdoms(nn, level, sps)%jcEnd, stat=ierr)
5102 if (ierr /= 0) deallocationfailure = .true.
5104 if (
associated(
flowdoms(nn, level, sps)%kcBeg)) &
5105 deallocate (
flowdoms(nn, level, sps)%kcBeg, stat=ierr)
5106 if (ierr /= 0) deallocationfailure = .true.
5108 if (
associated(
flowdoms(nn, level, sps)%kcEnd)) &
5109 deallocate (
flowdoms(nn, level, sps)%kcEnd, stat=ierr)
5110 if (ierr /= 0) deallocationfailure = .true.
5112 if (
associated(
flowdoms(nn, level, sps)%neighBlock)) &
5113 deallocate (
flowdoms(nn, level, sps)%neighBlock, stat=ierr)
5114 if (ierr /= 0) deallocationfailure = .true.
5116 if (
associated(
flowdoms(nn, level, sps)%neighProc)) &
5117 deallocate (
flowdoms(nn, level, sps)%neighProc, stat=ierr)
5118 if (ierr /= 0) deallocationfailure = .true.
5120 if (
associated(
flowdoms(nn, level, sps)%l1)) &
5121 deallocate (
flowdoms(nn, level, sps)%l1, stat=ierr)
5122 if (ierr /= 0) deallocationfailure = .true.
5124 if (
associated(
flowdoms(nn, level, sps)%l2)) &
5125 deallocate (
flowdoms(nn, level, sps)%l2, stat=ierr)
5126 if (ierr /= 0) deallocationfailure = .true.
5128 if (
associated(
flowdoms(nn, level, sps)%l3)) &
5129 deallocate (
flowdoms(nn, level, sps)%l3, stat=ierr)
5130 if (ierr /= 0) deallocationfailure = .true.
5132 if (
associated(
flowdoms(nn, level, sps)%groupNum)) &
5133 deallocate (
flowdoms(nn, level, sps)%groupNum, stat=ierr)
5134 if (ierr /= 0) deallocationfailure = .true.
5136 if (
associated(
flowdoms(nn, level, sps)%iblank)) &
5137 deallocate (
flowdoms(nn, level, sps)%iblank, stat=ierr)
5138 if (ierr /= 0) deallocationfailure = .true.
5140 if (
associated(
flowdoms(nn, level, sps)%forcedRecv)) &
5141 deallocate (
flowdoms(nn, level, sps)%forcedRecv, stat=ierr)
5142 if (ierr /= 0) deallocationfailure = .true.
5144 if (
associated(
flowdoms(nn, level, sps)%status)) &
5145 deallocate (
flowdoms(nn, level, sps)%status, stat=ierr)
5146 if (ierr /= 0) deallocationfailure = .true.
5148 if (
associated(
flowdoms(nn, level, sps)%BCData)) &
5149 deallocate (
flowdoms(nn, level, sps)%BCData, stat=ierr)
5150 if (ierr /= 0) deallocationfailure = .true.
5152 if (
associated(
flowdoms(nn, level, sps)%viscSubface)) &
5153 deallocate (
flowdoms(nn, level, sps)%viscSubface, stat=ierr)
5154 if (ierr /= 0) deallocationfailure = .true.
5156 if (
associated(
flowdoms(nn, level, sps)%viscIminPointer)) &
5157 deallocate (
flowdoms(nn, level, sps)%viscIminPointer, stat=ierr)
5158 if (ierr /= 0) deallocationfailure = .true.
5160 if (
associated(
flowdoms(nn, level, sps)%viscImaxPointer)) &
5161 deallocate (
flowdoms(nn, level, sps)%viscImaxPointer, stat=ierr)
5162 if (ierr /= 0) deallocationfailure = .true.
5164 if (
associated(
flowdoms(nn, level, sps)%viscJminPointer)) &
5165 deallocate (
flowdoms(nn, level, sps)%viscJminPointer, stat=ierr)
5166 if (ierr /= 0) deallocationfailure = .true.
5168 if (
associated(
flowdoms(nn, level, sps)%viscJmaxPointer)) &
5169 deallocate (
flowdoms(nn, level, sps)%viscJmaxPointer, stat=ierr)
5170 if (ierr /= 0) deallocationfailure = .true.
5172 if (
associated(
flowdoms(nn, level, sps)%viscKminPointer)) &
5173 deallocate (
flowdoms(nn, level, sps)%viscKminPointer, stat=ierr)
5174 if (ierr /= 0) deallocationfailure = .true.
5176 if (
associated(
flowdoms(nn, level, sps)%viscKmaxPointer)) &
5177 deallocate (
flowdoms(nn, level, sps)%viscKmaxPointer, stat=ierr)
5178 if (ierr /= 0) deallocationfailure = .true.
5180 if (
associated(
flowdoms(nn, level, sps)%x)) &
5181 deallocate (
flowdoms(nn, level, sps)%x, stat=ierr)
5182 if (ierr /= 0) deallocationfailure = .true.
5184 if (
associated(
flowdoms(nn, level, sps)%xOld)) &
5185 deallocate (
flowdoms(nn, level, sps)%xOld, stat=ierr)
5186 if (ierr /= 0) deallocationfailure = .true.
5188 if (
associated(
flowdoms(nn, level, sps)%si)) &
5189 deallocate (
flowdoms(nn, level, sps)%si, stat=ierr)
5190 if (ierr /= 0) deallocationfailure = .true.
5192 if (
associated(
flowdoms(nn, level, sps)%sj)) &
5193 deallocate (
flowdoms(nn, level, sps)%sj, stat=ierr)
5194 if (ierr /= 0) deallocationfailure = .true.
5196 if (
associated(
flowdoms(nn, level, sps)%sk)) &
5197 deallocate (
flowdoms(nn, level, sps)%sk, stat=ierr)
5198 if (ierr /= 0) deallocationfailure = .true.
5200 if (
associated(
flowdoms(nn, level, sps)%vol)) &
5201 deallocate (
flowdoms(nn, level, sps)%vol, stat=ierr)
5202 if (ierr /= 0) deallocationfailure = .true.
5205 if (
associated(
flowdoms(nn, level, sps)%skew)) &
5206 deallocate (
flowdoms(nn, level, sps)%skew, stat=ierr)
5207 if (ierr /= 0) deallocationfailure = .true.
5210 if (
associated(
flowdoms(nn, level, sps)%volRef)) &
5211 deallocate (
flowdoms(nn, level, sps)%volRef, stat=ierr)
5212 if (ierr /= 0) deallocationfailure = .true.
5214 if (
associated(
flowdoms(nn, level, sps)%volOld)) &
5215 deallocate (
flowdoms(nn, level, sps)%volOld, stat=ierr)
5216 if (ierr /= 0) deallocationfailure = .true.
5218 if (
associated(
flowdoms(nn, level, sps)%pori)) &
5219 deallocate (
flowdoms(nn, level, sps)%pori, stat=ierr)
5220 if (ierr /= 0) deallocationfailure = .true.
5222 if (
associated(
flowdoms(nn, level, sps)%porj)) &
5223 deallocate (
flowdoms(nn, level, sps)%porj, stat=ierr)
5224 if (ierr /= 0) deallocationfailure = .true.
5226 if (
associated(
flowdoms(nn, level, sps)%pork)) &
5227 deallocate (
flowdoms(nn, level, sps)%pork, stat=ierr)
5228 if (ierr /= 0) deallocationfailure = .true.
5230 if (
associated(
flowdoms(nn, level, sps)%indFamilyI)) &
5231 deallocate (
flowdoms(nn, level, sps)%indFamilyI, stat=ierr)
5232 if (ierr /= 0) deallocationfailure = .true.
5234 if (
associated(
flowdoms(nn, level, sps)%indFamilyJ)) &
5235 deallocate (
flowdoms(nn, level, sps)%indFamilyJ, stat=ierr)
5236 if (ierr /= 0) deallocationfailure = .true.
5238 if (
associated(
flowdoms(nn, level, sps)%indFamilyK)) &
5239 deallocate (
flowdoms(nn, level, sps)%indFamilyK, stat=ierr)
5240 if (ierr /= 0) deallocationfailure = .true.
5242 if (
associated(
flowdoms(nn, level, sps)%factFamilyI)) &
5243 deallocate (
flowdoms(nn, level, sps)%factFamilyI, stat=ierr)
5244 if (ierr /= 0) deallocationfailure = .true.
5246 if (
associated(
flowdoms(nn, level, sps)%factFamilyJ)) &
5247 deallocate (
flowdoms(nn, level, sps)%factFamilyJ, stat=ierr)
5248 if (ierr /= 0) deallocationfailure = .true.
5250 if (
associated(
flowdoms(nn, level, sps)%factFamilyK)) &
5251 deallocate (
flowdoms(nn, level, sps)%factFamilyK, stat=ierr)
5252 if (ierr /= 0) deallocationfailure = .true.
5254 if (
associated(
flowdoms(nn, level, sps)%rotMatrixI)) &
5255 deallocate (
flowdoms(nn, level, sps)%rotMatrixI, stat=ierr)
5256 if (ierr /= 0) deallocationfailure = .true.
5258 if (
associated(
flowdoms(nn, level, sps)%rotMatrixJ)) &
5259 deallocate (
flowdoms(nn, level, sps)%rotMatrixJ, stat=ierr)
5260 if (ierr /= 0) deallocationfailure = .true.
5262 if (
associated(
flowdoms(nn, level, sps)%rotMatrixK)) &
5263 deallocate (
flowdoms(nn, level, sps)%rotMatrixK, stat=ierr)
5264 if (ierr /= 0) deallocationfailure = .true.
5266 if (
associated(
flowdoms(nn, level, sps)%sFaceI)) &
5267 deallocate (
flowdoms(nn, level, sps)%sFaceI, stat=ierr)
5268 if (ierr /= 0) deallocationfailure = .true.
5270 if (
associated(
flowdoms(nn, level, sps)%sFaceJ)) &
5271 deallocate (
flowdoms(nn, level, sps)%sFaceJ, stat=ierr)
5272 if (ierr /= 0) deallocationfailure = .true.
5274 if (
associated(
flowdoms(nn, level, sps)%sFaceK)) &
5275 deallocate (
flowdoms(nn, level, sps)%sFaceK, stat=ierr)
5276 if (ierr /= 0) deallocationfailure = .true.
5278 if (
associated(
flowdoms(nn, level, sps)%w)) &
5279 deallocate (
flowdoms(nn, level, sps)%w, stat=ierr)
5280 if (ierr /= 0) deallocationfailure = .true.
5282 if (
associated(
flowdoms(nn, level, sps)%wOld)) &
5283 deallocate (
flowdoms(nn, level, sps)%wOld, stat=ierr)
5284 if (ierr /= 0) deallocationfailure = .true.
5286 if (
associated(
flowdoms(nn, level, sps)%p)) &
5287 deallocate (
flowdoms(nn, level, sps)%p, stat=ierr)
5288 if (ierr /= 0) deallocationfailure = .true.
5290 if (
associated(
flowdoms(nn, level, sps)%aa)) &
5291 deallocate (
flowdoms(nn, level, sps)%aa, stat=ierr)
5292 if (ierr /= 0) deallocationfailure = .true.
5294 if (
associated(
flowdoms(nn, level, sps)%gamma)) &
5295 deallocate (
flowdoms(nn, level, sps)%gamma, stat=ierr)
5296 if (ierr /= 0) deallocationfailure = .true.
5298 if (
associated(
flowdoms(nn, level, sps)%ux)) &
5299 deallocate (
flowdoms(nn, level, sps)%ux, stat=ierr)
5300 if (ierr /= 0) deallocationfailure = .true.
5302 if (
associated(
flowdoms(nn, level, sps)%uy)) &
5303 deallocate (
flowdoms(nn, level, sps)%uy, stat=ierr)
5304 if (ierr /= 0) deallocationfailure = .true.
5306 if (
associated(
flowdoms(nn, level, sps)%uz)) &
5307 deallocate (
flowdoms(nn, level, sps)%uz, stat=ierr)
5308 if (ierr /= 0) deallocationfailure = .true.
5310 if (
associated(
flowdoms(nn, level, sps)%vx)) &
5311 deallocate (
flowdoms(nn, level, sps)%vx, stat=ierr)
5312 if (ierr /= 0) deallocationfailure = .true.
5314 if (
associated(
flowdoms(nn, level, sps)%vy)) &
5315 deallocate (
flowdoms(nn, level, sps)%vy, stat=ierr)
5316 if (ierr /= 0) deallocationfailure = .true.
5318 if (
associated(
flowdoms(nn, level, sps)%vz)) &
5319 deallocate (
flowdoms(nn, level, sps)%vz, stat=ierr)
5320 if (ierr /= 0) deallocationfailure = .true.
5322 if (
associated(
flowdoms(nn, level, sps)%wx)) &
5323 deallocate (
flowdoms(nn, level, sps)%wx, stat=ierr)
5324 if (ierr /= 0) deallocationfailure = .true.
5326 if (
associated(
flowdoms(nn, level, sps)%wy)) &
5327 deallocate (
flowdoms(nn, level, sps)%wy, stat=ierr)
5328 if (ierr /= 0) deallocationfailure = .true.
5330 if (
associated(
flowdoms(nn, level, sps)%wz)) &
5331 deallocate (
flowdoms(nn, level, sps)%wz, stat=ierr)
5332 if (ierr /= 0) deallocationfailure = .true.
5334 if (
associated(
flowdoms(nn, level, sps)%qx)) &
5335 deallocate (
flowdoms(nn, level, sps)%qx, stat=ierr)
5336 if (ierr /= 0) deallocationfailure = .true.
5338 if (
associated(
flowdoms(nn, level, sps)%qy)) &
5339 deallocate (
flowdoms(nn, level, sps)%qy, stat=ierr)
5340 if (ierr /= 0) deallocationfailure = .true.
5342 if (
associated(
flowdoms(nn, level, sps)%qz)) &
5343 deallocate (
flowdoms(nn, level, sps)%qz, stat=ierr)
5344 if (ierr /= 0) deallocationfailure = .true.
5346 if (
associated(
flowdoms(nn, level, sps)%rlv)) &
5347 deallocate (
flowdoms(nn, level, sps)%rlv, stat=ierr)
5348 if (ierr /= 0) deallocationfailure = .true.
5350 if (
associated(
flowdoms(nn, level, sps)%rev)) &
5351 deallocate (
flowdoms(nn, level, sps)%rev, stat=ierr)
5352 if (ierr /= 0) deallocationfailure = .true.
5354 if (
associated(
flowdoms(nn, level, sps)%s)) &
5355 deallocate (
flowdoms(nn, level, sps)%s, stat=ierr)
5356 if (ierr /= 0) deallocationfailure = .true.
5358 if (
associated(
flowdoms(nn, level, sps)%p1)) &
5359 deallocate (
flowdoms(nn, level, sps)%p1, stat=ierr)
5360 if (ierr /= 0) deallocationfailure = .true.
5362 if (
associated(
flowdoms(nn, level, sps)%dw)) &
5363 deallocate (
flowdoms(nn, level, sps)%dw, stat=ierr)
5364 if (ierr /= 0) deallocationfailure = .true.
5366 if (
associated(
flowdoms(nn, level, sps)%fw)) &
5367 deallocate (
flowdoms(nn, level, sps)%fw, stat=ierr)
5368 if (ierr /= 0) deallocationfailure = .true.
5370 if (
associated(
flowdoms(nn, level, sps)%dwOldRK)) &
5371 deallocate (
flowdoms(nn, level, sps)%dwOldRK, stat=ierr)
5372 if (ierr /= 0) deallocationfailure = .true.
5374 if (
associated(
flowdoms(nn, level, sps)%w1)) &
5375 deallocate (
flowdoms(nn, level, sps)%w1, stat=ierr)
5376 if (ierr /= 0) deallocationfailure = .true.
5378 if (
associated(
flowdoms(nn, level, sps)%wr)) &
5379 deallocate (
flowdoms(nn, level, sps)%wr, stat=ierr)
5380 if (ierr /= 0) deallocationfailure = .true.
5382 if (
associated(
flowdoms(nn, level, sps)%mgIFine)) &
5383 deallocate (
flowdoms(nn, level, sps)%mgIFine, stat=ierr)
5384 if (ierr /= 0) deallocationfailure = .true.
5386 if (
associated(
flowdoms(nn, level, sps)%mgJFine)) &
5387 deallocate (
flowdoms(nn, level, sps)%mgJFine, stat=ierr)
5388 if (ierr /= 0) deallocationfailure = .true.
5390 if (
associated(
flowdoms(nn, level, sps)%mgKFine)) &
5391 deallocate (
flowdoms(nn, level, sps)%mgKFine, stat=ierr)
5392 if (ierr /= 0) deallocationfailure = .true.
5394 if (
associated(
flowdoms(nn, level, sps)%mgIWeight)) &
5395 deallocate (
flowdoms(nn, level, sps)%mgIWeight, stat=ierr)
5396 if (ierr /= 0) deallocationfailure = .true.
5398 if (
associated(
flowdoms(nn, level, sps)%mgJWeight)) &
5399 deallocate (
flowdoms(nn, level, sps)%mgJWeight, stat=ierr)
5400 if (ierr /= 0) deallocationfailure = .true.
5402 if (
associated(
flowdoms(nn, level, sps)%mgKWeight)) &
5403 deallocate (
flowdoms(nn, level, sps)%mgKWeight, stat=ierr)
5404 if (ierr /= 0) deallocationfailure = .true.
5406 if (
associated(
flowdoms(nn, level, sps)%mgICoarse)) &
5407 deallocate (
flowdoms(nn, level, sps)%mgICoarse, stat=ierr)
5408 if (ierr /= 0) deallocationfailure = .true.
5410 if (
associated(
flowdoms(nn, level, sps)%mgJCoarse)) &
5411 deallocate (
flowdoms(nn, level, sps)%mgJCoarse, stat=ierr)
5412 if (ierr /= 0) deallocationfailure = .true.
5414 if (
associated(
flowdoms(nn, level, sps)%mgKCoarse)) &
5415 deallocate (
flowdoms(nn, level, sps)%mgKCoarse, stat=ierr)
5416 if (ierr /= 0) deallocationfailure = .true.
5418 if (
associated(
flowdoms(nn, level, sps)%iCo)) &
5419 deallocate (
flowdoms(nn, level, sps)%iCo, stat=ierr)
5420 if (ierr /= 0) deallocationfailure = .true.
5422 if (
associated(
flowdoms(nn, level, sps)%jCo)) &
5423 deallocate (
flowdoms(nn, level, sps)%jCo, stat=ierr)
5424 if (ierr /= 0) deallocationfailure = .true.
5426 if (
associated(
flowdoms(nn, level, sps)%kCo)) &
5427 deallocate (
flowdoms(nn, level, sps)%kCo, stat=ierr)
5428 if (ierr /= 0) deallocationfailure = .true.
5430 if (
associated(
flowdoms(nn, level, sps)%wn)) &
5431 deallocate (
flowdoms(nn, level, sps)%wn, stat=ierr)
5432 if (ierr /= 0) deallocationfailure = .true.
5434 if (
associated(
flowdoms(nn, level, sps)%pn)) &
5435 deallocate (
flowdoms(nn, level, sps)%pn, stat=ierr)
5436 if (ierr /= 0) deallocationfailure = .true.
5438 if (
associated(
flowdoms(nn, level, sps)%dtl)) &
5439 deallocate (
flowdoms(nn, level, sps)%dtl, stat=ierr)
5440 if (ierr /= 0) deallocationfailure = .true.
5442 if (
associated(
flowdoms(nn, level, sps)%radI)) &
5443 deallocate (
flowdoms(nn, level, sps)%radI, stat=ierr)
5444 if (ierr /= 0) deallocationfailure = .true.
5446 if (
associated(
flowdoms(nn, level, sps)%radJ)) &
5447 deallocate (
flowdoms(nn, level, sps)%radJ, stat=ierr)
5448 if (ierr /= 0) deallocationfailure = .true.
5450 if (
associated(
flowdoms(nn, level, sps)%radK)) &
5451 deallocate (
flowdoms(nn, level, sps)%radK, stat=ierr)
5452 if (ierr /= 0) deallocationfailure = .true.
5454 if (
associated(
flowdoms(nn, level, sps)%d2Wall)) &
5455 deallocate (
flowdoms(nn, level, sps)%d2Wall, stat=ierr)
5456 if (ierr /= 0) deallocationfailure = .true.
5458 if (
associated(
flowdoms(nn, level, sps)%bmti1)) &
5459 deallocate (
flowdoms(nn, level, sps)%bmti1, stat=ierr)
5460 if (ierr /= 0) deallocationfailure = .true.
5462 if (
associated(
flowdoms(nn, level, sps)%bmti2)) &
5463 deallocate (
flowdoms(nn, level, sps)%bmti2, stat=ierr)
5464 if (ierr /= 0) deallocationfailure = .true.
5466 if (
associated(
flowdoms(nn, level, sps)%bmtj1)) &
5467 deallocate (
flowdoms(nn, level, sps)%bmtj1, stat=ierr)
5468 if (ierr /= 0) deallocationfailure = .true.
5470 if (
associated(
flowdoms(nn, level, sps)%bmtj2)) &
5471 deallocate (
flowdoms(nn, level, sps)%bmtj2, stat=ierr)
5472 if (ierr /= 0) deallocationfailure = .true.
5474 if (
associated(
flowdoms(nn, level, sps)%bmtk1)) &
5475 deallocate (
flowdoms(nn, level, sps)%bmtk1, stat=ierr)
5476 if (ierr /= 0) deallocationfailure = .true.
5478 if (
associated(
flowdoms(nn, level, sps)%bmtk2)) &
5479 deallocate (
flowdoms(nn, level, sps)%bmtk2, stat=ierr)
5480 if (ierr /= 0) deallocationfailure = .true.
5482 if (
associated(
flowdoms(nn, level, sps)%bvti1)) &
5483 deallocate (
flowdoms(nn, level, sps)%bvti1, stat=ierr)
5484 if (ierr /= 0) deallocationfailure = .true.
5486 if (
associated(
flowdoms(nn, level, sps)%bvti2)) &
5487 deallocate (
flowdoms(nn, level, sps)%bvti2, stat=ierr)
5488 if (ierr /= 0) deallocationfailure = .true.
5490 if (
associated(
flowdoms(nn, level, sps)%bvtj1)) &
5491 deallocate (
flowdoms(nn, level, sps)%bvtj1, stat=ierr)
5492 if (ierr /= 0) deallocationfailure = .true.
5494 if (
associated(
flowdoms(nn, level, sps)%bvtj2)) &
5495 deallocate (
flowdoms(nn, level, sps)%bvtj2, stat=ierr)
5496 if (ierr /= 0) deallocationfailure = .true.
5498 if (
associated(
flowdoms(nn, level, sps)%bvtk1)) &
5499 deallocate (
flowdoms(nn, level, sps)%bvtk1, stat=ierr)
5500 if (ierr /= 0) deallocationfailure = .true.
5502 if (
associated(
flowdoms(nn, level, sps)%bvtk2)) &
5503 deallocate (
flowdoms(nn, level, sps)%bvtk2, stat=ierr)
5504 if (ierr /= 0) deallocationfailure = .true.
5506 if (
associated(
flowdoms(nn, level, sps)%globalCell)) &
5507 deallocate (
flowdoms(nn, level, sps)%globalCell, stat=ierr)
5508 if (ierr /= 0) deallocationfailure = .true.
5510 if (
associated(
flowdoms(nn, level, sps)%globalNode)) &
5511 deallocate (
flowdoms(nn, level, sps)%globalNode, stat=ierr)
5512 if (ierr /= 0) deallocationfailure = .true.
5517 if (
associated(
flowdoms(nn, level, sps)%xALE)) &
5518 deallocate (
flowdoms(nn, level, sps)%xALE, stat=ierr)
5519 if (ierr /= 0) deallocationfailure = .true.
5521 if (
associated(
flowdoms(nn, level, sps)%sIALE)) &
5522 deallocate (
flowdoms(nn, level, sps)%sIALE, stat=ierr)
5523 if (ierr /= 0) deallocationfailure = .true.
5525 if (
associated(
flowdoms(nn, level, sps)%sJALE)) &
5526 deallocate (
flowdoms(nn, level, sps)%sJALE, stat=ierr)
5527 if (ierr /= 0) deallocationfailure = .true.
5529 if (
associated(
flowdoms(nn, level, sps)%sKALE)) &
5530 deallocate (
flowdoms(nn, level, sps)%sKALE, stat=ierr)
5531 if (ierr /= 0) deallocationfailure = .true.
5533 if (
associated(
flowdoms(nn, level, sps)%sVeloIALE)) &
5534 deallocate (
flowdoms(nn, level, sps)%sVeloIALE, stat=ierr)
5535 if (ierr /= 0) deallocationfailure = .true.
5537 if (
associated(
flowdoms(nn, level, sps)%sVeloJALE)) &
5538 deallocate (
flowdoms(nn, level, sps)%sVeloJALE, stat=ierr)
5539 if (ierr /= 0) deallocationfailure = .true.
5541 if (
associated(
flowdoms(nn, level, sps)%sVeloKALE)) &
5542 deallocate (
flowdoms(nn, level, sps)%sVeloKALE, stat=ierr)
5543 if (ierr /= 0) deallocationfailure = .true.
5545 if (
associated(
flowdoms(nn, level, sps)%sFaceIALE)) &
5546 deallocate (
flowdoms(nn, level, sps)%sFaceIALE, stat=ierr)
5547 if (ierr /= 0) deallocationfailure = .true.
5549 if (
associated(
flowdoms(nn, level, sps)%sFaceJALE)) &
5550 deallocate (
flowdoms(nn, level, sps)%sFaceJALE, stat=ierr)
5551 if (ierr /= 0) deallocationfailure = .true.
5553 if (
associated(
flowdoms(nn, level, sps)%sFaceKALE)) &
5554 deallocate (
flowdoms(nn, level, sps)%sFaceKALE, stat=ierr)
5555 if (ierr /= 0) deallocationfailure = .true.
5568 if (deallocationfailure) &
5570 "Something went wrong when deallocating memory")
5584 use su_cgns,
only: realsingle, realdouble
5590 "Function should not be called if no cgns support &
5595 # ifdef USE_SINGLE_PRECISION
5612 #ifndef USE_TAPENADE
5619 character(len=*),
intent(in) :: routineName
5620 character(len=*),
intent(in) :: errorMessage
5621 #ifndef USE_TAPENADE
5626 integer,
parameter :: maxCharLine = 55
5630 integer :: ierr, len, i2
5631 logical :: firstTime
5633 character(len=len_trim(errorMessage)) :: message
5634 character(len=8) :: integerString
5641 message = errormessage
5647 print
"(a)",
"#--------------------------- !!! Error !!! &
5648 &----------------------------"
5650 write (integerstring,
"(i8)")
myid
5651 integerstring = adjustl(integerstring)
5653 print
"(2a)",
"#* returnFail called by processor ", &
5658 print
"(2a)",
"#* Run-time error in procedure ", &
5670 message = adjustl(message)
5671 len = len_trim(message)
5672 i2 = min(maxcharline, len)
5674 if (i2 < len) i2 = index(message(:i2),
" ", .true.) - 1
5675 if (i2 < 0) i2 = index(message,
" ") - 1
5676 if (i2 < 0) i2 = len
5682 print
"(2a)",
"#* Error message: ", &
5686 print
"(2a)",
"#* ", &
5696 message = message(i2 + 1:)
5703 print
"(a)",
"#------------------------------------------&
5704 &----------------------------"
5721 subroutine echk(errorcode, file, line)
5729 integer(kind=intType),
intent(in) :: errorcode
5730 character(len=*),
intent(in) :: file
5731 integer(kind=intType),
intent(in) :: line
5733 character(len=maxStringLen) :: errorCodeFormat, errorLineFormat
5735 errorcodeformat =
"(2(A, I2))"
5736 errorlineformat =
"(A, I5, A, A)"
5738 if (errorcode == 0)
then
5741 #ifndef USE_TAPENADE
5742 print *,
'---------------------------------------------------------------------------'
5743 print errorcodeformat,
"PETSc or MPI Error. Error Code ", errorcode,
". Detected on Proc ",
myid
5744 print errorlineformat,
"Error at line: ", line,
" in file: ", file
5745 print *,
'---------------------------------------------------------------------------'
5764 character(len=*),
intent(inout) :: string
5768 integer(kind=intType),
parameter :: upperToLower = iachar(
"a") - iachar(
"A")
5770 integer(kind=intType) :: i, lenString
5775 lenstring = len_trim(string)
5777 if (
"A" <= string(i:i) .and. string(i:i) <=
"Z") &
5778 string(i:i) = achar(iachar(string(i:i)) + uppertolower)
5796 integer(kind=intType) :: nn, i
5798 logical :: localeulerwalls
5805 localeulerwalls = .false.
5807 do i = 1,
flowdoms(nn, 1, 1)%nBocos
5809 localeulerwalls = .true.
5818 if (localeulerwalls) i = 1
5819 call mpi_allreduce(i, nn, 1, adflow_integer, mpi_max, &
5846 integer(kind=intType) :: nIterTot
5852 integer(kind=intType) :: nSolverMon
5899 integer(kind=intType) :: nTimeTot
5919 "Memory allocation failure for timeArray &
5920 &and timeDataArray")
5934 integer(kind=intType),
intent(in) :: nvar
5935 character,
dimension(nvar, maxCGNSNameLen),
intent(out) :: monitor_variables
5938 character(len=maxCGNSNameLen) :: var_name
5939 integer(kind=intType) :: c, idx_mon
5941 do idx_mon = 1, nvar
5945 monitor_variables(idx_mon, c) = var_name(c:c)
5963 integer(kind=intType),
intent(in) :: niter, nsps
5964 character,
dimension(0:niter, ntimeintervalsspectral, maxIterTypelen),
intent(out) :: type_array
5967 character(len=maxIterTypelen) :: type_name
5968 integer(kind=intType) :: c, idx_sps, idx_iter
5975 type_array(idx_iter, idx_sps, c) = type_name(c:c)
5998 integer(kind=intType) :: i, nCharWrite
5999 logical :: writeIterations
6004 writeiterations = .true.
6014 if (writeiterations) ncharwrite = ncharwrite + 7 + 7 + 9 + 7 + 7 + 10
6018 ncharwrite = ncharwrite + 11
6054 write (*,
"(a)", advance=
"no")
"#"
6055 do i = 2, ncharwrite
6056 write (*,
"(a)", advance=
"no")
"-"
6063 write (*,
'("# ")', advance=
"no")
6064 write (*,
"(a)", advance=
"no")
" Grid |"
6067 write (*,
"(a)", advance=
"no")
" Time | Time |"
6069 write (*,
"(a)", advance=
"no")
" Spectral |"
6072 if (writeiterations)
write (*,
"(a)", advance=
"no")
" Iter | Iter | Iter | CFL | Step | Lin |"
6073 if (
showcpu)
write (*,
"(a)", advance=
"no")
" Wall |"
6086 write (*,
"(a)", advance=
"no")
" totalRes |"
6089 write (*,
"(a)", advance=
"no")
" Res rho |"
6092 write (*,
"(a)", advance=
"no")
" Res rhou |"
6095 write (*,
"(a)", advance=
"no")
" Res rhov |"
6098 write (*,
"(a)", advance=
"no")
" Res rhow |"
6101 write (*,
"(a)", advance=
"no")
" Res rhoE |"
6104 write (*,
"(a)", advance=
"no")
" Res nuturb |"
6107 write (*,
"(a)", advance=
"no")
" Res kturb |"
6110 write (*,
"(a)", advance=
"no")
" Res wturb |"
6113 write (*,
"(a)", advance=
"no")
" Res tauturb |"
6116 write (*,
"(a)", advance=
"no")
" Res epsturb |"
6119 write (*,
"(a)", advance=
"no")
" Res v2turb |"
6122 write (*,
"(a)", advance=
"no")
" Res fturb |"
6125 write (*,
"(a)", advance=
"no")
" C_lift |"
6128 write (*,
"(a)", advance=
"no")
" C_lift_p |"
6131 write (*,
"(a)", advance=
"no")
" C_lift_v |"
6134 write (*,
"(a)", advance=
"no")
" C_drag |"
6137 write (*,
"(a)", advance=
"no")
" C_drag_p |"
6140 write (*,
"(a)", advance=
"no")
" C_drag_v |"
6143 write (*,
"(a)", advance=
"no")
" C_Fx |"
6146 write (*,
"(a)", advance=
"no")
" C_Fy |"
6149 write (*,
"(a)", advance=
"no")
" C_Fz |"
6152 write (*,
"(a)", advance=
"no")
" C_Mx |"
6155 write (*,
"(a)", advance=
"no")
" C_My |"
6158 write (*,
"(a)", advance=
"no")
" C_Mz |"
6161 write (*,
"(a)", advance=
"no")
" |H-H_inf| |"
6164 write (*,
"(a)", advance=
"no")
" Mach_max |"
6167 write (*,
"(a)", advance=
"no")
" Y+_max |"
6170 write (*,
"(a)", advance=
"no")
" Eddyv_max |"
6173 write (*,
"(a)", advance=
"no")
" SepSensor |"
6176 write (*,
"(a)", advance=
"no")
" sepSensorKsArea |"
6179 write (*,
"(a)", advance=
"no")
" Cavitation |"
6182 write (*,
"(a)", advance=
"no")
" AxisMoment |"
6191 write (*,
"(a)", advance=
"no")
" totalRes |"
6194 write (*,
"(a)", advance=
"no")
" Res rho |"
6197 write (*,
"(a)", advance=
"no")
" Res rhou |"
6200 write (*,
"(a)", advance=
"no")
" Res rhov |"
6203 write (*,
"(a)", advance=
"no")
" Res rhow |"
6206 write (*,
"(a)", advance=
"no")
" Res rhoE |"
6209 write (*,
"(a)", advance=
"no")
" Res nuturb |"
6212 write (*,
"(a)", advance=
"no")
" Res kturb |"
6215 write (*,
"(a)", advance=
"no")
" Res wturb |"
6218 write (*,
"(a)", advance=
"no")
" Res tauturb |"
6221 write (*,
"(a)", advance=
"no")
" Res epsturb |"
6224 write (*,
"(a)", advance=
"no")
" Res v2turb |"
6227 write (*,
"(a)", advance=
"no")
" Res fturb |"
6230 write (*,
"(a)", advance=
"no")
" C_lift |"
6233 write (*,
"(a)", advance=
"no")
" C_lift_p |"
6236 write (*,
"(a)", advance=
"no")
" C_lift_v |"
6239 write (*,
"(a)", advance=
"no")
" C_drag |"
6242 write (*,
"(a)", advance=
"no")
" C_drag_p |"
6245 write (*,
"(a)", advance=
"no")
" C_drag_v |"
6248 write (*,
"(a)", advance=
"no")
" C_Fx |"
6251 write (*,
"(a)", advance=
"no")
" C_Fy |"
6254 write (*,
"(a)", advance=
"no")
" C_Fz |"
6257 write (*,
"(a)", advance=
"no")
" C_Mx |"
6260 write (*,
"(a)", advance=
"no")
" C_My |"
6263 write (*,
"(a)", advance=
"no")
" C_Mz |"
6266 write (*,
"(a)", advance=
"no")
" |H-H_inf| |"
6269 write (*,
"(a)", advance=
"no")
" Mach_max |"
6272 write (*,
"(a)", advance=
"no")
" Y+_max |"
6275 write (*,
"(a)", advance=
"no")
" Eddyv_max |"
6278 write (*,
"(a)", advance=
"no")
" SepSensor |"
6281 write (*,
"(a)", advance=
"no")
" sepSensorKsArea |"
6284 write (*,
"(a)", advance=
"no")
" Cavitation |"
6287 write (*,
"(a)", advance=
"no")
" AxisMoment |"
6298 write (*,
'("# ")', advance=
"no")
6300 write (*,
"(a)", advance=
"no")
" level |"
6303 write (*,
"(a)", advance=
"no")
" Step | |"
6305 write (*,
"(a)", advance=
"no")
" Solution |"
6308 if (writeiterations)
write (*,
"(a)", advance=
"no")
" | Tot | Type | | | Res |"
6309 if (
showcpu)
write (*,
"(a)", advance=
"no")
" Clock (s) |"
6323 write (*,
"(a)", advance=
"no")
" max |"
6326 write (*,
"(a)", advance=
"no")
" |"
6334 write (*,
"(a)", advance=
"no")
" max |"
6343 write (*,
"(a)", advance=
"no")
" |"
6346 write (*,
"(a)", advance=
"no")
" |"
6357 write (*,
"(a)", advance=
"no")
"#"
6358 do i = 2, ncharwrite
6359 write (*,
"(a)", advance=
"no")
"-"
6377 integer(kind=intType),
intent(in) :: nn, mm
6381 integer(kind=intType) :: i, j, k
6395 cmplx((real(
dw(i, j, k, nn) /
vol(i, j, k)))**2, &
6396 (aimag(
dw(i, j, k, nn) /
vol(i, j, k)))**2)
6417 integer(kind=intType),
intent(in) :: mm
6421 integer(kind=intType) :: i, j, k, l
6422 real(kind=realtype) :: state_sum, ovv
6431 ovv = one /
vol(i, j, k)
6434 state_sum = state_sum + (
dw(i, j, k, l) * ovv)**2
6438 state_sum = state_sum + &
6439 cmplx((real(
dw(i, j, k, l) * ovv))**2, &
6440 (aimag(
dw(i, j, k, l) * ovv))**2)
6449 state_sum = state_sum + &
6473 character(len=7) :: integerString
6474 character(len=12) :: realString
6482 integerstring = adjustl(integerstring)
6483 realstring = adjustl(realstring)
6488 print
"(a)",
"#**************************************************************************"
6490 print
strings,
"# Unsteady time step ", trim(integerstring),
", physical time ", trim(realstring),
" seconds"
6492 print
"(a)",
"#**************************************************************************"
6506 integer(kind=intType),
intent(in) :: level, n
6507 real(kind=realtype),
dimension(3, n),
intent(out) :: xcen
6510 integer(kind=intType) :: i, j, k, ii, nn, sps
6522 xcen(:, ii) =
eighth * ( &
6523 x(i - 1, j - 1, k - 1, :) + &
6524 x(i, j - 1, k - 1, :) + &
6525 x(i - 1, j, k - 1, :) + &
6526 x(i, j, k - 1, :) + &
6527 x(i - 1, j - 1, k, :) + &
6528 x(i, j - 1, k, :) + &
6529 x(i - 1, j, k, :) + &
6547 integer(kind=intType),
intent(in) :: level, n
6548 real(kind=realtype),
dimension(n),
intent(out) :: cellid
6551 integer(kind=intType) :: i, j, k, ii, nn, sps
6575 integer(kind=inttype),
intent(out) :: nZones
6584 character(len=maxCGNSNameLen),
intent(out) :: zone
6585 integer(kind=intType),
intent(in) :: i
6602 real(kind=realtype),
dimension(3),
intent(in) :: vec1, vec2
6603 real(kind=realtype),
dimension(3, 3),
intent(out) :: rotmat
6605 integer(kind=intType) :: i
6606 real(kind=realtype),
dimension(3) :: vec3
6607 real(kind=realtype),
dimension(3, 3) :: wmat, wmat2
6608 real(kind=realtype) :: theta, dotprod, mag1, mag2, cosine
6614 dotprod = dotprod + vec1(i) * vec2(i)
6622 cosine = dotprod / (mag1 * mag2)
6625 theta = acos(cosine)
6632 vec3(1) = vec1(2) * vec2(3) - vec1(3) * vec2(2)
6633 vec3(2) = vec1(3) * vec2(1) - vec1(1) * vec2(3)
6634 vec3(3) = vec1(1) * vec2(2) - vec1(2) * vec2(1)
6636 vec3 = vec3 / sqrt(sum(vec3**2))
6649 wmat(1, 2) = -vec3(3)
6650 wmat(1, 3) = vec3(2)
6651 wmat(2, 1) = vec3(3)
6652 wmat(2, 3) = -vec3(1)
6653 wmat(3, 1) = -vec3(2)
6654 wmat(3, 2) = vec3(1)
6655 wmat2 = matmul(wmat, wmat)
6663 rotmat = rotmat + sin(theta) * wmat + (1.0 - cos(theta)) * wmat2
6680 real(kind=realtype),
dimension(:),
intent(in) :: v
6683 norm2cplx = cmplx(norm2(real(v)), norm2(aimag(v)))
logical adjointpetscpreprocvarsallocated
logical derivvarsallocated
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
integer(kind=inttype) ndom
type(blocktype), dimension(:, :, :), allocatable, target flowdomsd
type(blocktype), dimension(:, :, :), allocatable, target flowdoms
integer(kind=inttype), dimension(:), allocatable ncellglobal
real(kind=realtype), dimension(:, :, :, :), pointer bmtk2
real(kind=realtype), dimension(:, :, :), pointer sfacek
real(kind=realtype), dimension(:, :, :, :, :), pointer pcmat
type(fringetype), dimension(:), pointer fringes
integer(kind=inttype), dimension(:), pointer djnbeg
real(kind=realtype), dimension(:, :, :, :, :), pointer skale
real(kind=realtype), dimension(:, :, :, :), pointer bmti1d
integer(kind=inttype), dimension(:, :), pointer viscjminpointer
integer(kind=inttype), dimension(:, :), pointer orphans
integer(kind=inttype), dimension(:), pointer dinend
real(kind=realtype), dimension(:, :, :, :), pointer w1
integer(kind=inttype), dimension(:, :), pointer mgjcoarse
real(kind=realtype), dimension(:, :, :, :), pointer i_u_fact
real(kind=realtype), dimension(:, :, :), pointer gamma
real(kind=realtype), dimension(:, :, :), pointer qz
real(kind=realtype), dimension(:, :, :, :), pointer volold
integer(kind=inttype) kendor
real(kind=realtype), dimension(:, :, :, :), pointer fwd
real(kind=realtype), dimension(:, :, :), pointer radid
real(kind=realtype), dimension(:, :, :, :), pointer sfacekale
logical addgridvelocities
real(kind=realtype), dimension(:, :, :, :, :), pointer rotmatrixid
integer(kind=inttype) iendor
integer(kind=inttype) norphans
integer(kind=inttype), dimension(:), pointer knend
real(kind=realtype), dimension(:, :, :), pointer wzd
real(kind=realtype), dimension(:, :, :), pointer aad
real(kind=realtype), dimension(:, :, :), pointer radk
integer(kind=inttype), dimension(:), pointer inend
real(kind=realtype), dimension(:, :, :, :), pointer sfaceiale
integer(kind=portype), dimension(:, :, :), pointer pork
real(kind=realtype), dimension(:, :, :), pointer bvtk2d
integer(kind=inttype), dimension(:, :, :), pointer indfamilyj
integer(kind=inttype), dimension(:, :), pointer viscjmaxpointer
real(kind=realtype), dimension(:, :, :), pointer bvti2
integer(kind=inttype) jendor
integer(kind=inttype), dimension(:), pointer djnend
real(kind=realtype), dimension(:, :, :, :), pointer svelokale
integer(kind=inttype), dimension(:, :), pointer mgkcoarse
real(kind=realtype), dimension(:, :, :, :, :), pointer dwale
real(kind=realtype), dimension(:, :, :, :), pointer sjd
real(kind=realtype), dimension(:, :, :), pointer vxd
real(kind=realtype), dimension(:, :, :), pointer qy
real(kind=realtype), dimension(:, :, :), pointer aa
real(kind=realtype), dimension(:, :, :, :), pointer bmti1
real(kind=realtype), dimension(:, :, :), pointer uz
real(kind=realtype), dimension(:, :, :, :), pointer wd
real(kind=realtype), dimension(:, :, :), pointer uzd
integer(kind=inttype), dimension(:), pointer knbeg
real(kind=realtype), dimension(:, :, :, :), pointer bmtk2d
integer(kind=inttype) nviscbocos
integer(kind=inttype) kbegor
integer(kind=inttype), dimension(:, :, :), pointer factfamilyj
real(kind=realtype), dimension(:, :, :), pointer vold
real(kind=realtype), dimension(:, :, :), pointer bvtk1d
real(kind=realtype), dimension(:, :, :, :), pointer wr
real(kind=realtype), dimension(:, :, :), pointer qxd
real(kind=realtype), dimension(:, :, :, :), pointer i_d_fact
real(kind=realtype), dimension(:, :, :, :), pointer bmtj1
integer(kind=inttype), dimension(:), pointer jnbeg
integer(kind=inttype), dimension(:, :), pointer mgifine
integer(kind=inttype), dimension(:, :, :, :), pointer i_ipiv
real(kind=realtype), dimension(:, :, :, :), pointer bmti2
real(kind=realtype), dimension(:, :, :, :, :), pointer xold
integer(kind=inttype) spectralsol
real(kind=realtype), dimension(:, :, :), pointer p
real(kind=realtype), dimension(:, :, :), pointer radj
real(kind=realtype), dimension(:, :, :), pointer dtld
real(kind=realtype), dimension(:, :, :, :), pointer i_u2_fact
integer(kind=inttype), dimension(:, :, :, :), pointer fringeptr
real(kind=realtype), dimension(:, :, :, :), pointer k_d_fact
real(kind=realtype), dimension(:, :, :, :), pointer w
real(kind=realtype), dimension(:, :, :), pointer uy
integer(kind=inttype), dimension(:, :, :), pointer indfamilyk
real(kind=realtype), dimension(:, :, :, :), pointer scratch
real(kind=realtype), dimension(:, :, :), pointer sfacei
integer(kind=inttype), dimension(:, :, :, :), pointer j_ipiv
real(kind=realtype), dimension(:, :, :, :), pointer j_l_fact
type(viscsubfacetype), dimension(:), pointer viscsubface
integer(kind=inttype), dimension(:), pointer cgnssubface
integer(kind=inttype) nbklocal
integer(kind=portype), dimension(:, :, :), pointer porj
real(kind=realtype), dimension(:, :, :), pointer d2wall
integer(kind=inttype) mglevel
real(kind=realtype), dimension(:, :, :), pointer p1
integer(kind=inttype), dimension(:, :), pointer mgjfine
type(bcdatatype), dimension(:), pointer bcdatad
integer(kind=inttype), dimension(:), pointer neighblock
real(kind=realtype), dimension(:, :, :, :, :), pointer siale
real(kind=realtype), dimension(:, :, :), pointer wyd
real(kind=realtype), dimension(:, :, :), pointer revd
integer(kind=portype), dimension(:, :, :), pointer pori
real(kind=realtype), dimension(:, :, :), pointer bvtj2
integer(kind=inttype), dimension(:, :, :), pointer iblank
real(kind=realtype), dimension(:, :, :, :), pointer j_d_fact
real(kind=realtype), dimension(:, :, :, :, :), pointer sjale
real(kind=realtype), dimension(:, :, :, :, :), pointer fwale
real(kind=realtype), dimension(:, :, :), pointer wx
integer(kind=inttype), dimension(:), pointer kcend
integer(kind=inttype), dimension(:, :, :), pointer globalcell
real(kind=realtype), dimension(:, :, :, :), pointer j_u2_fact
real(kind=realtype), dimension(:, :, :, :), pointer svelojale
integer(kind=inttype), pointer ndonors
real(kind=realtype), dimension(:, :, :, :), pointer sfacejale
integer(kind=inttype), dimension(:), pointer neighproc
real(kind=realtype), dimension(:, :, :), pointer radjd
integer(kind=inttype) nbkglobal
real(kind=realtype), dimension(:, :, :, :), pointer wn
integer(kind=inttype), dimension(:, :), pointer viscimaxpointer
integer(kind=inttype), dimension(:), pointer jcend
real(kind=realtype), dimension(:, :, :), pointer bvtj1
real(kind=realtype), dimension(:, :, :, :), pointer skd
real(kind=realtype), dimension(:, :, :), pointer bvti2d
real(kind=realtype), dimension(:, :, :, :), pointer bmtj2d
real(kind=realtype), dimension(:, :, :), pointer sfacejd
integer(kind=inttype), dimension(:, :), pointer mgicoarse
real(kind=realtype), dimension(:, :, :), pointer rlv
integer(kind=inttype), dimension(:), pointer bcfaceid
integer(kind=inttype), dimension(:), pointer kcbeg
real(kind=realtype), dimension(:, :, :, :), pointer bmti2d
real(kind=realtype), dimension(:, :, :, :, :), pointer rotmatrixjd
real(kind=realtype), dimension(:, :, :, :, :), pointer dwoldrk
real(kind=realtype), dimension(:, :, :, :), pointer sveloiale
real(kind=realtype), dimension(:, :, :, :), pointer si
real(kind=realtype), dimension(:, :, :), pointer bvtj2d
real(kind=realtype), dimension(:, :, :), pointer bvtk2
real(kind=realtype), dimension(:, :, :, :), pointer sid
real(kind=realtype), dimension(:, :, :, :), pointer k_u2_fact
real(kind=realtype), dimension(:, :, :), pointer bvtj1d
real(kind=realtype), dimension(:, :, :), pointer radkd
integer(kind=inttype), dimension(:), pointer dknend
integer(kind=inttype), dimension(:), pointer groupnum
integer(kind=inttype) ibegor
integer(kind=inttype) nbocos
real(kind=realtype), dimension(:, :, :), pointer volref
integer(kind=inttype), dimension(:, :, :), pointer status
real(kind=realtype), dimension(:, :, :), pointer gammad
real(kind=realtype), dimension(:, :, :, :), pointer sj
integer(kind=inttype), dimension(:, :), pointer visckminpointer
integer(kind=inttype), dimension(:, :, :), pointer factfamilyi
real(kind=realtype), dimension(:, :, :), pointer uyd
integer(kind=inttype), dimension(:, :), pointer mgkfine
integer(kind=inttype) sectionid
real(kind=realtype), dimension(:, :, :, :), pointer s
real(kind=realtype), dimension(:, :, :), pointer qx
integer(kind=inttype), dimension(:, :, :), pointer factfamilyk
integer(kind=inttype) jbegor
real(kind=realtype), dimension(:, :, :, :), pointer scratchd
integer(kind=inttype), dimension(:, :, :), pointer globalnode
real(kind=realtype), dimension(:, :, :), pointer uxd
real(kind=realtype), dimension(:, :, :, :), pointer bmtj1d
real(kind=realtype), dimension(:, :, :), pointer vz
real(kind=realtype), dimension(:, :, :, :, :), pointer rotmatrixj
real(kind=realtype), dimension(:, :, :), pointer rev
real(kind=realtype), dimension(:, :, :), pointer qyd
integer(kind=inttype), dimension(:), pointer jnend
real(kind=realtype), dimension(:, :, :, :), pointer xale
real(kind=realtype), dimension(:, :, :, :), pointer bmtj2
integer(kind=inttype), dimension(:), pointer bctype
real(kind=realtype), dimension(:, :, :, :), pointer dw
real(kind=realtype), dimension(:, :, :, :), pointer sk
real(kind=realtype), dimension(:, :, :), pointer ux
real(kind=realtype), dimension(:, :, :), pointer shocksensor
integer(kind=inttype) n1to1
type(viscsubfacetype), dimension(:), pointer viscsubfaced
real(kind=realtype), dimension(:, :, :), pointer wy
integer(kind=inttype), dimension(:), pointer jcbeg
integer(kind=inttype), dimension(:), pointer l1
integer(kind=inttype) imaxdim
real(kind=realtype), dimension(:, :, :), pointer rlvd
real(kind=realtype), dimension(:), pointer mgkweight
real(kind=realtype), dimension(:, :, :), pointer wz
real(kind=realtype), dimension(:, :, :), pointer vol
real(kind=realtype), dimension(:, :, :), pointer filterdes
real(kind=realtype), dimension(:, :, :), pointer wxd
real(kind=realtype), dimension(:), pointer mgiweight
real(kind=realtype), dimension(:, :, :), pointer dtl
real(kind=realtype), dimension(:, :, :, :), pointer xd
real(kind=realtype), dimension(:, :, :, :), pointer k_l_fact
real(kind=realtype), dimension(:, :, :), pointer sfacej
real(kind=realtype), dimension(:, :, :), pointer vy
real(kind=realtype), dimension(:, :, :, :), pointer fw
integer(kind=inttype), dimension(:, :, :, :), pointer gind
real(kind=realtype), dimension(:, :, :), pointer vx
integer(kind=inttype), dimension(:, :, :), pointer forcedrecv
integer(kind=inttype), dimension(:, :, :), pointer wallind
integer(kind=inttype), dimension(:), pointer l3
real(kind=realtype), dimension(:, :, :), pointer radi
real(kind=realtype), dimension(:, :, :), pointer sfacekd
real(kind=realtype), dimension(:, :, :), pointer pn
real(kind=realtype), dimension(:, :, :, :), pointer pcvec1
real(kind=realtype), dimension(:, :, :, :), pointer j_u_fact
integer(kind=inttype), dimension(:), pointer dknbeg
integer(kind=inttype), dimension(:, :, :), pointer indfamilyi
integer(kind=inttype), dimension(:), pointer dinbeg
integer(kind=inttype) nsubface
real(kind=realtype), dimension(:, :, :, :), pointer x
integer(kind=inttype), dimension(:, :), pointer visckmaxpointer
real(kind=realtype), dimension(:, :, :), pointer qzd
integer(kind=inttype) jmaxdim
real(kind=realtype), dimension(:), pointer mgjweight
real(kind=realtype), dimension(:, :, :, :), pointer i_l_fact
real(kind=realtype), dimension(:, :, :), pointer sfaceid
real(kind=realtype), dimension(:, :, :, :), pointer sd
real(kind=realtype), dimension(:, :, :, :), pointer xseed
real(kind=realtype), dimension(:, :, :), pointer d2walld
real(kind=realtype), dimension(:, :, :, :), pointer bmtk1
integer(kind=inttype), dimension(:), pointer inbeg
integer(kind=inttype), dimension(:, :), pointer visciminpointer
real(kind=realtype), dimension(:, :, :, :), pointer k_u_fact
real(kind=realtype), dimension(:, :, :), pointer vzd
real(kind=realtype), dimension(:, :, :), pointer pd
real(kind=realtype), dimension(:, :, :), pointer vyd
integer(kind=inttype), dimension(:), pointer icend
real(kind=realtype), dimension(:, :, :, :), pointer bmtk1d
real(kind=realtype), dimension(:, :, :, :, :), pointer rotmatrixkd
real(kind=realtype), dimension(:, :, :, :, :), pointer rotmatrixi
real(kind=realtype), dimension(:, :, :), pointer bvti1d
real(kind=realtype), dimension(:, :, :, :, :), pointer wold
integer(kind=inttype), dimension(:), pointer icbeg
real(kind=realtype), dimension(:, :, :, :), pointer dwd
real(kind=realtype), dimension(:, :, :), pointer bvti1
integer(kind=inttype), dimension(:, :, :, :), pointer k_ipiv
integer(kind=inttype), dimension(:), pointer l2
real(kind=realtype), dimension(:, :, :), pointer bvtk1
real(kind=realtype), dimension(:, :, :), pointer skew
real(kind=realtype), dimension(:, :, :, :), pointer pcvec2
real(kind=realtype), dimension(:, :, :, :, :), pointer rotmatrixk
type(cgnsblockinfotype), dimension(:), allocatable cgnsdoms
type(cgnsfamilytype), dimension(:), allocatable cgnsfamilies
real(kind=realtype), dimension(:, :), allocatable massflowfamilydiss
real(kind=realtype), dimension(:, :), allocatable massflowfamilyinv
type(cgnsblockinfotype), dimension(:), allocatable cgnsdomsd
integer(kind=inttype) cgnsndom
character(len=maxcgnsnamelen), parameter cgnscl
character(len=maxcgnsnamelen), parameter cgnsl2resrho
character(len=maxcgnsnamelen), parameter cgnsmachmax
character(len=maxcgnsnamelen), parameter cgnsl2resmomy
character(len=maxcgnsnamelen), parameter cgnscmy
character(len=maxcgnsnamelen), parameter cgnsyplusmax
character(len=maxcgnsnamelen), parameter cgnsl2resk
character(len=maxcgnsnamelen), parameter cgnscmx
character(len=maxcgnsnamelen), parameter cgnscfy
character(len=maxcgnsnamelen), parameter cgnssepsensorksarea
character(len=maxcgnsnamelen), parameter cgnsl2resrhoe
character(len=maxcgnsnamelen), parameter cgnsaxismoment
character(len=maxcgnsnamelen), parameter cgnsl2resv2
character(len=maxcgnsnamelen), parameter cgnsl2resmomx
character(len=maxcgnsnamelen), parameter cgnsl2resmomz
character(len=maxcgnsnamelen), parameter cgnsl2resomega
character(len=maxcgnsnamelen), parameter cgnsl2restau
character(len=maxcgnsnamelen), parameter cgnsclv
character(len=maxcgnsnamelen), parameter cgnssepsensor
character(len=maxcgnsnamelen), parameter cgnsclp
character(len=maxcgnsnamelen), parameter cgnscmz
character(len=maxcgnsnamelen), parameter cgnscavitation
character(len=maxcgnsnamelen), parameter cgnseddymax
character(len=maxcgnsnamelen), parameter cgnsl2resf
character(len=maxcgnsnamelen), parameter cgnscd
character(len=maxcgnsnamelen), parameter cgnscfz
character(len=maxcgnsnamelen), parameter cgnscdp
character(len=maxcgnsnamelen), parameter cgnsl2resepsilon
character(len=maxcgnsnamelen), parameter cgnshdiffmax
character(len=maxcgnsnamelen), parameter cgnsl2resnu
character(len=maxcgnsnamelen), parameter cgnscdv
character(len=maxcgnsnamelen), parameter cgnscfx
integer(kind=inttype) recvbuffersizeover
integer(kind=inttype) sendbuffersize
real(kind=realtype), dimension(:), allocatable recvbuffer
real(kind=realtype), dimension(:), allocatable sendbuffer
type(internalcommtype), dimension(:), allocatable internalcell_1st
integer(kind=inttype) sendbuffersizeover
type(internalcommtype), dimension(:), allocatable internalcell_2nd
type(commtype), dimension(:, :), allocatable, target commpatternoverset
type(commtype), dimension(:), allocatable commpatterncell_1st
integer(kind=inttype) recvbuffersize
type(commtype), dimension(:), allocatable commpatterncell_2nd
type(commtype), dimension(:), allocatable commpatternnode_1st
integer(kind=inttype) sendbuffersize_1to1
type(internalcommtype), dimension(:), allocatable internalnode_1st
integer(kind=inttype) recvbuffersize_1to1
integer adflow_comm_world
integer(kind=inttype), parameter firstorder
integer(kind=inttype), parameter cptempcurvefits
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
real(kind=realtype), parameter eighth
integer(kind=inttype), parameter nswalladiabatic
integer(kind=inttype), parameter symm
integer(kind=inttype), parameter timespectral
integer(kind=inttype), parameter unsteady
integer(kind=inttype), parameter rungekutta
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), dimension(:), allocatable winfd
real(kind=realtype) gammainf
integer(kind=inttype) nt1
real(kind=realtype) pinfdim
real(kind=realtype) pinfcorr
integer(kind=inttype) nwf
real(kind=realtype), dimension(:), allocatable winf
real(kind=realtype) rhoinf
real(kind=realtype) timeref
integer(kind=inttype) nt2
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
integer(kind=inttype) itertot
type(kdtree2) function, pointer, public kdtree2_create(input_data, dim, sort, rearrange)
subroutine, public kdtree2destroy(tp)
subroutine, public kdtree2_r_nearest(tp, qv, r2, nfound, nalloc, results)
integer(kind=inttype) timestepunsteady
real(kind=cgnsrealtype), dimension(:), allocatable timearray
real(kind=realtype), dimension(:), allocatable monloc
real(kind=realtype), dimension(:, :, :), allocatable solverdataarray
real(kind=cgnsrealtype), dimension(:, :, :), allocatable convarray
character(len=maxcgnsnamelen), dimension(:), allocatable monnames
real(kind=realtype) timeunsteady
real(kind=realtype) timeunsteadyrestart
integer(kind=inttype) ntimestepsrestart
integer, parameter fieldwidthlarge
real(kind=realtype), dimension(:), allocatable monglob
real(kind=realtype), dimension(:), allocatable monref
real(kind=cgnsrealtype), dimension(:, :), allocatable timedataarray
character(len=8), dimension(:, :), allocatable solvertypearray
integer, parameter fieldwidth
integer, parameter realtype
integer(kind=inttype) nsections
type(sectiontype), dimension(:), allocatable sections
subroutine destroyfamilyexchange(exch)
type(familyexchange), dimension(:, :), allocatable, target bcfamexchange
subroutine silen(len, mult, trans)
subroutine getcellcenters(level, n, xCen)
real(kind=realtype) function tsmach(degreePolMach, coefPolMach, degreeFourMach, omegaFourMach, cosCoefFourMach, sinCoefFourMach, t)
subroutine setcoeftimeintegrator
logical function iswalltype(bType)
subroutine getsolvertypearray(niter, nsps, type_array)
subroutine reallocateinteger2(intArray, newSize1, newSize2, oldSize1, oldSize2, alwaysFreeMem)
real(kind=realtype) function tsalpha(degreePolAlpha, coefPolAlpha, degreeFourAlpha, omegaFourAlpha, cosCoefFourAlpha, sinCoefFourAlpha, t)
subroutine cross_prod(a, b, c)
subroutine deallocateinternalcommtype(comm)
subroutine setbcpointers(nn, spatialPointers)
subroutine reallocatereal2(realArray, newSize1, newSize2, oldSize1, oldSize2, alwaysFreeMem)
subroutine reallocatempioffsetkindinteger(intArray, newSize, oldSize, alwaysFreeMem)
subroutine alloctimearrays(nTimeTot)
real(kind=realtype) function derivativerigidrotangle(degreePolRot, coefPolRot, degreeFourRot, omegaFourRot, cosCoefFourRot, sinCoefFourRot, t)
subroutine setbuffersizes(level, sps, determine1to1Buf, determineOversetBuf)
subroutine deallocatetempmemory(resNeeded)
subroutine sidensity(mass, len, mult, trans)
subroutine setpointers_d(nn, level, sps)
real(kind=realtype) function tsbeta(degreePolBeta, coefPolBeta, degreeFourBeta, omegaFourBeta, cosCoefFourBeta, sinCoefFourBeta, t)
subroutine computeleastsquaresregression(y, x, npts, m, b)
subroutine getliftdirfromsymmetry(liftDir)
subroutine returnfail(routineName, errorMessage)
character(len=n) function char2str(charArray, n)
subroutine reallocatereal(realArray, newSize, oldSize, alwaysFreeMem)
subroutine sumresiduals(nn, mm)
subroutine maxhdiffmach(hdiffMax, MachMax)
subroutine sumallresiduals(mm)
subroutine stabilityderivativedriver
real(kind=realtype) function norm2cplx(v)
subroutine rotmatrixrigidbody(tNew, tOld, rotationMatrix, rotationPoint)
real(kind=realtype) function mynorm2(x)
real(kind=realtype) function tsbetadot(degreePolBeta, coefPolBeta, degreeFourBeta, omegaFourBeta, cosCoefFourBeta, sinCoefFourBeta, t)
subroutine getmonitorvariablenames(nvar, monitor_variables)
subroutine releasememorypart1
subroutine getdirangle(freeStreamAxis, liftAxis, liftIndex, alpha, beta)
subroutine writeintromessage
subroutine sivelocity(length, time, mult, trans)
subroutine computetsderivatives(force, moment, coef0, dcdalpha, dcdalphadot, dcdq, dcdqdot)
logical function eulerwallspresent()
subroutine releasememorypart2
subroutine sitemperature(temp, mult, trans)
real(kind=realtype) function rigidrotangle(degreePolRot, coefPolRot, degreeFourRot, omegaFourRot, cosCoefFourRot, sinCoefFourRot, t)
subroutine sipressure(mass, len, time, mult, trans)
subroutine setbcpointers_d(nn, spatialpointers)
subroutine allocatetempmemory(resNeeded)
subroutine deallocderivativevalues(level)
real(kind=realtype) function tsmachdot(degreePolMach, coefPolMach, degreeFourMach, omegaFourMach, cosCoefFourMach, sinCoefFourMach, t)
subroutine reallocateinteger(intArray, newSize, oldSize, alwaysFreeMem)
subroutine getcgnszonename(i, zone)
subroutine deallocateblock(nn, level, sps)
subroutine getncgnszones(nZones)
subroutine nullifyflowdompointers(nn, level, sps)
subroutine pointreduce(pts, N, tol, uniquePts, link, nUnique)
subroutine unsteadyheader
subroutine echk(errorcode, file, line)
subroutine setpointers_b(nn, level, sps)
real(kind=realtype) function secondderivativerigidrotangle(degreePolRot, coefPolRot, degreeFourRot, omegaFourRot, cosCoefFourRot, sinCoefFourRot, t)
integer(kind=inttype) function delta(val1, val2)
subroutine spectralinterpolcoef(nsps, t, alpScal, alpMat)
subroutine siangle(angle, mult, trans)
subroutine nullifycgnsdompointers(nn)
logical function getcorrectfork()
real(kind=realtype) function tsalphadot(degreePolAlpha, coefPolAlpha, degreeFourAlpha, omegaFourAlpha, cosCoefFourAlpha, sinCoefFourAlpha, t)
subroutine siturb(mass, len, time, temp, turbName, mult, trans)
real(kind=realtype) function mydim(x, y)
subroutine deallocatecommtype(comm)
integer function setcgnsrealtype()
subroutine setpointers(nn, mm, ll)
subroutine allocconvarrays(nIterTot)
subroutine maxeddyv(eddyvisMax)
subroutine computerootbendingmoment(cf, cm, bendingMoment)
subroutine convergenceheader
subroutine getrotmatrix(vec1, vec2, rotMat)
subroutine converttolowercase(string)
subroutine getcellcgnsblockids(level, n, cellID)
subroutine terminate(routineName, errorMessage)