1 #ifndef ERF_MOSTStress_H
2 #define ERF_MOSTStress_H
50 const amrex::Array4<const amrex::Real>& zref_arr,
51 const amrex::Array4<const amrex::Real>& z0_arr,
52 const amrex::Array4<const amrex::Real>& umm_arr,
53 const amrex::Array4<const amrex::Real>& ,
54 const amrex::Array4<const amrex::Real>& ,
55 const amrex::Array4<const amrex::Real>& ,
56 const amrex::Array4<amrex::Real>& u_star_arr,
57 const amrex::Array4<amrex::Real>& ,
58 const amrex::Array4<amrex::Real>& t_star_arr,
59 const amrex::Array4<amrex::Real>& q_star_arr,
60 const amrex::Array4<amrex::Real>& ,
61 const amrex::Array4<amrex::Real>& ,
62 const amrex::Array4<amrex::Real>& olen_arr,
63 const amrex::Array4<amrex::Real>& ,
64 const amrex::Array4<amrex::Real>& ,
65 const amrex::Array4<amrex::Real>& ,
66 const amrex::Array4<amrex::Real>& )
const
71 t_star_arr(i,j,k) =
zero;
72 q_star_arr(i,j,k) =
zero;
121 const int& max_iters,
122 const amrex::Array4<const amrex::Real>& zref_arr,
123 const amrex::Array4<amrex::Real>& z0_arr,
124 const amrex::Array4<const amrex::Real>& umm_arr,
125 const amrex::Array4<const amrex::Real>& tm_arr,
126 const amrex::Array4<const amrex::Real>& ,
127 const amrex::Array4<const amrex::Real>& ,
128 const amrex::Array4<amrex::Real>& u_star_arr,
129 const amrex::Array4<amrex::Real>& ,
130 const amrex::Array4<amrex::Real>& t_star_arr,
131 const amrex::Array4<amrex::Real>& q_star_arr,
132 const amrex::Array4<amrex::Real>& ,
133 const amrex::Array4<amrex::Real>& ,
134 const amrex::Array4<amrex::Real>& olen_arr,
135 const amrex::Array4<amrex::Real>& ,
136 const amrex::Array4<amrex::Real>& ,
137 const amrex::Array4<amrex::Real>& ,
138 const amrex::Array4<amrex::Real>& )
const
155 C = std::log(zref / z0_old);
168 }
while ( (std::abs(
z0 - z0_old) >
tol_z) && (iter_z <= max_iters) );
170 "Maximum number of MOST roughness iterations reached.");
171 C = std::log(zref /
z0);
177 t_star_arr(i,j,k) =
zero;
178 q_star_arr(i,j,k) =
zero;
184 #ifdef AMREX_USE_FLOAT
232 const int& max_iters,
233 const amrex::Array4<const amrex::Real>& zref_arr,
234 const amrex::Array4<amrex::Real>& z0_arr,
235 const amrex::Array4<const amrex::Real>& umm_arr,
236 const amrex::Array4<const amrex::Real>& ,
237 const amrex::Array4<const amrex::Real>& ,
238 const amrex::Array4<const amrex::Real>& ,
239 const amrex::Array4<amrex::Real>& u_star_arr,
240 const amrex::Array4<amrex::Real>& ,
241 const amrex::Array4<amrex::Real>& t_star_arr,
242 const amrex::Array4<amrex::Real>& q_star_arr,
243 const amrex::Array4<amrex::Real>& ,
244 const amrex::Array4<amrex::Real>& ,
245 const amrex::Array4<amrex::Real>& olen_arr,
246 const amrex::Array4<amrex::Real>& ,
247 const amrex::Array4<amrex::Real>& ,
248 const amrex::Array4<amrex::Real>& ,
249 const amrex::Array4<amrex::Real>& )
const
266 C = std::log(zref / z0_old);
270 }
while ( (std::abs(
z0 - z0_old) >
tol_z) && (iter_z <= max_iters) );
272 "Maximum number of MOST roughness iterations reached.");
273 C = std::log(zref /
z0);
279 t_star_arr(i,j,k) =
zero;
280 q_star_arr(i,j,k) =
zero;
286 #ifdef AMREX_USE_FLOAT
330 const int& max_iters,
331 const amrex::Array4<const amrex::Real>& zref_arr,
332 const amrex::Array4<amrex::Real>& z0_arr,
333 const amrex::Array4<const amrex::Real>& umm_arr,
334 const amrex::Array4<const amrex::Real>& tm_arr,
335 const amrex::Array4<const amrex::Real>& ,
336 const amrex::Array4<const amrex::Real>& ,
337 const amrex::Array4<amrex::Real>& u_star_arr,
338 const amrex::Array4<amrex::Real>& ,
339 const amrex::Array4<amrex::Real>& t_star_arr,
340 const amrex::Array4<amrex::Real>& q_star_arr,
341 const amrex::Array4<amrex::Real>& ,
342 const amrex::Array4<amrex::Real>& ,
343 const amrex::Array4<amrex::Real>& olen_arr,
344 const amrex::Array4<amrex::Real>& ,
345 const amrex::Array4<amrex::Real>& ,
346 const amrex::Array4<amrex::Real>& ,
347 const amrex::Array4<amrex::Real>& )
const
364 C = std::log(zref / z0_old);
369 }
while ( (std::abs(
z0 - z0_old) >
tol_z) && (iter_z <= max_iters) );
371 "Maximum number of MOST roughness iterations reached.");
372 C = std::log(zref /
z0);
378 t_star_arr(i,j,k) =
zero;
379 q_star_arr(i,j,k) =
zero;
385 #ifdef AMREX_USE_FLOAT
429 const int& max_iters,
430 const amrex::Array4<const amrex::Real>& zref_arr,
431 const amrex::Array4<amrex::Real>& z0_arr,
432 const amrex::Array4<const amrex::Real>& umm_arr,
433 const amrex::Array4<const amrex::Real>& tm_arr,
434 const amrex::Array4<const amrex::Real>& ,
435 const amrex::Array4<const amrex::Real>& ,
436 const amrex::Array4<amrex::Real>& u_star_arr,
437 const amrex::Array4<amrex::Real>& ,
438 const amrex::Array4<amrex::Real>& t_star_arr,
439 const amrex::Array4<amrex::Real>& q_star_arr,
440 const amrex::Array4<amrex::Real>& ,
441 const amrex::Array4<amrex::Real>& ,
442 const amrex::Array4<amrex::Real>& olen_arr,
443 const amrex::Array4<amrex::Real>& ,
444 const amrex::Array4<amrex::Real>& Hwave_arr,
445 const amrex::Array4<amrex::Real>& Lwave_arr,
446 const amrex::Array4<amrex::Real>& )
const
463 C = std::log(zref / z0_old);
469 }
while ( (std::abs(
z0 - z0_old) >
tol_z) && (iter_z <= max_iters) );
471 "Maximum number of MOST roughness iterations reached.");
472 C = std::log(zref /
z0);
478 t_star_arr(i,j,k) =
zero;
479 q_star_arr(i,j,k) =
zero;
485 #ifdef AMREX_USE_FLOAT
490 #ifdef AMREX_USE_FLOAT
535 const int& max_iters,
536 const amrex::Array4<const amrex::Real>& zref_arr,
537 const amrex::Array4<const amrex::Real>& z0_arr,
538 const amrex::Array4<const amrex::Real>& umm_arr,
539 const amrex::Array4<const amrex::Real>& tm_arr,
540 const amrex::Array4<const amrex::Real>& tvm_arr,
541 const amrex::Array4<const amrex::Real>& qvm_arr,
542 const amrex::Array4<amrex::Real>& u_star_arr,
543 const amrex::Array4<amrex::Real>& w_star_arr,
544 const amrex::Array4<amrex::Real>& t_star_arr,
545 const amrex::Array4<amrex::Real>& q_star_arr,
546 const amrex::Array4<amrex::Real>& t_surf_arr,
547 const amrex::Array4<amrex::Real>& q_surf_arr,
548 const amrex::Array4<amrex::Real>& olen_arr,
549 const amrex::Array4<amrex::Real>& pblh_arr,
550 const amrex::Array4<amrex::Real>& ,
551 const amrex::Array4<amrex::Real>& ,
552 const amrex::Array4<amrex::Real>& )
const
566 bool at_fold =
false;
571 Olen = olen_arr(i,j,k);
578 ustar = u_star_arr(i,j,k);
585 w_star_arr(i,j,k) =
calc_wstar(tflux, pblh_arr(i,j,k), tvm_arr(i,j,k));
587 amrex::Real umm_new = std::sqrt(umm_arr(i,j,k)*umm_arr(i,j,k) + wstar*wstar);
589 umm = std::max(umm,
WSMIN);
592 Olen = -ustar_floor * ustar_floor * ustar_floor * tvm_arr(i,j,k) /
603 u_star_arr(i,j,k) = accel.
update(u_star_arr(i,j,k), iter);
607 "Maximum number of MOST iterations reached.");
610 most_flux_outputs(
mdata,
spec_qflux, at_fold, zeta_fold, C, psi_h, u_star_arr(i,j,k), zref,
611 tm_arr(i,j,k), tvm_arr(i,j,k), qvm_arr(i,j,k), qflux, Olen,
612 t_surf_arr(i,j,k), t_star_arr(i,j,k), q_surf_arr(i,j,k), q_star_arr(i,j,k));
613 olen_arr(i,j,k) = Olen;
669 const int& max_iters,
670 const amrex::Array4<const amrex::Real>& zref_arr,
671 const amrex::Array4<amrex::Real>& z0_arr,
672 const amrex::Array4<const amrex::Real>& umm_arr,
673 const amrex::Array4<const amrex::Real>& tm_arr,
674 const amrex::Array4<const amrex::Real>& tvm_arr,
675 const amrex::Array4<const amrex::Real>& qvm_arr,
676 const amrex::Array4<amrex::Real>& u_star_arr,
677 const amrex::Array4<amrex::Real>& w_star_arr,
678 const amrex::Array4<amrex::Real>& t_star_arr,
679 const amrex::Array4<amrex::Real>& q_star_arr,
680 const amrex::Array4<amrex::Real>& t_surf_arr,
681 const amrex::Array4<amrex::Real>& q_surf_arr,
682 const amrex::Array4<amrex::Real>& olen_arr,
683 const amrex::Array4<amrex::Real>& pblh_arr,
684 const amrex::Array4<amrex::Real>& ,
685 const amrex::Array4<amrex::Real>& ,
686 const amrex::Array4<amrex::Real>& )
const
701 bool at_fold =
false;
706 Olen = olen_arr(i,j,k);
713 ustar = u_star_arr(i,j,k);
723 C = std::log(zref /
z0);
731 w_star_arr(i,j,k) =
calc_wstar(tflux, pblh_arr(i,j,k), tvm_arr(i,j,k));
733 umm = std::sqrt(umm_arr(i,j,k)*umm_arr(i,j,k) + wstar*wstar);
734 umm = std::max(umm,
WSMIN);
746 u_star_arr(i,j,k) = accel.
update(u_star_arr(i,j,k), iter);
750 "Maximum number of MOST iterations reached.");
754 most_flux_outputs(
mdata,
spec_qflux, at_fold, zeta_fold, C, psi_h, u_star_arr(i,j,k), zref,
755 tm_arr(i,j,k), tvm_arr(i,j,k), qvm_arr(i,j,k), qflux, Olen,
756 t_surf_arr(i,j,k), t_star_arr(i,j,k), q_surf_arr(i,j,k), q_star_arr(i,j,k));
757 olen_arr(i,j,k) = Olen;
812 const int& max_iters,
813 const amrex::Array4<const amrex::Real>& zref_arr,
814 const amrex::Array4<amrex::Real>& z0_arr,
815 const amrex::Array4<const amrex::Real>& umm_arr,
816 const amrex::Array4<const amrex::Real>& tm_arr,
817 const amrex::Array4<const amrex::Real>& tvm_arr,
818 const amrex::Array4<const amrex::Real>& qvm_arr,
819 const amrex::Array4<amrex::Real>& u_star_arr,
820 const amrex::Array4<amrex::Real>& w_star_arr,
821 const amrex::Array4<amrex::Real>& t_star_arr,
822 const amrex::Array4<amrex::Real>& q_star_arr,
823 const amrex::Array4<amrex::Real>& t_surf_arr,
824 const amrex::Array4<amrex::Real>& q_surf_arr,
825 const amrex::Array4<amrex::Real>& olen_arr,
826 const amrex::Array4<amrex::Real>& pblh_arr,
827 const amrex::Array4<amrex::Real>& ,
828 const amrex::Array4<amrex::Real>& ,
829 const amrex::Array4<amrex::Real>& )
const
844 bool at_fold =
false;
849 Olen = olen_arr(i,j,k);
856 ustar = u_star_arr(i,j,k);
858 C = std::log(zref /
z0);
866 w_star_arr(i,j,k) =
calc_wstar(tflux, pblh_arr(i,j,k), tvm_arr(i,j,k));
868 umm = std::sqrt(umm_arr(i,j,k)*umm_arr(i,j,k) + wstar*wstar);
869 umm = std::max(umm,
WSMIN);
881 u_star_arr(i,j,k) = accel.
update(u_star_arr(i,j,k), iter);
885 "Maximum number of MOST iterations reached.");
889 most_flux_outputs(
mdata,
spec_qflux, at_fold, zeta_fold, C, psi_h, u_star_arr(i,j,k), zref,
890 tm_arr(i,j,k), tvm_arr(i,j,k), qvm_arr(i,j,k), qflux, Olen,
891 t_surf_arr(i,j,k), t_star_arr(i,j,k), q_surf_arr(i,j,k), q_star_arr(i,j,k));
892 olen_arr(i,j,k) = Olen;
943 const int& max_iters,
944 const amrex::Array4<const amrex::Real>& zref_arr,
945 const amrex::Array4<amrex::Real>& z0_arr,
946 const amrex::Array4<const amrex::Real>& umm_arr,
947 const amrex::Array4<const amrex::Real>& tm_arr,
948 const amrex::Array4<const amrex::Real>& tvm_arr,
949 const amrex::Array4<const amrex::Real>& qvm_arr,
950 const amrex::Array4<amrex::Real>& u_star_arr,
951 const amrex::Array4<amrex::Real>& w_star_arr,
952 const amrex::Array4<amrex::Real>& t_star_arr,
953 const amrex::Array4<amrex::Real>& q_star_arr,
954 const amrex::Array4<amrex::Real>& t_surf_arr,
955 const amrex::Array4<amrex::Real>& q_surf_arr,
956 const amrex::Array4<amrex::Real>& olen_arr,
957 const amrex::Array4<amrex::Real>& pblh_arr,
958 const amrex::Array4<amrex::Real>& ,
959 const amrex::Array4<amrex::Real>& ,
960 const amrex::Array4<amrex::Real>& )
const
975 bool at_fold =
false;
980 Olen = olen_arr(i,j,k);
987 ustar = u_star_arr(i,j,k);
990 C = std::log(zref /
z0);
998 w_star_arr(i,j,k) =
calc_wstar(tflux, pblh_arr(i,j,k), tvm_arr(i,j,k));
1000 umm = std::sqrt(umm_arr(i,j,k)*umm_arr(i,j,k) + wstar*wstar);
1001 umm = std::max(umm,
WSMIN);
1013 u_star_arr(i,j,k) = accel.
update(u_star_arr(i,j,k), iter);
1017 "Maximum number of MOST iterations reached.");
1021 most_flux_outputs(
mdata,
spec_qflux, at_fold, zeta_fold, C, psi_h, u_star_arr(i,j,k), zref,
1022 tm_arr(i,j,k), tvm_arr(i,j,k), qvm_arr(i,j,k), qflux, Olen,
1023 t_surf_arr(i,j,k), t_star_arr(i,j,k), q_surf_arr(i,j,k), q_star_arr(i,j,k));
1024 olen_arr(i,j,k) = Olen;
1075 const int& max_iters,
1076 const amrex::Array4<const amrex::Real>& zref_arr,
1077 const amrex::Array4<amrex::Real>& z0_arr,
1078 const amrex::Array4<const amrex::Real>& umm_arr,
1079 const amrex::Array4<const amrex::Real>& tm_arr,
1080 const amrex::Array4<const amrex::Real>& tvm_arr,
1081 const amrex::Array4<const amrex::Real>& qvm_arr,
1082 const amrex::Array4<amrex::Real>& u_star_arr,
1083 const amrex::Array4<amrex::Real>& w_star_arr,
1084 const amrex::Array4<amrex::Real>& t_star_arr,
1085 const amrex::Array4<amrex::Real>& q_star_arr,
1086 const amrex::Array4<amrex::Real>& t_surf_arr,
1087 const amrex::Array4<amrex::Real>& q_surf_arr,
1088 const amrex::Array4<amrex::Real>& olen_arr,
1089 const amrex::Array4<amrex::Real>& pblh_arr,
1090 const amrex::Array4<amrex::Real>& Hwave_arr,
1091 const amrex::Array4<amrex::Real>& Lwave_arr,
1092 const amrex::Array4<amrex::Real>& )
const
1107 bool at_fold =
false;
1112 Olen = olen_arr(i,j,k);
1119 ustar = u_star_arr(i,j,k);
1123 C = std::log(zref /
z0);
1131 w_star_arr(i,j,k) =
calc_wstar(tflux, pblh_arr(i,j,k), tvm_arr(i,j,k));
1133 umm = std::sqrt(umm_arr(i,j,k)*umm_arr(i,j,k) + wstar*wstar);
1134 umm = std::max(umm,
WSMIN);
1146 u_star_arr(i,j,k) = accel.
update(u_star_arr(i,j,k), iter);
1150 "Maximum number of MOST iterations reached.");
1154 most_flux_outputs(
mdata,
spec_qflux, at_fold, zeta_fold, C, psi_h, u_star_arr(i,j,k), zref,
1155 tm_arr(i,j,k), tvm_arr(i,j,k), qvm_arr(i,j,k), qflux, Olen,
1156 t_surf_arr(i,j,k), t_star_arr(i,j,k), q_surf_arr(i,j,k), q_star_arr(i,j,k));
1157 olen_arr(i,j,k) = Olen;
1166 #ifdef AMREX_USE_FLOAT
1217 const int& max_iters,
1218 const amrex::Array4<const amrex::Real>& zref_arr,
1219 const amrex::Array4<const amrex::Real>& z0_arr,
1220 const amrex::Array4<const amrex::Real>& umm_arr,
1221 const amrex::Array4<const amrex::Real>& tm_arr,
1222 const amrex::Array4<const amrex::Real>& tvm_arr,
1223 const amrex::Array4<const amrex::Real>& qvm_arr,
1224 const amrex::Array4<amrex::Real>& u_star_arr,
1225 const amrex::Array4<amrex::Real>& w_star_arr,
1226 const amrex::Array4<amrex::Real>& t_star_arr,
1227 const amrex::Array4<amrex::Real>& q_star_arr,
1228 const amrex::Array4<amrex::Real>& t_surf_arr,
1229 const amrex::Array4<amrex::Real>& q_surf_arr,
1230 const amrex::Array4<amrex::Real>& olen_arr,
1231 const amrex::Array4<amrex::Real>& pblh_arr,
1232 const amrex::Array4<amrex::Real>& ,
1233 const amrex::Array4<amrex::Real>& ,
1234 const amrex::Array4<amrex::Real>& )
const
1251 zeta = zref / olen_arr(i,j,k);
1260 if (qv_s_raw >
zero) {
1275 thv_s = tm_arr(i,j,k) * (
one +
epsv*qv_a);
1277 t_surf = tm_arr(i,j,k);
1292 w_star_arr(i,j,k) =
calc_wstar(tflux, pblh_arr(i,j,k), tvm_arr(i,j,k));
1294 umm = std::sqrt(umm_arr(i,j,k)*umm_arr(i,j,k) + wstar*wstar);
1295 umm = std::max(umm,
WSMIN);
1300 ( (thv_a - thv_s) / (umm * umm) );
1319 zeta = (
one -
alpha) * zeta_old +
alpha * Rib * CmPsim * CmPsim / CmPsih;
1322 }
while ( (std::abs(zeta - zeta_old) >
tol) && (iter <= max_iters) );
1323 if (iter > max_iters ||
1333 olen_arr(i,j,k) = zref / zeta;
1334 u_star_arr(i,j,k) =
mdata.
kappa * umm / CmPsim;
1335 t_star_arr(i,j,k) =
mdata.
kappa * (t_mean - t_surf) / CmPsih;
1338 (u_star_arr(i,j,k) *
mdata.
kappa) + qv_a_raw;
1345 ? (qv_s_raw - qv_a_raw)
1346 : (qv_a_raw - qv_s_raw);
1347 q_star_arr(i,j,k) =
mdata.
kappa * qv_delta / CmPsih;
1406 const int& max_iters,
1407 const amrex::Array4<const amrex::Real>& zref_arr,
1408 const amrex::Array4<amrex::Real>& z0_arr,
1409 const amrex::Array4<const amrex::Real>& umm_arr,
1410 const amrex::Array4<const amrex::Real>& tm_arr,
1411 const amrex::Array4<const amrex::Real>& tvm_arr,
1412 const amrex::Array4<const amrex::Real>& qvm_arr,
1413 const amrex::Array4<amrex::Real>& u_star_arr,
1414 const amrex::Array4<amrex::Real>& w_star_arr,
1415 const amrex::Array4<amrex::Real>& t_star_arr,
1416 const amrex::Array4<amrex::Real>& q_star_arr,
1417 const amrex::Array4<amrex::Real>& t_surf_arr,
1418 const amrex::Array4<amrex::Real>& q_surf_arr,
1419 const amrex::Array4<amrex::Real>& olen_arr,
1420 const amrex::Array4<amrex::Real>& pblh_arr,
1421 const amrex::Array4<amrex::Real>& ,
1422 const amrex::Array4<amrex::Real>& ,
1423 const amrex::Array4<amrex::Real>& )
const
1443 zeta = zref / olen_arr(i,j,k);
1447 if (q_surf_arr(i,j,k) >
zero) {
1448 qv_s = q_surf_arr(i,j,k);
1452 qv_s = qvm_arr(i,j,k);
1454 qv_a = qvm_arr(i,j,k);
1466 w_star_arr(i,j,k) =
calc_wstar(tflux, pblh_arr(i,j,k), tvm_arr(i,j,k));
1468 umm = std::sqrt(umm_arr(i,j,k)*umm_arr(i,j,k) + wstar*wstar);
1469 umm = std::max(umm,
WSMIN);
1476 ( (thv_a - thv_s) / (umm * umm) );
1496 C = std::log(zref / z0_old);
1510 }
while ( (std::abs(
z0 - z0_old) >
tol_z) && (iter_z <= max_iters) );
1512 "Maximum number of MOST roughness iterations reached.");
1513 C = std::log(zref /
z0);
1523 }
while ( (std::abs(zeta - zeta_old) >
tol) && (iter <= max_iters) );
1525 "Maximum number of MOST iterations reached.");
1529 olen_arr(i,j,k) = zref / zeta;
1530 u_star_arr(i,j,k) =
mdata.
kappa * umm / CmPsim;
1531 t_star_arr(i,j,k) =
mdata.
kappa * (tm_arr(i,j,k) - t_surf_arr(i,j,k)) / CmPsih;
1534 (u_star_arr(i,j,k) *
mdata.
kappa) + qvm_arr(i,j,k);
1537 q_star_arr(i,j,k) =
mdata.
kappa * (qvm_arr(i,j,k) - q_surf_arr(i,j,k)) / CmPsih;
1546 #ifdef AMREX_USE_FLOAT
1598 const int& max_iters,
1599 const amrex::Array4<const amrex::Real>& zref_arr,
1600 const amrex::Array4<amrex::Real>& z0_arr,
1601 const amrex::Array4<const amrex::Real>& umm_arr,
1602 const amrex::Array4<const amrex::Real>& tm_arr,
1603 const amrex::Array4<const amrex::Real>& tvm_arr,
1604 const amrex::Array4<const amrex::Real>& qvm_arr,
1605 const amrex::Array4<amrex::Real>& u_star_arr,
1606 const amrex::Array4<amrex::Real>& w_star_arr,
1607 const amrex::Array4<amrex::Real>& t_star_arr,
1608 const amrex::Array4<amrex::Real>& q_star_arr,
1609 const amrex::Array4<amrex::Real>& t_surf_arr,
1610 const amrex::Array4<amrex::Real>& q_surf_arr,
1611 const amrex::Array4<amrex::Real>& olen_arr,
1612 const amrex::Array4<amrex::Real>& pblh_arr,
1613 const amrex::Array4<amrex::Real>& ,
1614 const amrex::Array4<amrex::Real>& ,
1615 const amrex::Array4<amrex::Real>& )
const
1635 zeta = zref / olen_arr(i,j,k);
1639 if (q_surf_arr(i,j,k) >
zero) {
1640 qv_s = q_surf_arr(i,j,k);
1644 qv_s = qvm_arr(i,j,k);
1646 qv_a = qvm_arr(i,j,k);
1658 w_star_arr(i,j,k) =
calc_wstar(tflux, pblh_arr(i,j,k), tvm_arr(i,j,k));
1660 umm = std::sqrt(umm_arr(i,j,k)*umm_arr(i,j,k) + wstar*wstar);
1661 umm = std::max(umm,
WSMIN);
1668 ( (thv_a - thv_s) / (umm * umm) );
1688 C = std::log(zref / z0_old);
1694 }
while ( (std::abs(
z0 - z0_old) >
tol_z) && (iter_z <= max_iters) );
1696 "Maximum number of MOST roughness iterations reached.");
1697 C = std::log(zref /
z0);
1707 }
while ( (std::abs(zeta - zeta_old) >
tol) && (iter <= max_iters) );
1709 "Maximum number of MOST iterations reached.");
1713 olen_arr(i,j,k) = zref / zeta;
1714 u_star_arr(i,j,k) =
mdata.
kappa * umm / CmPsim;
1715 t_star_arr(i,j,k) =
mdata.
kappa * (tm_arr(i,j,k) - t_surf_arr(i,j,k)) / CmPsih;
1718 (u_star_arr(i,j,k) *
mdata.
kappa) + qvm_arr(i,j,k);
1721 q_star_arr(i,j,k) =
mdata.
kappa * (qvm_arr(i,j,k) - q_surf_arr(i,j,k)) / CmPsih;
1730 #ifdef AMREX_USE_FLOAT
1778 const int& max_iters,
1779 const amrex::Array4<const amrex::Real>& zref_arr,
1780 const amrex::Array4<amrex::Real>& z0_arr,
1781 const amrex::Array4<const amrex::Real>& umm_arr,
1782 const amrex::Array4<const amrex::Real>& tm_arr,
1783 const amrex::Array4<const amrex::Real>& tvm_arr,
1784 const amrex::Array4<const amrex::Real>& qvm_arr,
1785 const amrex::Array4<amrex::Real>& u_star_arr,
1786 const amrex::Array4<amrex::Real>& w_star_arr,
1787 const amrex::Array4<amrex::Real>& t_star_arr,
1788 const amrex::Array4<amrex::Real>& q_star_arr,
1789 const amrex::Array4<amrex::Real>& t_surf_arr,
1790 const amrex::Array4<amrex::Real>& q_surf_arr,
1791 const amrex::Array4<amrex::Real>& olen_arr,
1792 const amrex::Array4<amrex::Real>& pblh_arr,
1793 const amrex::Array4<amrex::Real>& ,
1794 const amrex::Array4<amrex::Real>& ,
1795 const amrex::Array4<amrex::Real>& )
const
1815 zeta = zref / olen_arr(i,j,k);
1819 if (q_surf_arr(i,j,k) >
zero) {
1820 qv_s = q_surf_arr(i,j,k);
1824 qv_s = qvm_arr(i,j,k);
1826 qv_a = qvm_arr(i,j,k);
1838 w_star_arr(i,j,k) =
calc_wstar(tflux, pblh_arr(i,j,k), tvm_arr(i,j,k));
1840 umm = std::sqrt(umm_arr(i,j,k)*umm_arr(i,j,k) + wstar*wstar);
1841 umm = std::max(umm,
WSMIN);
1848 ( (thv_a - thv_s) / (umm * umm) );
1868 C = std::log(zref / z0_old);
1875 }
while ( (std::abs(
z0 - z0_old) >
tol_z) && (iter_z <= max_iters) );
1877 "Maximum number of MOST roughness iterations reached.");
1878 C = std::log(zref /
z0);
1888 }
while ( (std::abs(zeta - zeta_old) >
tol) && (iter <= max_iters) );
1890 "Maximum number of MOST iterations reached.");
1894 olen_arr(i,j,k) = zref / zeta;
1895 u_star_arr(i,j,k) =
mdata.
kappa * umm / CmPsim;
1896 t_star_arr(i,j,k) =
mdata.
kappa * (tm_arr(i,j,k) - t_surf_arr(i,j,k)) / CmPsih;
1899 (u_star_arr(i,j,k) *
mdata.
kappa) + qvm_arr(i,j,k);
1902 q_star_arr(i,j,k) =
mdata.
kappa * (qvm_arr(i,j,k) - q_surf_arr(i,j,k)) / CmPsih;
1911 #ifdef AMREX_USE_FLOAT
1959 const int& max_iters,
1960 const amrex::Array4<const amrex::Real>& zref_arr,
1961 const amrex::Array4<amrex::Real>& z0_arr,
1962 const amrex::Array4<const amrex::Real>& umm_arr,
1963 const amrex::Array4<const amrex::Real>& tm_arr,
1964 const amrex::Array4<const amrex::Real>& tvm_arr,
1965 const amrex::Array4<const amrex::Real>& qvm_arr,
1966 const amrex::Array4<amrex::Real>& u_star_arr,
1967 const amrex::Array4<amrex::Real>& w_star_arr,
1968 const amrex::Array4<amrex::Real>& t_star_arr,
1969 const amrex::Array4<amrex::Real>& q_star_arr,
1970 const amrex::Array4<amrex::Real>& t_surf_arr,
1971 const amrex::Array4<amrex::Real>& q_surf_arr,
1972 const amrex::Array4<amrex::Real>& olen_arr,
1973 const amrex::Array4<amrex::Real>& pblh_arr,
1974 const amrex::Array4<amrex::Real>& Hwave_arr,
1975 const amrex::Array4<amrex::Real>& Lwave_arr,
1976 const amrex::Array4<amrex::Real>& )
const
1996 zeta = zref / olen_arr(i,j,k);
2000 if (q_surf_arr(i,j,k) >
zero) {
2001 qv_s = q_surf_arr(i,j,k);
2005 qv_s = qvm_arr(i,j,k);
2007 qv_a = qvm_arr(i,j,k);
2019 w_star_arr(i,j,k) =
calc_wstar(tflux, pblh_arr(i,j,k), tvm_arr(i,j,k));
2021 umm = std::sqrt(umm_arr(i,j,k)*umm_arr(i,j,k) + wstar*wstar);
2022 umm = std::max(umm,
WSMIN);
2029 ( (thv_a - thv_s) / (umm * umm) );
2049 C = std::log(zref / z0_old);
2057 }
while ( (std::abs(
z0 - z0_old) >
tol_z) && (iter_z <= max_iters) );
2059 "Maximum number of MOST roughness iterations reached.");
2060 C = std::log(zref /
z0);
2070 }
while ( (std::abs(zeta - zeta_old) >
tol) && (iter <= max_iters) );
2072 "Maximum number of MOST iterations reached.");
2076 olen_arr(i,j,k) = zref / zeta;
2077 u_star_arr(i,j,k) =
mdata.
kappa * umm / CmPsim;
2078 t_star_arr(i,j,k) =
mdata.
kappa * (tm_arr(i,j,k) - t_surf_arr(i,j,k)) / CmPsih;
2081 (u_star_arr(i,j,k) *
mdata.
kappa) + qvm_arr(i,j,k);
2084 q_star_arr(i,j,k) =
mdata.
kappa * (qvm_arr(i,j,k) - q_surf_arr(i,j,k)) / CmPsih;
2093 #ifdef AMREX_USE_FLOAT
2114 const bool face_is_low =
true,
2116 const int zhi = 0) {
2137 const amrex::Array4<const amrex::Real>& cons_arr,
2138 const amrex::Array4<const amrex::Real>& velx_arr,
2139 const amrex::Array4<const amrex::Real>& vely_arr,
2140 const amrex::Array4<const amrex::Real>& velz_arr,
2141 const amrex::Array4<const amrex::Real>& umm_arr,
2142 const amrex::Array4<const amrex::Real>& qvm_arr,
2143 const amrex::Array4<const amrex::Real>& u_star_arr,
2144 const amrex::Array4<const amrex::Real>& q_star_arr,
2145 const amrex::Array4<const amrex::Real>& q_surf_arr)
const
2153 velx =
myhalf * ( vely_arr(i,j,k) + vely_arr(i ,j+1,k) );
2154 vely =
myhalf * ( velz_arr(i,j,k) + velz_arr(i ,j ,k+1) );
2155 }
else if (dir == 1) {
2157 velx =
myhalf * ( velx_arr(i,j,k) + velx_arr(i+1,j ,k) );
2158 vely =
myhalf * ( velz_arr(i,j,k) + velz_arr(i ,j ,k+1) );
2161 velx =
myhalf * ( velx_arr(i,j,k) + velx_arr(i+1,j ,k) );
2162 vely =
myhalf * ( vely_arr(i,j,k) + vely_arr(i ,j+1,k) );
2170 wsp_mean = std::max(wsp_mean,
WSMIN);
2171 if (dir == 2 && !
is_low) {
2174 qv_surf = qvm_arr(i, j, k);
2202 const amrex::Array4<const amrex::Real>& cons_arr,
2203 const amrex::Array4<const amrex::Real>& velx_arr,
2204 const amrex::Array4<const amrex::Real>& vely_arr,
2205 const amrex::Array4<const amrex::Real>& velz_arr,
2206 const amrex::Array4<const amrex::Real>& umm_arr,
2207 const amrex::Array4<const amrex::Real>& tm_arr,
2208 const amrex::Array4<const amrex::Real>& u_star_arr,
2209 const amrex::Array4<const amrex::Real>& t_star_arr,
2210 const amrex::Array4<const amrex::Real>& t_surf_arr)
const
2218 velx =
myhalf * ( vely_arr(i,j,k) + vely_arr(i ,j+1,k) );
2219 vely =
myhalf * ( velz_arr(i,j,k) + velz_arr(i ,j ,k+1) );
2220 }
else if (dir == 1) {
2222 velx =
myhalf * ( velx_arr(i,j,k) + velx_arr(i+1,j ,k) );
2223 vely =
myhalf * ( velz_arr(i,j,k) + velz_arr(i ,j ,k+1) );
2226 velx =
myhalf * ( velx_arr(i,j,k) + velx_arr(i+1,j ,k) );
2227 vely =
myhalf * ( vely_arr(i,j,k) + vely_arr(i ,j+1,k) );
2236 if (dir == 2 && !
is_low) {
2238 theta_mean = theta_surf;
2239 theta_surf = tm_arr(i, j, k);
2242 wsp_mean = std::max(wsp_mean,
WSMIN);
2269 const amrex::Array4<const amrex::Real>& cons_arr,
2270 const amrex::Array4<const amrex::Real>& velx_arr,
2271 const amrex::Array4<const amrex::Real>& vely_arr,
2272 const amrex::Array4<const amrex::Real>& velz_arr,
2273 const amrex::Array4<const amrex::Real>& umm_arr,
2274 const amrex::Array4<const amrex::Real>& um_arr,
2275 const amrex::Array4<const amrex::Real>& vm_arr,
2276 const amrex::Array4<const amrex::Real>& ,
2277 const amrex::Array4<const amrex::Real>& u_star_arr)
const
2282 const int ic = (!
is_low && dir == 0) ? i - 1 : i;
2283 const int jc = (!
is_low && dir == 1) ? j - 1 : j;
2284 const int kc = (!
is_low && dir != 0 && dir != 1) ? k - 1 : k;
2290 velx = vely_arr(ic,j,kc);
2291 vely =
fourth * ( velz_arr(ic,j-1,kc ) + velz_arr(ic,j,kc )
2292 + velz_arr(ic,j-1,kc+1) + velz_arr(ic,j,kc+1) );
2294 umean = vm_arr(ic,j,kc);
2295 ustar =
myhalf * (u_star_arr(ic,j-1,kc) + u_star_arr(ic,j,kc));
2296 wsp_mean =
myhalf * (umm_arr(ic,j-1,kc) + umm_arr(ic,j,kc));
2297 }
else if (dir == 1) {
2300 velx = velx_arr(i,jc,kc);
2301 vely =
fourth * ( velz_arr(i-1,jc,kc ) + velz_arr(i,jc,kc )
2302 + velz_arr(i-1,jc,kc+1) + velz_arr(i,jc,kc+1) );
2304 umean = um_arr(i,jc,kc);
2305 ustar =
myhalf * (u_star_arr(i-1,jc,kc) + u_star_arr(i,jc,kc));
2306 wsp_mean =
myhalf * (umm_arr(i-1,jc,kc) + umm_arr(i,jc,kc));
2309 velx = velx_arr(i,j,kc);
2310 vely =
fourth * ( vely_arr(i-1,j ,kc) + vely_arr(i,j ,kc)
2311 + vely_arr(i-1,j+1,kc) + vely_arr(i,j+1,kc) );
2313 umean = um_arr(i,j,kc);
2314 ustar =
myhalf * (u_star_arr(i-1,j,kc) + u_star_arr(i,j,kc));
2315 wsp_mean =
myhalf * (umm_arr(i-1,j,kc) + umm_arr(i,j,kc));
2317 wsp_mean = std::max(wsp_mean,
WSMIN);
2329 stressx = (
is_low) ? stressx : -stressx;
2348 const amrex::Array4<const amrex::Real>& cons_arr,
2349 const amrex::Array4<const amrex::Real>& velx_arr,
2350 const amrex::Array4<const amrex::Real>& vely_arr,
2351 const amrex::Array4<const amrex::Real>& velz_arr,
2352 const amrex::Array4<const amrex::Real>& umm_arr,
2353 const amrex::Array4<const amrex::Real>& ,
2354 const amrex::Array4<const amrex::Real>& vm_arr,
2355 const amrex::Array4<const amrex::Real>& wm_arr,
2356 const amrex::Array4<const amrex::Real>& u_star_arr)
const
2360 const int ic = (!
is_low && dir == 0) ? i - 1 : i;
2361 const int jc = (!
is_low && dir == 1) ? j - 1 : j;
2362 const int kc = (!
is_low && dir != 0 && dir != 1) ? k - 1 : k;
2368 const int klo = amrex::max(k - 1,
m_zlo);
2369 const int khi = amrex::min(k,
m_zhi);
2370 velx =
fourth * ( vely_arr(ic,j ,
klo) + vely_arr(ic,j+1,
klo)
2371 + vely_arr(ic,j ,
khi) + vely_arr(ic,j+1,
khi) );
2372 vely = velz_arr(ic,j,k);
2374 vmean = wm_arr(ic,j,k);
2376 wsp_mean =
myhalf * (umm_arr(ic,j,
klo) + umm_arr(ic,j,
khi));
2377 }
else if (dir == 1) {
2380 const int klo = amrex::max(k - 1,
m_zlo);
2381 const int khi = amrex::min(k,
m_zhi);
2382 velx =
fourth * ( velx_arr(i ,jc,
klo) + velx_arr(i+1,jc,
klo)
2383 + velx_arr(i ,jc,
khi) + velx_arr(i+1,jc,
khi) );
2384 vely = velz_arr(i,jc,k);
2386 vmean = wm_arr(i,jc,k);
2388 wsp_mean =
myhalf * (umm_arr(i,jc,
klo) + umm_arr(i,jc,
khi));
2391 velx =
fourth * ( velx_arr(i ,j-1,kc) + velx_arr(i+1,j-1,kc)
2392 + velx_arr(i ,j ,kc) + velx_arr(i+1,j ,kc) );
2393 vely = vely_arr(i,j,kc);
2395 vmean = vm_arr(i,j,kc);
2396 ustar =
myhalf * (u_star_arr(i,j-1,kc) + u_star_arr(i,j,kc));
2397 wsp_mean =
myhalf * (umm_arr(i,j-1,kc) + umm_arr(i,j,kc));
2399 wsp_mean = std::max(wsp_mean,
WSMIN);
2411 stressy = (
is_low) ? stressy : -stressy;
2417 #ifdef AMREX_USE_FLOAT
2457 const amrex::Array4<const amrex::Real>& cons_arr,
2458 const amrex::Array4<const amrex::Real>& ,
2459 const amrex::Array4<const amrex::Real>& ,
2460 const amrex::Array4<const amrex::Real>& ,
2461 const amrex::Array4<const amrex::Real>& ,
2462 const amrex::Array4<const amrex::Real>& ,
2463 const amrex::Array4<const amrex::Real>& ,
2464 const amrex::Array4<const amrex::Real>& q_star_arr,
2465 const amrex::Array4<const amrex::Real>& )
const
2490 const amrex::Array4<const amrex::Real>& cons_arr,
2491 const amrex::Array4<const amrex::Real>& ,
2492 const amrex::Array4<const amrex::Real>& ,
2493 const amrex::Array4<const amrex::Real>& ,
2494 const amrex::Array4<const amrex::Real>& ,
2495 const amrex::Array4<const amrex::Real>& ,
2496 const amrex::Array4<const amrex::Real>& ,
2497 const amrex::Array4<const amrex::Real>& t_star_arr,
2498 const amrex::Array4<const amrex::Real>& )
const
2523 const amrex::Array4<const amrex::Real>& cons_arr,
2524 const amrex::Array4<const amrex::Real>& velx_arr,
2525 const amrex::Array4<const amrex::Real>& vely_arr,
2526 const amrex::Array4<const amrex::Real>& ,
2527 const amrex::Array4<const amrex::Real>& ,
2528 const amrex::Array4<const amrex::Real>& ,
2529 const amrex::Array4<const amrex::Real>& ,
2530 const amrex::Array4<const amrex::Real>& ,
2531 const amrex::Array4<const amrex::Real>& u_star_arr)
const
2535 + vely_arr(i-1,j,k) + vely_arr(i-1,j+1,k) );
2561 const amrex::Array4<const amrex::Real>& cons_arr,
2562 const amrex::Array4<const amrex::Real>& velx_arr,
2563 const amrex::Array4<const amrex::Real>& vely_arr,
2564 const amrex::Array4<const amrex::Real>& ,
2565 const amrex::Array4<const amrex::Real>& ,
2566 const amrex::Array4<const amrex::Real>& ,
2567 const amrex::Array4<const amrex::Real>& ,
2568 const amrex::Array4<const amrex::Real>& ,
2569 const amrex::Array4<const amrex::Real>& u_star_arr)
const
2572 + velx_arr(i,j-1,k) + velx_arr(i+1,j-1,k) );
2586 #ifdef AMREX_USE_FLOAT
2630 const amrex::Array4<const amrex::Real>& cons_arr,
2631 const amrex::Array4<const amrex::Real>& velx_arr,
2632 const amrex::Array4<const amrex::Real>& vely_arr,
2633 const amrex::Array4<const amrex::Real>& ,
2634 const amrex::Array4<const amrex::Real>& ,
2635 const amrex::Array4<const amrex::Real>& ,
2636 const amrex::Array4<const amrex::Real>& ,
2637 const amrex::Array4<const amrex::Real>& ,
2638 const amrex::Array4<const amrex::Real>& q_surf_arr)
const
2667 const amrex::Array4<const amrex::Real>& cons_arr,
2668 const amrex::Array4<const amrex::Real>& velx_arr,
2669 const amrex::Array4<const amrex::Real>& vely_arr,
2670 const amrex::Array4<const amrex::Real>& ,
2671 const amrex::Array4<const amrex::Real>& ,
2672 const amrex::Array4<const amrex::Real>& ,
2673 const amrex::Array4<const amrex::Real>& ,
2674 const amrex::Array4<const amrex::Real>& ,
2675 const amrex::Array4<const amrex::Real>& t_surf_arr)
const
2704 const amrex::Array4<const amrex::Real>& cons_arr,
2705 const amrex::Array4<const amrex::Real>& velx_arr,
2706 const amrex::Array4<const amrex::Real>& vely_arr,
2707 const amrex::Array4<const amrex::Real>& ,
2708 const amrex::Array4<const amrex::Real>& ,
2709 const amrex::Array4<const amrex::Real>& ,
2710 const amrex::Array4<const amrex::Real>& ,
2711 const amrex::Array4<const amrex::Real>& ,
2712 const amrex::Array4<const amrex::Real>& )
const
2717 + vely_arr(i-1,j,k) + vely_arr(i-1,j+1,k) );
2741 const amrex::Array4<const amrex::Real>& cons_arr,
2742 const amrex::Array4<const amrex::Real>& velx_arr,
2743 const amrex::Array4<const amrex::Real>& vely_arr,
2744 const amrex::Array4<const amrex::Real>& ,
2745 const amrex::Array4<const amrex::Real>& ,
2746 const amrex::Array4<const amrex::Real>& ,
2747 const amrex::Array4<const amrex::Real>& ,
2748 const amrex::Array4<const amrex::Real>& ,
2749 const amrex::Array4<const amrex::Real>& )
const
2753 + velx_arr(i,j-1,k) + velx_arr(i+1,j-1,k) );
2798 const amrex::Array4<const amrex::Real>& cons_arr,
2799 const amrex::Array4<const amrex::Real>& velx_arr,
2800 const amrex::Array4<const amrex::Real>& vely_arr,
2801 const amrex::Array4<const amrex::Real>& ,
2802 const amrex::Array4<const amrex::Real>& ,
2803 const amrex::Array4<const amrex::Real>& ,
2804 const amrex::Array4<const amrex::Real>& ,
2805 const amrex::Array4<const amrex::Real>& q_star_arr,
2806 const amrex::Array4<const amrex::Real>& )
const
2814 amrex::Real wsp = std::sqrt(velx*velx + vely*vely);
2836 const amrex::Array4<const amrex::Real>& cons_arr,
2837 const amrex::Array4<const amrex::Real>& velx_arr,
2838 const amrex::Array4<const amrex::Real>& vely_arr,
2839 const amrex::Array4<const amrex::Real>& ,
2840 const amrex::Array4<const amrex::Real>& ,
2841 const amrex::Array4<const amrex::Real>& ,
2842 const amrex::Array4<const amrex::Real>& ,
2843 const amrex::Array4<const amrex::Real>& t_star_arr,
2844 const amrex::Array4<const amrex::Real>& )
const
2852 amrex::Real wsp = std::sqrt(velx*velx + vely*vely);
2874 const amrex::Array4<const amrex::Real>& cons_arr,
2875 const amrex::Array4<const amrex::Real>& velx_arr,
2876 const amrex::Array4<const amrex::Real>& vely_arr,
2877 const amrex::Array4<const amrex::Real>& ,
2878 const amrex::Array4<const amrex::Real>& ,
2879 const amrex::Array4<const amrex::Real>& ,
2880 const amrex::Array4<const amrex::Real>& ,
2881 const amrex::Array4<const amrex::Real>& ,
2882 const amrex::Array4<const amrex::Real>& u_star_arr)
const
2886 + vely_arr(i-1,j,k) + vely_arr(i-1,j+1,k) );
2912 const amrex::Array4<const amrex::Real>& cons_arr,
2913 const amrex::Array4<const amrex::Real>& velx_arr,
2914 const amrex::Array4<const amrex::Real>& vely_arr,
2915 const amrex::Array4<const amrex::Real>& ,
2916 const amrex::Array4<const amrex::Real>& ,
2917 const amrex::Array4<const amrex::Real>& ,
2918 const amrex::Array4<const amrex::Real>& ,
2919 const amrex::Array4<const amrex::Real>& ,
2920 const amrex::Array4<const amrex::Real>& u_star_arr)
const
2923 + velx_arr(i,j-1,k) + velx_arr(i+1,j-1,k) );
2937 #ifdef AMREX_USE_FLOAT
2971 const amrex::Array4<const amrex::Real>& cons_arr,
2972 const amrex::Array4<const amrex::Real>& ,
2973 const amrex::Array4<const amrex::Real>& ,
2974 const amrex::Array4<const amrex::Real>& ,
2975 const amrex::Array4<const amrex::Real>& ,
2976 const amrex::Array4<const amrex::Real>& qvm_arr,
2977 const amrex::Array4<const amrex::Real>& ,
2978 const amrex::Array4<const amrex::Real>& q_star_arr,
2979 const amrex::Array4<const amrex::Real>& q_surf_arr)
const
3005 const amrex::Array4<const amrex::Real>& cons_arr,
3006 const amrex::Array4<const amrex::Real>& ,
3007 const amrex::Array4<const amrex::Real>& ,
3008 const amrex::Array4<const amrex::Real>& ,
3009 const amrex::Array4<const amrex::Real>& ,
3010 const amrex::Array4<const amrex::Real>& tm_arr,
3011 const amrex::Array4<const amrex::Real>& ,
3012 const amrex::Array4<const amrex::Real>& t_star_arr,
3013 const amrex::Array4<const amrex::Real>& t_surf_arr)
const
3039 const amrex::Array4<const amrex::Real>& cons_arr,
3040 const amrex::Array4<const amrex::Real>& ,
3041 const amrex::Array4<const amrex::Real>& ,
3042 const amrex::Array4<const amrex::Real>& ,
3043 const amrex::Array4<const amrex::Real>& ,
3044 const amrex::Array4<const amrex::Real>& ,
3045 const amrex::Array4<const amrex::Real>& ,
3046 const amrex::Array4<const amrex::Real>& ,
3047 const amrex::Array4<const amrex::Real>& u_star_arr)
const
3071 const amrex::Array4<const amrex::Real>& ,
3072 const amrex::Array4<const amrex::Real>& ,
3073 const amrex::Array4<const amrex::Real>& ,
3074 const amrex::Array4<const amrex::Real>& ,
3075 const amrex::Array4<const amrex::Real>& ,
3076 const amrex::Array4<const amrex::Real>& ,
3077 const amrex::Array4<const amrex::Real>& ,
3078 const amrex::Array4<const amrex::Real>& ,
3079 const amrex::Array4<const amrex::Real>& )
const
3088 #ifdef AMREX_USE_FLOAT
constexpr amrex::Real epsv
Definition: ERF_Constants.H:56
constexpr amrex::Real bogus_large_value
Definition: ERF_Constants.H:19
#define Rho_comp
Definition: ERF_IndexDefines.H:53
#define RhoTheta_comp
Definition: ERF_IndexDefines.H:54
#define RhoQ1_comp
Definition: ERF_IndexDefines.H:66
Real z0
Definition: ERF_InitCustomPertVels_ScalarAdvDiff.H:12
AMREX_ALWAYS_ASSERT_WITH_MESSAGE(axis >=0 &&axis< AMREX_SPACEDIM, "prob.axis must be 0, 1 or 2")
const int khi
Definition: ERF_InitCustomPert_Bubble.H:25
const int klo
Definition: ERF_InitCustomPert_KE.H:9
constexpr amrex::Real most_min_wind_speed
Definition: ERF_MOSTStress.H:14
constexpr amrex::Real most_min_ustar
Definition: ERF_MOSTUtils.H:462
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real WaveCoupled_roughness(amrex::Real Hwave, amrex::Real Lwave, amrex::Real eps, amrex::Real ustar, amrex::Real nu, bool visc)
Definition: ERF_MOSTUtils.H:708
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real most_rib_zeta_bracketed(const similarity_funs &sfuns, amrex::Real C, amrex::Real Rib, amrex::Real zeta0, amrex::Real tol)
Definition: ERF_MOSTUtils.H:330
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real most_bracket(amrex::Real C, amrex::Real psi)
Definition: ERF_MOSTUtils.H:255
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real COARE3_roughness(amrex::Real zref, amrex::Real umm, amrex::Real ustar, amrex::Real nu, bool visc)
Definition: ERF_MOSTUtils.H:645
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Mod_Charnock_roughness(amrex::Real ustar, amrex::Real Cnk_b)
Definition: ERF_MOSTUtils.H:624
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void most_flux_outputs(const most_data &mdata, bool spec_qflux, bool at_fold, amrex::Real zeta_fold, amrex::Real C, amrex::Real psi_h, amrex::Real ustar, amrex::Real zref, amrex::Real tm, amrex::Real tvm, amrex::Real qvm, amrex::Real qflux, amrex::Real &olen, amrex::Real &t_surf, amrex::Real &t_star, amrex::Real &q_surf, amrex::Real &q_star)
Definition: ERF_MOSTUtils.H:492
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real air_viscosity(amrex::Real T_degK)
Definition: ERF_MOSTUtils.H:581
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool most_rib_zeta_is_root(const similarity_funs &sfuns, amrex::Real C, amrex::Real Rib, amrex::Real zeta, amrex::Real delta)
Definition: ERF_MOSTUtils.H:300
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real most_clamp_zeta(amrex::Real zeta, amrex::Real zeta_fold, bool &at_fold)
Definition: ERF_MOSTUtils.H:396
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Donelan_roughness(amrex::Real ustar, amrex::Real nu, bool visc)
Definition: ERF_MOSTUtils.H:676
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Charnock_roughness(amrex::Real ustar, amrex::Real Cnk_a, amrex::Real nu, bool visc)
Definition: ERF_MOSTUtils.H:600
constexpr amrex::Real one
Definition: ERF_NumericalConstants.H:37
constexpr amrex::Real fourth
Definition: ERF_NumericalConstants.H:42
constexpr amrex::Real zero
Definition: ERF_NumericalConstants.H:36
constexpr amrex::Real myhalf
Definition: ERF_NumericalConstants.H:41
amrex::Real Real
Definition: ERF_ShocInterface.H:19
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real calc_wstar(const amrex::Real &ust, const amrex::Real &tst, const amrex::Real &qst, const amrex::Real &pblh, const amrex::Real &th, const amrex::Real &thv, const amrex::Real &qv=amrex::Real(0))
Definition: ERF_Wstar.H:27
@ ustar
Definition: ERF_SLM.H:28
@ qstar
Definition: ERF_SLM.H:30
@ tstar
Definition: ERF_SLM.H:29
@ rho
Definition: ERF_Kessler.H:25
@ theta
Definition: ERF_Kessler.H:26
@ qv
Definition: ERF_Kessler.H:31
@ q
Definition: ERF_WSM6.H:294
Definition: ERF_MOSTStress.H:86
const amrex::Real WSMIN
Definition: ERF_MOSTStress.H:189
most_data mdata
Definition: ERF_MOSTStress.H:182
adiabatic_charnock(amrex::Real Tflux, amrex::Real Qvflux, amrex::Real cnk_a, bool use_visc)
Definition: ERF_MOSTStress.H:95
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void iterate_flux(const int &i, const int &j, const int &k, const int &max_iters, const amrex::Array4< const amrex::Real > &zref_arr, const amrex::Array4< amrex::Real > &z0_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< amrex::Real > &u_star_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &t_star_arr, const amrex::Array4< amrex::Real > &q_star_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &olen_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &) const
Definition: ERF_MOSTStress.H:118
const amrex::Real tol_z
Definition: ERF_MOSTStress.H:187
similarity_funs sfuns
Definition: ERF_MOSTStress.H:183
Definition: ERF_MOSTStress.H:299
similarity_funs sfuns
Definition: ERF_MOSTStress.H:384
const amrex::Real WSMIN
Definition: ERF_MOSTStress.H:390
const amrex::Real tol_z
Definition: ERF_MOSTStress.H:388
most_data mdata
Definition: ERF_MOSTStress.H:383
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void iterate_flux(const int &i, const int &j, const int &k, const int &max_iters, const amrex::Array4< const amrex::Real > &zref_arr, const amrex::Array4< amrex::Real > &z0_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< amrex::Real > &u_star_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &t_star_arr, const amrex::Array4< amrex::Real > &q_star_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &olen_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &) const
Definition: ERF_MOSTStress.H:327
adiabatic_donelan(amrex::Real Tflux, amrex::Real Qvflux, bool use_visc)
Definition: ERF_MOSTStress.H:306
Definition: ERF_MOSTStress.H:197
adiabatic_mod_charnock(amrex::Real Tflux, amrex::Real Qvflux, amrex::Real depth, bool use_visc)
Definition: ERF_MOSTStress.H:205
similarity_funs sfuns
Definition: ERF_MOSTStress.H:285
const amrex::Real tol_z
Definition: ERF_MOSTStress.H:289
const amrex::Real WSMIN
Definition: ERF_MOSTStress.H:291
most_data mdata
Definition: ERF_MOSTStress.H:284
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void iterate_flux(const int &i, const int &j, const int &k, const int &max_iters, const amrex::Array4< const amrex::Real > &zref_arr, const amrex::Array4< amrex::Real > &z0_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< amrex::Real > &u_star_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &t_star_arr, const amrex::Array4< amrex::Real > &q_star_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &olen_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &) const
Definition: ERF_MOSTStress.H:229
Definition: ERF_MOSTStress.H:398
const amrex::Real eps
Definition: ERF_MOSTStress.H:493
adiabatic_wave_coupled(amrex::Real Tflux, amrex::Real Qvflux, bool use_visc)
Definition: ERF_MOSTStress.H:405
const amrex::Real tol_z
Definition: ERF_MOSTStress.H:488
most_data mdata
Definition: ERF_MOSTStress.H:483
const amrex::Real WSMIN
Definition: ERF_MOSTStress.H:495
similarity_funs sfuns
Definition: ERF_MOSTStress.H:484
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void iterate_flux(const int &i, const int &j, const int &k, const int &max_iters, const amrex::Array4< const amrex::Real > &zref_arr, const amrex::Array4< amrex::Real > &z0_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< amrex::Real > &u_star_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &t_star_arr, const amrex::Array4< amrex::Real > &q_star_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &olen_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &Hwave_arr, const amrex::Array4< amrex::Real > &Lwave_arr, const amrex::Array4< amrex::Real > &) const
Definition: ERF_MOSTStress.H:426
Definition: ERF_MOSTStress.H:20
adiabatic(amrex::Real Tflux, amrex::Real Qvflux)
Definition: ERF_MOSTStress.H:27
similarity_funs sfuns
Definition: ERF_MOSTStress.H:77
const amrex::Real WSMIN
Definition: ERF_MOSTStress.H:78
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void iterate_flux(const int &i, const int &j, const int &k, const int &, const amrex::Array4< const amrex::Real > &zref_arr, const amrex::Array4< const amrex::Real > &z0_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< amrex::Real > &u_star_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &t_star_arr, const amrex::Array4< amrex::Real > &q_star_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &olen_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &) const
Definition: ERF_MOSTStress.H:46
most_data mdata
Definition: ERF_MOSTStress.H:76
Definition: ERF_MOSTStress.H:2599
bulk_coeff_flux(amrex::Real m_Cd, amrex::Real m_Ch, amrex::Real m_Cq)
Definition: ERF_MOSTStress.H:2607
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_v_flux(const int &i, const int &j, const int &k, const int &, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &velx_arr, const amrex::Array4< const amrex::Real > &vely_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &) const
Definition: ERF_MOSTStress.H:2737
most_data mdata
Definition: ERF_MOSTStress.H:2765
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_t_flux(const int &i, const int &j, const int &k, const int &, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &velx_arr, const amrex::Array4< const amrex::Real > &vely_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &t_surf_arr) const
Definition: ERF_MOSTStress.H:2663
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_u_flux(const int &i, const int &j, const int &k, const int &, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &velx_arr, const amrex::Array4< const amrex::Real > &vely_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &) const
Definition: ERF_MOSTStress.H:2700
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_q_flux(const int &i, const int &j, const int &k, const int &, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &velx_arr, const amrex::Array4< const amrex::Real > &vely_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &q_surf_arr) const
Definition: ERF_MOSTStress.H:2626
Definition: ERF_MOSTStress.H:2433
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_t_flux(const int &i, const int &j, const int &k, const int &, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &t_star_arr, const amrex::Array4< const amrex::Real > &) const
Definition: ERF_MOSTStress.H:2486
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_q_flux(const int &i, const int &j, const int &k, const int &, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &q_star_arr, const amrex::Array4< const amrex::Real > &) const
Definition: ERF_MOSTStress.H:2453
custom_flux(bool specified_rho_surf)
Definition: ERF_MOSTStress.H:2439
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_v_flux(const int &i, const int &j, const int &k, const int &, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &velx_arr, const amrex::Array4< const amrex::Real > &vely_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &u_star_arr) const
Definition: ERF_MOSTStress.H:2557
const bool fluxes_include_rho
Definition: ERF_MOSTStress.H:2591
const amrex::Real eps
Definition: ERF_MOSTStress.H:2589
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_u_flux(const int &i, const int &j, const int &k, const int &, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &velx_arr, const amrex::Array4< const amrex::Real > &vely_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &u_star_arr) const
Definition: ERF_MOSTStress.H:2519
Definition: ERF_MOSTStress.H:2109
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_v_flux(const int &i, const int &j, const int &k, const int &dir, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &velx_arr, const amrex::Array4< const amrex::Real > &vely_arr, const amrex::Array4< const amrex::Real > &velz_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &vm_arr, const amrex::Array4< const amrex::Real > &wm_arr, const amrex::Array4< const amrex::Real > &u_star_arr) const
Definition: ERF_MOSTStress.H:2344
const amrex::Real eps
Definition: ERF_MOSTStress.H:2420
moeng_flux(const amrex::Real wsmin=0.1, const bool face_is_low=true, const int zlo=0, const int zhi=0)
Definition: ERF_MOSTStress.H:2113
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_t_flux(const int &i, const int &j, const int &k, const int &dir, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &velx_arr, const amrex::Array4< const amrex::Real > &vely_arr, const amrex::Array4< const amrex::Real > &velz_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::Array4< const amrex::Real > &u_star_arr, const amrex::Array4< const amrex::Real > &t_star_arr, const amrex::Array4< const amrex::Real > &t_surf_arr) const
Definition: ERF_MOSTStress.H:2198
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_q_flux(const int &i, const int &j, const int &k, const int &dir, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &velx_arr, const amrex::Array4< const amrex::Real > &vely_arr, const amrex::Array4< const amrex::Real > &velz_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &qvm_arr, const amrex::Array4< const amrex::Real > &u_star_arr, const amrex::Array4< const amrex::Real > &q_star_arr, const amrex::Array4< const amrex::Real > &q_surf_arr) const
Definition: ERF_MOSTStress.H:2133
int m_zhi
Definition: ERF_MOSTStress.H:2425
int m_zlo
Definition: ERF_MOSTStress.H:2424
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_u_flux(const int &i, const int &j, const int &k, const int &dir, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &velx_arr, const amrex::Array4< const amrex::Real > &vely_arr, const amrex::Array4< const amrex::Real > &velz_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &um_arr, const amrex::Array4< const amrex::Real > &vm_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &u_star_arr) const
Definition: ERF_MOSTStress.H:2265
amrex::Real WSMIN
Definition: ERF_MOSTStress.H:2423
bool is_low
Definition: ERF_MOSTStress.H:2422
Definition: ERF_MOSTUtils.H:530
bool extrapolated
whether the last update returned an extrapolated value
Definition: ERF_MOSTUtils.H:564
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real update(amrex::Real u_new, int iter)
Definition: ERF_MOSTUtils.H:540
Definition: ERF_MOSTUtils.H:13
amrex::Real surf_moist_flux
Moisture flux.
Definition: ERF_MOSTUtils.H:19
amrex::Real Cnk_b2
Modified Charnock Eq (4) https://doi.org/amrex::Real(10.1175)/JAMC-D-17-amrex::Real(0137....
Definition: ERF_MOSTUtils.H:23
amrex::Real Cnk_b
Modified Charnock derived quantity.
Definition: ERF_MOSTUtils.H:25
amrex::Real Ch
Definition: ERF_MOSTUtils.H:29
amrex::Real Cnk_d
Modified Charnock Eq (4) https://doi.org/amrex::Real(10.1175)/JAMC-D-17-amrex::Real(0137....
Definition: ERF_MOSTUtils.H:24
amrex::Real kappa
von Karman constant
Definition: ERF_MOSTUtils.H:16
amrex::Real gravity
Acceleration due to gravity (m/s^2)
Definition: ERF_MOSTUtils.H:17
amrex::Real Cnk_a
Standard Charnock constant https://doi.org/amrex::Real(10.1175)/JAMC-D-17-amrex::Real(0137....
Definition: ERF_MOSTUtils.H:21
amrex::Real Cd
Definition: ERF_MOSTUtils.H:28
amrex::Real Cq
Definition: ERF_MOSTUtils.H:30
const amrex::Real Bjr_beta
Definition: ERF_MOSTUtils.H:32
amrex::Real Cnk_b1
Modified Charnock Eq (4) https://doi.org/amrex::Real(10.1175)/JAMC-D-17-amrex::Real(0137....
Definition: ERF_MOSTUtils.H:22
bool visc
Use viscous Charnock formulation.
Definition: ERF_MOSTUtils.H:26
amrex::Real surf_temp_flux
Heat flux TODO: decide whether this is <θ'w'> or <θv'w'> under moist conditions.
Definition: ERF_MOSTUtils.H:18
Definition: ERF_MOSTStress.H:2773
rico_flux(amrex::Real l_theta_z0, amrex::Real l_qsat_z0)
Definition: ERF_MOSTStress.H:2780
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_v_flux(const int &i, const int &j, const int &k, const int &, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &velx_arr, const amrex::Array4< const amrex::Real > &vely_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &u_star_arr) const
Definition: ERF_MOSTStress.H:2908
amrex::Real qsat_z0
Definition: ERF_MOSTStress.H:2943
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_q_flux(const int &i, const int &j, const int &k, const int &, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &velx_arr, const amrex::Array4< const amrex::Real > &vely_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &q_star_arr, const amrex::Array4< const amrex::Real > &) const
Definition: ERF_MOSTStress.H:2794
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_t_flux(const int &i, const int &j, const int &k, const int &, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &velx_arr, const amrex::Array4< const amrex::Real > &vely_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &t_star_arr, const amrex::Array4< const amrex::Real > &) const
Definition: ERF_MOSTStress.H:2832
const amrex::Real eps
Definition: ERF_MOSTStress.H:2940
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_u_flux(const int &i, const int &j, const int &k, const int &, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &velx_arr, const amrex::Array4< const amrex::Real > &vely_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &u_star_arr) const
Definition: ERF_MOSTStress.H:2870
amrex::Real theta_z0
Definition: ERF_MOSTStress.H:2942
Definition: ERF_MOSTStress.H:2951
rotate_flux()
Definition: ERF_MOSTStress.H:2955
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_t_flux(const int &i, const int &j, const int &k, const int &, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &t_star_arr, const amrex::Array4< const amrex::Real > &t_surf_arr) const
Definition: ERF_MOSTStress.H:3001
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_q_flux(const int &i, const int &j, const int &k, const int &, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &qvm_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &q_star_arr, const amrex::Array4< const amrex::Real > &q_surf_arr) const
Definition: ERF_MOSTStress.H:2967
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_u_flux(const int &i, const int &j, const int &k, const int &, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &u_star_arr) const
Definition: ERF_MOSTStress.H:3035
const amrex::Real eps
Definition: ERF_MOSTStress.H:3091
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real compute_v_flux(const int &, const int &, const int &, const int &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &, const amrex::Array4< const amrex::Real > &) const
Definition: ERF_MOSTStress.H:3067
Definition: ERF_MOSTUtils.H:67
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real calc_psi_m(amrex::Real zeta) const
Definition: ERF_MOSTUtils.H:132
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real calc_psi_h2(amrex::Real zeta) const
Definition: ERF_MOSTUtils.H:104
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real calc_zeta_fold(amrex::Real C) const
Definition: ERF_MOSTUtils.H:227
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real calc_psi_h(amrex::Real zeta) const
Definition: ERF_MOSTUtils.H:151
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real calc_psi_m2(amrex::Real zeta) const
Definition: ERF_MOSTUtils.H:79
Definition: ERF_MOSTStress.H:631
const amrex::Real tol
Definition: ERF_MOSTStress.H:764
similarity_funs sfuns
Definition: ERF_MOSTStress.H:763
most_data mdata
Definition: ERF_MOSTStress.H:761
bool spec_qflux
Definition: ERF_MOSTStress.H:762
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void iterate_flux(const int &i, const int &j, const int &k, const int &max_iters, const amrex::Array4< const amrex::Real > &zref_arr, const amrex::Array4< amrex::Real > &z0_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::Array4< const amrex::Real > &tvm_arr, const amrex::Array4< const amrex::Real > &qvm_arr, const amrex::Array4< amrex::Real > &u_star_arr, const amrex::Array4< amrex::Real > &w_star_arr, const amrex::Array4< amrex::Real > &t_star_arr, const amrex::Array4< amrex::Real > &q_star_arr, const amrex::Array4< amrex::Real > &t_surf_arr, const amrex::Array4< amrex::Real > &q_surf_arr, const amrex::Array4< amrex::Real > &olen_arr, const amrex::Array4< amrex::Real > &pblh_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &) const
Definition: ERF_MOSTStress.H:666
surface_flux_charnock(amrex::Real Tflux, amrex::Real Qvflux, amrex::Real cnk_a, bool use_visc, bool cons_qflux)
Definition: ERF_MOSTStress.H:641
const amrex::Real WSMIN
Definition: ERF_MOSTStress.H:766
const amrex::Real alpha
Definition: ERF_MOSTStress.H:765
Definition: ERF_MOSTStress.H:909
surface_flux_donelan(amrex::Real Tflux, amrex::Real Qvflux, bool use_visc, bool cons_qflux)
Definition: ERF_MOSTStress.H:917
bool spec_qflux
Definition: ERF_MOSTStress.H:1029
const amrex::Real tol
Definition: ERF_MOSTStress.H:1031
const amrex::Real WSMIN
Definition: ERF_MOSTStress.H:1033
most_data mdata
Definition: ERF_MOSTStress.H:1028
similarity_funs sfuns
Definition: ERF_MOSTStress.H:1030
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void iterate_flux(const int &i, const int &j, const int &k, const int &max_iters, const amrex::Array4< const amrex::Real > &zref_arr, const amrex::Array4< amrex::Real > &z0_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::Array4< const amrex::Real > &tvm_arr, const amrex::Array4< const amrex::Real > &qvm_arr, const amrex::Array4< amrex::Real > &u_star_arr, const amrex::Array4< amrex::Real > &w_star_arr, const amrex::Array4< amrex::Real > &t_star_arr, const amrex::Array4< amrex::Real > &q_star_arr, const amrex::Array4< amrex::Real > &t_surf_arr, const amrex::Array4< amrex::Real > &q_surf_arr, const amrex::Array4< amrex::Real > &olen_arr, const amrex::Array4< amrex::Real > &pblh_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &) const
Definition: ERF_MOSTStress.H:940
const amrex::Real alpha
Definition: ERF_MOSTStress.H:1032
Definition: ERF_MOSTStress.H:774
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void iterate_flux(const int &i, const int &j, const int &k, const int &max_iters, const amrex::Array4< const amrex::Real > &zref_arr, const amrex::Array4< amrex::Real > &z0_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::Array4< const amrex::Real > &tvm_arr, const amrex::Array4< const amrex::Real > &qvm_arr, const amrex::Array4< amrex::Real > &u_star_arr, const amrex::Array4< amrex::Real > &w_star_arr, const amrex::Array4< amrex::Real > &t_star_arr, const amrex::Array4< amrex::Real > &q_star_arr, const amrex::Array4< amrex::Real > &t_surf_arr, const amrex::Array4< amrex::Real > &q_surf_arr, const amrex::Array4< amrex::Real > &olen_arr, const amrex::Array4< amrex::Real > &pblh_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &) const
Definition: ERF_MOSTStress.H:809
const amrex::Real WSMIN
Definition: ERF_MOSTStress.H:901
most_data mdata
Definition: ERF_MOSTStress.H:896
surface_flux_mod_charnock(amrex::Real Tflux, amrex::Real Qvflux, amrex::Real depth, bool use_visc, bool cons_qflux)
Definition: ERF_MOSTStress.H:783
const amrex::Real alpha
Definition: ERF_MOSTStress.H:900
bool spec_qflux
Definition: ERF_MOSTStress.H:897
const amrex::Real tol
Definition: ERF_MOSTStress.H:899
similarity_funs sfuns
Definition: ERF_MOSTStress.H:898
Definition: ERF_MOSTStress.H:1041
const amrex::Real WSMIN
Definition: ERF_MOSTStress.H:1171
most_data mdata
Definition: ERF_MOSTStress.H:1161
const amrex::Real alpha
Definition: ERF_MOSTStress.H:1165
similarity_funs sfuns
Definition: ERF_MOSTStress.H:1163
const amrex::Real tol
Definition: ERF_MOSTStress.H:1164
surface_flux_wave_coupled(amrex::Real Tflux, amrex::Real Qvflux, bool use_visc, bool cons_qflux)
Definition: ERF_MOSTStress.H:1049
bool spec_qflux
Definition: ERF_MOSTStress.H:1162
const amrex::Real eps
Definition: ERF_MOSTStress.H:1169
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void iterate_flux(const int &i, const int &j, const int &k, const int &max_iters, const amrex::Array4< const amrex::Real > &zref_arr, const amrex::Array4< amrex::Real > &z0_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::Array4< const amrex::Real > &tvm_arr, const amrex::Array4< const amrex::Real > &qvm_arr, const amrex::Array4< amrex::Real > &u_star_arr, const amrex::Array4< amrex::Real > &w_star_arr, const amrex::Array4< amrex::Real > &t_star_arr, const amrex::Array4< amrex::Real > &q_star_arr, const amrex::Array4< amrex::Real > &t_surf_arr, const amrex::Array4< amrex::Real > &q_surf_arr, const amrex::Array4< amrex::Real > &olen_arr, const amrex::Array4< amrex::Real > &pblh_arr, const amrex::Array4< amrex::Real > &Hwave_arr, const amrex::Array4< amrex::Real > &Lwave_arr, const amrex::Array4< amrex::Real > &) const
Definition: ERF_MOSTStress.H:1072
Definition: ERF_MOSTStress.H:503
similarity_funs sfuns
Definition: ERF_MOSTStress.H:619
const amrex::Real USTARMIN
Definition: ERF_MOSTStress.H:622
surface_flux(amrex::Real Tflux, amrex::Real Qvflux, bool cons_qflux)
Definition: ERF_MOSTStress.H:511
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void iterate_flux(const int &i, const int &j, const int &k, const int &max_iters, const amrex::Array4< const amrex::Real > &zref_arr, const amrex::Array4< const amrex::Real > &z0_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::Array4< const amrex::Real > &tvm_arr, const amrex::Array4< const amrex::Real > &qvm_arr, const amrex::Array4< amrex::Real > &u_star_arr, const amrex::Array4< amrex::Real > &w_star_arr, const amrex::Array4< amrex::Real > &t_star_arr, const amrex::Array4< amrex::Real > &q_star_arr, const amrex::Array4< amrex::Real > &t_surf_arr, const amrex::Array4< amrex::Real > &q_surf_arr, const amrex::Array4< amrex::Real > &olen_arr, const amrex::Array4< amrex::Real > &pblh_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &) const
Definition: ERF_MOSTStress.H:532
const amrex::Real WSMIN
Definition: ERF_MOSTStress.H:621
most_data mdata
Definition: ERF_MOSTStress.H:617
const amrex::Real tol
Definition: ERF_MOSTStress.H:620
const amrex::Real alpha
Definition: ERF_MOSTStress.H:623
bool spec_qflux
Definition: ERF_MOSTStress.H:618
Definition: ERF_MOSTStress.H:1368
most_data mdata
Definition: ERF_MOSTStress.H:1542
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void iterate_flux(const int &i, const int &j, const int &k, const int &max_iters, const amrex::Array4< const amrex::Real > &zref_arr, const amrex::Array4< amrex::Real > &z0_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::Array4< const amrex::Real > &tvm_arr, const amrex::Array4< const amrex::Real > &qvm_arr, const amrex::Array4< amrex::Real > &u_star_arr, const amrex::Array4< amrex::Real > &w_star_arr, const amrex::Array4< amrex::Real > &t_star_arr, const amrex::Array4< amrex::Real > &q_star_arr, const amrex::Array4< amrex::Real > &t_surf_arr, const amrex::Array4< amrex::Real > &q_surf_arr, const amrex::Array4< amrex::Real > &olen_arr, const amrex::Array4< amrex::Real > &pblh_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &) const
Definition: ERF_MOSTStress.H:1403
bool spec_qflux
Definition: ERF_MOSTStress.H:1543
const amrex::Real tol_z
Definition: ERF_MOSTStress.H:1549
const amrex::Real alpha
Definition: ERF_MOSTStress.H:1551
const amrex::Real WSMIN
Definition: ERF_MOSTStress.H:1552
surface_temp_charnock(amrex::Real Tflux, amrex::Real Qvflux, amrex::Real cnk_a, bool use_visc, bool cons_qflux)
Definition: ERF_MOSTStress.H:1378
const amrex::Real tol
Definition: ERF_MOSTStress.H:1545
similarity_funs sfuns
Definition: ERF_MOSTStress.H:1544
Definition: ERF_MOSTStress.H:1744
similarity_funs sfuns
Definition: ERF_MOSTStress.H:1909
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void iterate_flux(const int &i, const int &j, const int &k, const int &max_iters, const amrex::Array4< const amrex::Real > &zref_arr, const amrex::Array4< amrex::Real > &z0_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::Array4< const amrex::Real > &tvm_arr, const amrex::Array4< const amrex::Real > &qvm_arr, const amrex::Array4< amrex::Real > &u_star_arr, const amrex::Array4< amrex::Real > &w_star_arr, const amrex::Array4< amrex::Real > &t_star_arr, const amrex::Array4< amrex::Real > &q_star_arr, const amrex::Array4< amrex::Real > &t_surf_arr, const amrex::Array4< amrex::Real > &q_surf_arr, const amrex::Array4< amrex::Real > &olen_arr, const amrex::Array4< amrex::Real > &pblh_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &) const
Definition: ERF_MOSTStress.H:1775
const amrex::Real tol_z
Definition: ERF_MOSTStress.H:1914
surface_temp_donelan(amrex::Real Tflux, amrex::Real Qvflux, bool use_visc, bool cons_qflux)
Definition: ERF_MOSTStress.H:1752
most_data mdata
Definition: ERF_MOSTStress.H:1907
const amrex::Real tol
Definition: ERF_MOSTStress.H:1910
const amrex::Real WSMIN
Definition: ERF_MOSTStress.H:1917
bool spec_qflux
Definition: ERF_MOSTStress.H:1908
const amrex::Real alpha
Definition: ERF_MOSTStress.H:1916
Definition: ERF_MOSTStress.H:1560
surface_temp_mod_charnock(amrex::Real Tflux, amrex::Real Qvflux, amrex::Real depth, bool use_visc, bool cons_qflux)
Definition: ERF_MOSTStress.H:1569
similarity_funs sfuns
Definition: ERF_MOSTStress.H:1728
const amrex::Real tol
Definition: ERF_MOSTStress.H:1729
const amrex::Real tol_z
Definition: ERF_MOSTStress.H:1733
const amrex::Real WSMIN
Definition: ERF_MOSTStress.H:1736
most_data mdata
Definition: ERF_MOSTStress.H:1726
bool spec_qflux
Definition: ERF_MOSTStress.H:1727
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void iterate_flux(const int &i, const int &j, const int &k, const int &max_iters, const amrex::Array4< const amrex::Real > &zref_arr, const amrex::Array4< amrex::Real > &z0_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::Array4< const amrex::Real > &tvm_arr, const amrex::Array4< const amrex::Real > &qvm_arr, const amrex::Array4< amrex::Real > &u_star_arr, const amrex::Array4< amrex::Real > &w_star_arr, const amrex::Array4< amrex::Real > &t_star_arr, const amrex::Array4< amrex::Real > &q_star_arr, const amrex::Array4< amrex::Real > &t_surf_arr, const amrex::Array4< amrex::Real > &q_surf_arr, const amrex::Array4< amrex::Real > &olen_arr, const amrex::Array4< amrex::Real > &pblh_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &) const
Definition: ERF_MOSTStress.H:1595
const amrex::Real alpha
Definition: ERF_MOSTStress.H:1735
Definition: ERF_MOSTStress.H:1925
const amrex::Real tol_z
Definition: ERF_MOSTStress.H:2097
const amrex::Real eps
Definition: ERF_MOSTStress.H:2098
const amrex::Real tol
Definition: ERF_MOSTStress.H:2092
most_data mdata
Definition: ERF_MOSTStress.H:2089
const amrex::Real alpha
Definition: ERF_MOSTStress.H:2100
surface_temp_wave_coupled(amrex::Real Tflux, amrex::Real Qvflux, bool use_visc, bool cons_qflux)
Definition: ERF_MOSTStress.H:1933
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void iterate_flux(const int &i, const int &j, const int &k, const int &max_iters, const amrex::Array4< const amrex::Real > &zref_arr, const amrex::Array4< amrex::Real > &z0_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::Array4< const amrex::Real > &tvm_arr, const amrex::Array4< const amrex::Real > &qvm_arr, const amrex::Array4< amrex::Real > &u_star_arr, const amrex::Array4< amrex::Real > &w_star_arr, const amrex::Array4< amrex::Real > &t_star_arr, const amrex::Array4< amrex::Real > &q_star_arr, const amrex::Array4< amrex::Real > &t_surf_arr, const amrex::Array4< amrex::Real > &q_surf_arr, const amrex::Array4< amrex::Real > &olen_arr, const amrex::Array4< amrex::Real > &pblh_arr, const amrex::Array4< amrex::Real > &Hwave_arr, const amrex::Array4< amrex::Real > &Lwave_arr, const amrex::Array4< amrex::Real > &) const
Definition: ERF_MOSTStress.H:1956
similarity_funs sfuns
Definition: ERF_MOSTStress.H:2091
bool spec_qflux
Definition: ERF_MOSTStress.H:2090
const amrex::Real WSMIN
Definition: ERF_MOSTStress.H:2101
Definition: ERF_MOSTStress.H:1179
int dir
Definition: ERF_MOSTStress.H:1355
surface_temp(amrex::Real Tflux, amrex::Real Qvflux, bool cons_qflux, int face_dir, bool face_is_low)
Definition: ERF_MOSTStress.H:1189
similarity_funs sfuns
Definition: ERF_MOSTStress.H:1354
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void iterate_flux(const int &i, const int &j, const int &k, const int &max_iters, const amrex::Array4< const amrex::Real > &zref_arr, const amrex::Array4< const amrex::Real > &z0_arr, const amrex::Array4< const amrex::Real > &umm_arr, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::Array4< const amrex::Real > &tvm_arr, const amrex::Array4< const amrex::Real > &qvm_arr, const amrex::Array4< amrex::Real > &u_star_arr, const amrex::Array4< amrex::Real > &w_star_arr, const amrex::Array4< amrex::Real > &t_star_arr, const amrex::Array4< amrex::Real > &q_star_arr, const amrex::Array4< amrex::Real > &t_surf_arr, const amrex::Array4< amrex::Real > &q_surf_arr, const amrex::Array4< amrex::Real > &olen_arr, const amrex::Array4< amrex::Real > &pblh_arr, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &, const amrex::Array4< amrex::Real > &) const
Definition: ERF_MOSTStress.H:1214
const amrex::Real tol
Definition: ERF_MOSTStress.H:1358
bool spec_qflux
Definition: ERF_MOSTStress.H:1353
bool is_low
Definition: ERF_MOSTStress.H:1356
const amrex::Real alpha
Definition: ERF_MOSTStress.H:1359
const amrex::Real WSMIN
Definition: ERF_MOSTStress.H:1360
most_data mdata
Definition: ERF_MOSTStress.H:1352