424 real(wp) :: rhoe, dyne, rhos
425 real(wp) :: rho,
rm, m1, m2,
mct
428# 66 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
429 real(wp),
dimension(num_fluids) :: p_infpt, sk, hk, gk, ek, rhok
430# 68 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
433 integer :: i,
j,
k,
l
445# 81 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
447# 81 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
448#if defined(MFC_OpenACC)
449# 81 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
451# 81 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
452#elif defined(MFC_OpenMP)
453# 81 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
455# 81 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
457# 81 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
459# 81 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
461# 81 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
463# 81 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
465# 83 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
469 rho = 0.0_wp; tvf = 0.0_wp
471# 87 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
472#if defined(MFC_OpenACC)
473# 87 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
475# 87 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
476#elif defined(MFC_OpenMP)
477# 87 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
479# 87 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
481# 88 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
484 rho = rho +
q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(
j,
k,
l)
487 tvf = tvf +
q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(
j,
k,
l)
506# 111 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
507#if defined(MFC_OpenACC)
508# 111 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
510# 111 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
511#elif defined(MFC_OpenMP)
512# 111 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
514# 111 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
516# 112 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
517 do i = eqn_idx%mom%beg, eqn_idx%mom%end
531 if ((relax_model == 6) .and. ((
q_cons_vf(
lp + eqn_idx%cont%beg - 1)%sf(
j,
k, &
549# 143 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
550#if defined(MFC_OpenACC)
551# 143 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
553# 143 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
554#elif defined(MFC_OpenMP)
555# 143 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
557# 143 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
559# 144 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
562 sk(i) = cvs(i)*log((ts**isentrope_n(i))/((ps + isentrope_b(i))**(isentrope_n(i) - 1.0_wp))) + qvps(i)
565 hk(i) = isentrope_n(i)*cvs(i)*ts + qvs(i)
568 gk(i) = hk(i) - ts*sk(i)
571 rhok(i) =
f_sg_thermal(ps, ts, isentrope_n(i), isentrope_b(i), cvs(i))
574 ek(i) = (ps + isentrope_n(i)*isentrope_b(i))/(ps + isentrope_b(i))*cvs(i)*ts + qvs(i)
580# 163 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
581#if defined(MFC_OpenACC)
582# 163 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
584# 163 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
585#elif defined(MFC_OpenMP)
586# 163 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
588# 163 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
590# 164 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
602 rhos = rhos +
q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(
j,
k,
l)*sk(i)
608# 180 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
609#if defined(MFC_OpenACC)
610# 180 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
612# 180 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
613#elif defined(MFC_OpenMP)
614# 180 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
616# 180 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
618# 180 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
620# 181 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
629# 188 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
631# 188 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
633# 188 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
635# 188 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
637# 188 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
639# 188 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
641# 188 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
643# 188 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
645# 188 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
647# 188 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
649# 188 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
651# 188 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
653# 188 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
655# 188 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
657# 188 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
659# 188 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
661# 188 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
663# 189 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
666 integer,
intent(in) :: j, k, l, MFL
667 real(wp),
intent(out) :: pS
668 real(wp),
dimension(1:),
intent(out) :: p_infpT
669 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_cons_vf
670 real(wp),
intent(in) :: rhoe
671 real(wp),
intent(out) :: TS
672 real(wp) :: gp, gpp, hp, pO, mCP, mQ
673 real(wp) :: p_infpT_sum
676 mcp = 0.0_wp; mq = 0.0_wp; p_infpt_sum = 0._wp
678# 202 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
679#if defined(MFC_OpenACC)
680# 202 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
682# 202 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
683#elif defined(MFC_OpenMP)
684# 202 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
686# 202 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
688# 203 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
690 p_infpt(i) = isentrope_b(i)
691 p_infpt_sum = p_infpt_sum + abs(p_infpt(i))
695# 208 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
696#if defined(MFC_OpenACC)
697# 208 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
699# 208 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
700#elif defined(MFC_OpenMP)
701# 208 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
703# 208 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
705# 209 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
708 mcp = mcp + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*cvs(i)*isentrope_n(i)
711 mq = mq + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*qvs(i)
714# 225 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
717 if ((rhoe - mq - minval(p_infpt)) < 0.0_wp)
then
718 if ((mfl == 0) .or. (mfl == 1))
then
742 do while ((abs(ps - po) > palpha_eps) .and. (abs(ps - po) > (palpha_eps/1.e4_wp)*abs(po)) .or. (ns == 0))
752 gpp = 0.0_wp; gp = 0.0_wp; hp = 0.0_wp
754# 263 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
755#if defined(MFC_OpenACC)
756# 263 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
758# 263 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
759#elif defined(MFC_OpenMP)
760# 263 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
762# 263 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
764# 264 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
766 gp = gp + (isentrope_n(i) - 1.0_wp)*q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, &
767 & l)*cvs(i)*(rhoe + ps - mq)/(mcp*(ps + p_infpt(i)))
769 gpp = gpp + (isentrope_n(i) - 1.0_wp)*q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, &
770 & l)*cvs(i)*(p_infpt(i) - rhoe + mq)/(mcp*(ps + p_infpt(i))**2)
773 hp = 1.0_wp/(rhoe + ps - mq) + 1.0_wp/(ps + minval(p_infpt))
776 ps = po + ((1.0_wp - gp)/gpp)/(1.0_wp - (1.0_wp - gp + abs(1.0_wp - gp))/(2.0_wp*gpp)*hp)
780 ts = (rhoe + ps - mq)/mcp
787 subroutine s_compute_ptg_residual(ml, mT, pS, j, k, l, q_cons_vf, rhoe, R2D, TS, mCP, mQ, mCVGP, mCVGP2, mCPD)
790# 288 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
792# 288 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
794# 288 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
796# 288 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
798# 288 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
800# 288 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
802# 288 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
804# 289 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
806 real(wp),
intent(in) :: ml, mT, pS, rhoe
807 integer,
intent(in) :: j, k, l
808 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_cons_vf
809 real(wp),
dimension(2),
intent(out) :: R2D
810 real(wp),
intent(out) :: TS, mCP, mQ, mCVGP, mCVGP2, mCPD
815 mcp = ml*cvs(
lp)*isentrope_n(
lp) + (mt - ml)*cvs(
vp)*isentrope_n(
vp)
816 mq = ml*qvs(
lp) + (mt - ml)*qvs(
vp)
817 mcvgp = 0.0_wp; mcvgp2 = 0.0_wp; mcpd = 0.0_wp; mqd = 0.0_wp
819# 302 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
820#if defined(MFC_OpenACC)
821# 302 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
823# 302 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
824#elif defined(MFC_OpenMP)
825# 302 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
827# 302 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
829# 303 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
831 if ((i /=
lp) .and. (i /=
vp))
then
832 mcp = mcp + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*cvs(i)*isentrope_n(i)
833 mq = mq + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*qvs(i)
834 mcvgp = mcvgp + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*cvs(i)*(isentrope_n(i) - 1)/(ps + isentrope_b(i))
835 mcvgp2 = mcvgp2 + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, &
836 & l)*cvs(i)*(isentrope_n(i) - 1)/((ps + isentrope_b(i))**2)
837 mqd = mqd + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*qvs(i)
838 mcpd = mcpd + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*cvs(i)*isentrope_n(i)
842 ts = 1.0_wp/(mt*cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp)) + ml*(cvs(
lp)*(isentrope_n(
lp) - 1)/(ps &
843 & + isentrope_b(
lp)) - cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp))) + mcvgp)
846 r2d(1) = ts*((cvs(
lp)*isentrope_n(
lp) - cvs(
vp)*isentrope_n(
vp))*(1 - log(ts)) - (qvps(
lp) - qvps(
vp)) + cvs(
lp) &
847 & *(isentrope_n(
lp) - 1)*log(ps + isentrope_b(
lp)) - cvs(
vp)*(isentrope_n(
vp) - 1)*log(ps + isentrope_b(
vp))) &
848 & + qvs(
lp) - qvs(
vp)
851 r2d(2) = rhoe + ps + ml*(qvs(
vp) - qvs(
lp)) - mt*qvs(
vp) - mqd + (ml*(isentrope_n(
vp)*cvs(
vp) - isentrope_n(
lp)*cvs(
lp)) &
852 & - mt*isentrope_n(
vp)*cvs(
vp) - mcpd)/(ml*(cvs(
lp)*(isentrope_n(
lp) - 1)/(ps + isentrope_b(
lp)) - cvs(
vp) &
853 & *(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp))) + mt*cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp)) + mcvgp)
865# 337 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
867# 337 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
869# 337 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
871# 337 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
873# 337 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
875# 337 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
877# 337 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
879# 337 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
881# 337 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
883# 337 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
885# 337 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
887# 337 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
889# 337 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
891# 337 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
893# 337 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
895# 337 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
897# 337 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
899# 338 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
901 integer,
intent(in) :: j, k, l
902 real(wp),
intent(inout) :: pS
903 real(wp),
intent(in) :: rhoe
904 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_cons_vf
905 real(wp),
intent(inout) :: TS
906 real(wp),
dimension(2, 2) :: Jac, InvJac
907 real(wp),
dimension(2) :: R2D, R2D_try, DeltamP
908 real(wp) :: mCP, mCPD, mCVGP, mCVGP2, mQ
909 real(wp) :: ml, ml_try, mT, pS_try, pmin, lambda, resnorm, resnorm_try
910 real(wp) :: dFdT, dTdm, dTdp, detJ
914 mt = q_cons_vf(
lp + eqn_idx%cont%beg - 1)%sf(j, k, l) + q_cons_vf(
vp + eqn_idx%cont%beg - 1)%sf(j, k, l)
915 ml = q_cons_vf(
lp + eqn_idx%cont%beg - 1)%sf(j, k, l)
918 if (((ps < 0.0_wp) .and. ((q_cons_vf(
lp + eqn_idx%cont%beg - 1)%sf(j, k, l) + q_cons_vf(
vp + eqn_idx%cont%beg - 1)%sf(j, &
920 & l)) > ((rhoe - isentrope_n(
lp)*isentrope_b(
lp)/(isentrope_n(
lp) - 1))/qvs(
lp)))) .or. ((ps >= 0.0_wp) &
921 & .and. (ps < 1.0e-1_wp)))
then
926 pmin = -min(isentrope_b(
lp), isentrope_b(
vp)) + 1.0_wp
928 call s_compute_ptg_residual(ml, mt, ps, j, k, l, q_cons_vf, rhoe, r2d, ts, mcp, mq, mcvgp, mcvgp2, mcpd)
929 resnorm = sqrt(r2d(1)**2 + r2d(2)**2)
933 if ((resnorm <= ptgalpha_eps) .or. (resnorm <= (ptgalpha_eps/1.e6_wp)*rhoe))
exit
936 dfdt = -(cvs(
lp)*isentrope_n(
lp) - cvs(
vp)*isentrope_n(
vp))*log(ts) - (qvps(
lp) - qvps(
vp)) + cvs(
lp)*(isentrope_n(
lp) &
937 & - 1)*log(ps + isentrope_b(
lp)) - cvs(
vp)*(isentrope_n(
vp) - 1)*log(ps + isentrope_b(
vp))
938 dtdm = -(cvs(
lp)*(isentrope_n(
lp) - 1)/(ps + isentrope_b(
lp)) - cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp))) &
940 dtdp = (mt*cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp))**2 + ml*(cvs(
lp)*(isentrope_n(
lp) - 1)/(ps &
941 & + isentrope_b(
lp))**2 - cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp))**2) + mcvgp2)*ts**2
943 jac(1, 1) = dfdt*dtdm
945 & 2) = dfdt*dtdp + ts*(cvs(
lp)*(isentrope_n(
lp) - 1)/(ps + isentrope_b(
lp)) - cvs(
vp)*(isentrope_n(
vp) - 1)/(ps &
946 & + isentrope_b(
vp)))
948 & 1) = qvs(
vp) - qvs(
lp) + (cvs(
vp)*isentrope_n(
vp) - cvs(
lp)*isentrope_n(
lp))/(ml*(cvs(
lp)*(isentrope_n(
lp) - 1) &
949 & /(ps + isentrope_b(
lp)) - cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp))) + mt*cvs(
vp)*(isentrope_n(
vp) &
950 & - 1)/(ps + isentrope_b(
vp)) + mcvgp) - (ml*(cvs(
vp)*isentrope_n(
vp) - cvs(
lp)*isentrope_n(
lp)) - mt*cvs(
vp) &
951 & *isentrope_n(
vp) - mcpd)*(cvs(
lp)*(isentrope_n(
lp) - 1)/(ps + isentrope_b(
lp)) - cvs(
vp)*(isentrope_n(
vp) - 1) &
952 & /(ps + isentrope_b(
vp)))/((ml*(cvs(
lp)*(isentrope_n(
lp) - 1)/(ps + isentrope_b(
lp)) - cvs(
vp)*(isentrope_n(
vp) &
953 & - 1)/(ps + isentrope_b(
vp))) + mt*cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp)) + mcvgp)**2)
955 & 2) = 1 + (ml*(cvs(
vp)*isentrope_n(
vp) - cvs(
lp)*isentrope_n(
lp)) - mt*cvs(
vp)*isentrope_n(
vp) - mcpd) &
956 & *(ml*(cvs(
lp)*(isentrope_n(
lp) - 1)/(ps + isentrope_b(
lp))**2 - cvs(
vp)*(isentrope_n(
vp) - 1)/(ps &
957 & + isentrope_b(
vp))**2) + mt*cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp))**2 + mcvgp2)/(ml*(cvs(
lp) &
958 & *(isentrope_n(
lp) - 1)/(ps + isentrope_b(
lp)) - cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp))) &
959 & + mt*cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp)) + mcvgp)**2
961 detj = jac(1, 1)*jac(2, 2) - jac(1, 2)*jac(2, 1)
963 if (detj == 0.0_wp)
exit
965 invjac(1, 1) = jac(2, 2)/detj
966 invjac(1, 2) = -jac(1, 2)/detj
967 invjac(2, 1) = -jac(2, 1)/detj
968 invjac(2, 2) = jac(1, 1)/detj
970 deltamp(1) = -(invjac(1, 1)*r2d(1) + invjac(1, 2)*r2d(2))
971 deltamp(2) = -(invjac(2, 1)*r2d(1) + invjac(2, 2)*r2d(2))
977 ml_try = min(max(ml + lambda*deltamp(1), 0.0_wp), mt)
978 ps_try = max(ps + lambda*deltamp(2), pmin)
979 call s_compute_ptg_residual(ml_try, mt, ps_try, j, k, l, q_cons_vf, rhoe, r2d_try, ts, mcp, mq, mcvgp, mcvgp2, mcpd)
980 resnorm_try = sqrt(r2d_try(1)**2 + r2d_try(2)**2)
981 if ((resnorm_try < resnorm) .or. (ls ==
ptg_ls_max))
exit
982 lambda = 0.5_wp*lambda
986 ml = ml_try; ps = ps_try; r2d = r2d_try; resnorm = resnorm_try
990 q_cons_vf(
lp + eqn_idx%cont%beg - 1)%sf(j, k, l) = ml
991 q_cons_vf(
vp + eqn_idx%cont%beg - 1)%sf(j, k, l) = mt - ml
993 ts = (rhoe + ps - mq)/mcp