868 integer,
intent(in) :: idir
869 type(scalar_field),
dimension(sys_size),
intent(in) :: q_prim_vf
870 type(scalar_field),
intent(inout) :: divu_in
876# 102 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
878# 102 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
879#if defined(MFC_OpenACC)
880# 102 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
882# 102 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
883#elif defined(MFC_OpenMP)
884# 102 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
886# 102 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
888# 102 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
890# 102 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
892# 102 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
897 divu_in%sf(j, k, l) = 0._wp
898 divu_in%sf(j, k, l) = 5.e-1_wp/dx(j)*(q_prim_vf(contxe + idir)%sf(j + 1, k, &
899 & l) - q_prim_vf(contxe + idir)%sf(j - 1, k, l))
904# 112 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
905#if defined(MFC_OpenACC)
906# 112 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
908# 112 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
909#elif defined(MFC_OpenMP)
910# 112 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
912# 112 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
914# 112 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
917 else if (idir == 2)
then
919# 115 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
921# 115 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
922#if defined(MFC_OpenACC)
923# 115 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
925# 115 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
926#elif defined(MFC_OpenMP)
927# 115 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
929# 115 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
931# 115 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
933# 115 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
935# 115 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
940 divu_in%sf(j, k, l) = divu_in%sf(j, k, l) + 5.e-1_wp/dy(k)*(q_prim_vf(contxe + idir)%sf(j, k + 1, &
941 & l) - q_prim_vf(contxe + idir)%sf(j, k - 1, l))
946# 124 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
947#if defined(MFC_OpenACC)
948# 124 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
950# 124 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
951#elif defined(MFC_OpenMP)
952# 124 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
954# 124 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
956# 124 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
958 else if (idir == 3)
then
960# 126 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
962# 126 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
963#if defined(MFC_OpenACC)
964# 126 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
966# 126 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
967#elif defined(MFC_OpenMP)
968# 126 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
970# 126 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
972# 126 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
974# 126 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
976# 126 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
981 divu_in%sf(j, k, l) = divu_in%sf(j, k, l) + 5.e-1_wp/dz(l)*(q_prim_vf(contxe + idir)%sf(j, k, &
982 & l + 1) - q_prim_vf(contxe + idir)%sf(j, k, l - 1))
987# 135 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
988#if defined(MFC_OpenACC)
989# 135 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
991# 135 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
992#elif defined(MFC_OpenMP)
993# 135 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
995# 135 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
997# 135 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1006 type(scalar_field),
dimension(sys_size),
intent(inout) ::
q_cons_vf
1007 type(scalar_field),
dimension(sys_size),
intent(in) :: q_prim_vf
1008 type(scalar_field),
dimension(sys_size),
intent(inout) :: rhs_vf
1009 type(scalar_field),
intent(in) :: divu_in
1011 real(wp) :: pb_local, mv_local, vflux, pbdot
1012 real(wp) :: n_tait, b_tait
1014# 155 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1015 real(wp),
dimension(nb) :: rtmp, vtmp
1016 real(wp),
dimension(num_fluids) :: myalpha, myalpha_rho
1017# 158 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1018 real(wp) :: myr, myv, alf, myp, myrho, r2vav, r3
1021 integer :: i,
j,
k,
l, q, ii
1022 integer :: adap_dt_stop_max, adap_dt_stop
1024 real(wp) :: dmmass_v, dmmass_n, dmbeta_c, dmbeta_t, dmcson
1027# 166 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1029# 166 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1030#if defined(MFC_OpenACC)
1031# 166 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1033# 166 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1034#elif defined(MFC_OpenMP)
1035# 166 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1037# 166 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1039# 166 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1041# 166 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1043# 166 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1051# 172 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1052#if defined(MFC_OpenACC)
1053# 172 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1055# 172 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1056#elif defined(MFC_OpenMP)
1057# 172 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1059# 172 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1071# 182 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1072#if defined(MFC_OpenACC)
1073# 182 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1075# 182 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1076#elif defined(MFC_OpenMP)
1077# 182 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1079# 182 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1081# 182 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1084 adap_dt_stop_max = 0
1086# 185 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1088# 185 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1089#if defined(MFC_OpenACC)
1090# 185 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1092# 185 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1093#elif defined(MFC_OpenMP)
1094# 185 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1096# 185 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1098# 185 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1100# 185 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1102# 185 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1104# 188 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1109 nbub = q_prim_vf(n_idx)%sf(
j,
k,
l)
1112# 194 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1113#if defined(MFC_OpenACC)
1114# 194 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1116# 194 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1117#elif defined(MFC_OpenMP)
1118# 194 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1120# 194 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1123 rtmp(q) = q_prim_vf(
rs(q))%sf(
j,
k,
l)
1124 vtmp(q) = q_prim_vf(
vs(q))%sf(
j,
k,
l)
1130# 202 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1131#if defined(MFC_OpenACC)
1132# 202 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1134# 202 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1135#elif defined(MFC_OpenMP)
1136# 202 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1138# 202 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1141 r3 = r3 + weight(q)*rtmp(q)**3._wp
1144 nbub = (3._wp/(4._wp*pi))*q_prim_vf(alf_idx)%sf(
j,
k,
l)/r3
1147 if (.not. adap_dt)
then
1151# 213 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1152#if defined(MFC_OpenACC)
1153# 213 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1155# 213 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1156#elif defined(MFC_OpenMP)
1157# 213 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1159# 213 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1162 r2vav = r2vav + weight(q)*rtmp(q)**2._wp*vtmp(q)
1169# 221 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1170#if defined(MFC_OpenACC)
1171# 221 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1173# 221 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1174#elif defined(MFC_OpenMP)
1175# 221 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1177# 221 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1181# 223 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1182#if defined(MFC_OpenACC)
1183# 223 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1185# 223 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1186#elif defined(MFC_OpenMP)
1187# 223 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1189# 223 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1191 do ii = 1, num_fluids
1196 if (num_fluids == 1)
then
1197 myrho = myalpha_rho(1)
1199 b_tait = pi_infs(1)/pi_fac
1206# 238 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1207#if defined(MFC_OpenACC)
1208# 238 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1210# 238 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1211#elif defined(MFC_OpenMP)
1212# 238 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1214# 238 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1216 do ii = 1, num_fluids
1217 myrho = myrho + myalpha_rho(ii)
1218 n_tait = n_tait + myalpha(ii)*gammas(ii)
1219 b_tait = b_tait + myalpha(ii)*pi_infs(ii)/pi_fac
1223 n_tait = 1._wp/n_tait + 1._wp
1224 b_tait = b_tait*(n_tait - 1)/n_tait
1226 myp = q_prim_vf(e_idx)%sf(
j,
k,
l)
1227 alf = q_prim_vf(alf_idx)%sf(
j,
k,
l)
1228 myr = q_prim_vf(
rs(q))%sf(
j,
k,
l)
1229 myv = q_prim_vf(
vs(q))%sf(
j,
k,
l)
1231 if (alf < small_alf)
then
1235 if (.not. polytropic)
then
1240 if (.not. polytropic)
then
1241 pb_local = q_prim_vf(
ps(q))%sf(
j,
k,
l)
1242 mv_local = q_prim_vf(
ms(q))%sf(
j,
k,
l)
1243 call s_bwproperty(pb_local, q, chi_vw, k_mw, rho_mw)
1244 call s_vflux(myr, myv, pb_local, mv_local, q, vflux)
1245 pbdot = f_bpres_dot(vflux, myr, myv, pb_local, mv_local, q)
1247 bub_m_src(
j,
k,
l, q) = nbub*vflux*4._wp*pi*(myr**2._wp)
1249 pb_local = 0._wp; mv_local = 0._wp; vflux = 0._wp; pbdot = 0._wp
1256 call s_advance_step(myrho, myp, myr, myv, r0(q), pb_local, pbdot, alf, n_tait, b_tait, &
1258 & dmbeta_c, dmbeta_t, dmcson, adap_dt_stop)
1263 adap_dt_stop_max = max(adap_dt_stop_max, adap_dt_stop)
1265 rddot = f_rddot(myrho, myp, myr, myv, r0(q), pb_local, pbdot, alf, n_tait, b_tait,
bub_adv_src(
j, &
1266 &
k,
l), divu_in%sf(
j,
k,
l), dmcson)
1276# 298 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1277#if defined(MFC_OpenACC)
1278# 298 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1280# 298 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1281#elif defined(MFC_OpenMP)
1282# 298 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1284# 298 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1286# 298 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1289 if (adap_dt .and. adap_dt_stop_max > 0)
call s_mpi_abort(
"Adaptive time stepping failed to converge.")
1291 if (.not. adap_dt)
then
1293# 303 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1295# 303 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1296#if defined(MFC_OpenACC)
1297# 303 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1299# 303 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1300#elif defined(MFC_OpenMP)
1301# 303 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1303# 303 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1305# 303 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1307# 303 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1309# 303 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1314 rhs_vf(alf_idx)%sf(i, q,
l) = rhs_vf(alf_idx)%sf(i, q,
l) +
bub_adv_src(i, q,
l)
1315 if (num_fluids > 1) rhs_vf(advxb)%sf(i, q,
l) = rhs_vf(advxb)%sf(i, q,
l) -
bub_adv_src(i, q,
l)
1317# 309 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1318#if defined(MFC_OpenACC)
1319# 309 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1321# 309 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1322#elif defined(MFC_OpenMP)
1323# 309 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1325# 309 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1330 if (polytropic .neqv. .true.)
then
1339# 321 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1340#if defined(MFC_OpenACC)
1341# 321 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1343# 321 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1344#elif defined(MFC_OpenMP)
1345# 321 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1347# 321 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"
1349# 321 "/home/runner/work/MFC/MFC/src/simulation/m_bubbles_EE.fpp"