424 real(wp) :: rhoe, dyne, rhos
425 real(wp) :: rho,
rm, m1, m2,
mct
429# 67 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
430 real(wp),
dimension(num_fluids) :: p_infpt, sk, hk, gk, ek, rhok
431# 69 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
434 integer :: i,
j,
k,
l
446# 82 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
448# 82 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
449#if defined(MFC_OpenACC)
450# 82 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
452# 82 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
453#elif defined(MFC_OpenMP)
454# 82 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
456# 82 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
458# 82 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
460# 82 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
462# 82 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
464# 82 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
466# 84 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
470 rho = 0.0_wp; tvf = 0.0_wp
472# 88 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
473#if defined(MFC_OpenACC)
474# 88 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
476# 88 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
477#elif defined(MFC_OpenMP)
478# 88 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
480# 88 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
482# 89 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
485 rho = rho +
q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(
j,
k,
l)
488 tvf = tvf +
q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(
j,
k,
l)
507# 112 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
508#if defined(MFC_OpenACC)
509# 112 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
511# 112 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
512#elif defined(MFC_OpenMP)
513# 112 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
515# 112 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
517# 113 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
518 do i = eqn_idx%mom%beg, eqn_idx%mom%end
532 if ((relax_model == 6) .and. ((
q_cons_vf(
lp + eqn_idx%cont%beg - 1)%sf(
j,
k, &
553# 147 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
554#if defined(MFC_OpenACC)
555# 147 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
557# 147 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
558#elif defined(MFC_OpenMP)
559# 147 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
561# 147 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
563# 148 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
566 sk(i) = cvs(i)*log((ts**isentrope_n(i))/((ps + isentrope_b(i))**(isentrope_n(i) - 1.0_wp))) + qvps(i)
569 hk(i) = isentrope_n(i)*cvs(i)*ts + qvs(i)
572 gk(i) = hk(i) - ts*sk(i)
575 rhok(i) =
f_sg_thermal(ps, ts, isentrope_n(i), isentrope_b(i), cvs(i))
578 ek(i) = (ps + isentrope_n(i)*isentrope_b(i))/(ps + isentrope_b(i))*cvs(i)*ts + qvs(i)
584# 167 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
585#if defined(MFC_OpenACC)
586# 167 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
588# 167 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
589#elif defined(MFC_OpenMP)
590# 167 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
592# 167 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
594# 168 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
606 rhos = rhos +
q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(
j,
k,
l)*sk(i)
612# 184 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
613#if defined(MFC_OpenACC)
614# 184 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
616# 184 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
617#elif defined(MFC_OpenMP)
618# 184 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
620# 184 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
622# 184 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
624# 185 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
633# 192 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
635# 192 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
637# 192 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
639# 192 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
641# 192 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
643# 192 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
645# 192 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
647# 192 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
649# 192 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
651# 192 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
653# 192 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
655# 192 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
657# 192 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
659# 192 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
661# 192 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
663# 192 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
665# 192 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
667# 193 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
670 integer,
intent(in) :: j, k, l, MFL
671 real(wp),
intent(out) :: pS
672 real(wp),
dimension(1:),
intent(out) :: p_infpT
673 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_cons_vf
674 real(wp),
intent(in) :: rhoe
675 real(wp),
intent(out) :: TS
676 real(wp) :: gp, gpp, hp, pO, mCP, mQ
677 real(wp) :: p_infpT_sum
680 mcp = 0.0_wp; mq = 0.0_wp; p_infpt_sum = 0._wp
682# 206 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
683#if defined(MFC_OpenACC)
684# 206 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
686# 206 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
687#elif defined(MFC_OpenMP)
688# 206 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
690# 206 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
692# 207 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
694 p_infpt(i) = isentrope_b(i)
695 p_infpt_sum = p_infpt_sum + abs(p_infpt(i))
699# 212 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
700#if defined(MFC_OpenACC)
701# 212 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
703# 212 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
704#elif defined(MFC_OpenMP)
705# 212 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
707# 212 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
709# 213 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
712 mcp = mcp + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*cvs(i)*isentrope_n(i)
715 mq = mq + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*qvs(i)
718# 229 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
721 if ((rhoe - mq - minval(p_infpt)) < 0.0_wp)
then
722 if ((mfl == 0) .or. (mfl == 1))
then
746 do while ((abs(ps - po) > palpha_eps) .and. (abs(ps - po) > (palpha_eps/1.e4_wp)*abs(po)) .or. (ns == 0))
756 gpp = 0.0_wp; gp = 0.0_wp; hp = 0.0_wp
758# 267 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
759#if defined(MFC_OpenACC)
760# 267 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
762# 267 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
763#elif defined(MFC_OpenMP)
764# 267 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
766# 267 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
768# 268 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
770 gp = gp + (isentrope_n(i) - 1.0_wp)*q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, &
771 & l)*cvs(i)*(rhoe + ps - mq)/(mcp*(ps + p_infpt(i)))
773 gpp = gpp + (isentrope_n(i) - 1.0_wp)*q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, &
774 & l)*cvs(i)*(p_infpt(i) - rhoe + mq)/(mcp*(ps + p_infpt(i))**2)
777 hp = 1.0_wp/(rhoe + ps - mq) + 1.0_wp/(ps + minval(p_infpt))
780 ps = po + ((1.0_wp - gp)/gpp)/(1.0_wp - (1.0_wp - gp + abs(1.0_wp - gp))/(2.0_wp*gpp)*hp)
784 ts = (rhoe + ps - mq)/mcp
791 subroutine s_compute_ptg_residual(ml, mT, pS, j, k, l, q_cons_vf, rhoe, R2D, TS, mCP, mQ, mCVGP, mCVGP2, mCPD)
794# 292 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
796# 292 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
798# 292 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
800# 292 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
802# 292 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
804# 292 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
806# 292 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
808# 293 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
810 real(wp),
intent(in) :: ml, mT, pS, rhoe
811 integer,
intent(in) :: j, k, l
812 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_cons_vf
813 real(wp),
dimension(2),
intent(out) :: R2D
814 real(wp),
intent(out) :: TS, mCP, mQ, mCVGP, mCVGP2, mCPD
819 mcp = ml*cvs(
lp)*isentrope_n(
lp) + (mt - ml)*cvs(
vp)*isentrope_n(
vp)
820 mq = ml*qvs(
lp) + (mt - ml)*qvs(
vp)
821 mcvgp = 0.0_wp; mcvgp2 = 0.0_wp; mcpd = 0.0_wp; mqd = 0.0_wp
823# 306 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
824#if defined(MFC_OpenACC)
825# 306 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
827# 306 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
828#elif defined(MFC_OpenMP)
829# 306 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
831# 306 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
833# 307 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
835 if ((i /=
lp) .and. (i /=
vp))
then
836 mcp = mcp + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*cvs(i)*isentrope_n(i)
837 mq = mq + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*qvs(i)
838 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))
839 mcvgp2 = mcvgp2 + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, &
840 & l)*cvs(i)*(isentrope_n(i) - 1)/((ps + isentrope_b(i))**2)
841 mqd = mqd + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*qvs(i)
842 mcpd = mcpd + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*cvs(i)*isentrope_n(i)
846 ts = 1.0_wp/(mt*cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp)) + ml*(cvs(
lp)*(isentrope_n(
lp) - 1)/(ps &
847 & + isentrope_b(
lp)) - cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp))) + mcvgp)
850 r2d(1) = ts*((cvs(
lp)*isentrope_n(
lp) - cvs(
vp)*isentrope_n(
vp))*(1 - log(ts)) - (qvps(
lp) - qvps(
vp)) + cvs(
lp) &
851 & *(isentrope_n(
lp) - 1)*log(ps + isentrope_b(
lp)) - cvs(
vp)*(isentrope_n(
vp) - 1)*log(ps + isentrope_b(
vp))) &
852 & + qvs(
lp) - qvs(
vp)
855 r2d(2) = rhoe + ps + ml*(qvs(
vp) - qvs(
lp)) - mt*qvs(
vp) - mqd + (ml*(isentrope_n(
vp)*cvs(
vp) - isentrope_n(
lp)*cvs(
lp)) &
856 & - mt*isentrope_n(
vp)*cvs(
vp) - mcpd)/(ml*(cvs(
lp)*(isentrope_n(
lp) - 1)/(ps + isentrope_b(
lp)) - cvs(
vp) &
857 & *(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp))) + mt*cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp)) + mcvgp)
869# 341 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
871# 341 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
873# 341 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
875# 341 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
877# 341 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
879# 341 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
881# 341 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
883# 341 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
885# 341 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
887# 341 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
889# 341 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
891# 341 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
893# 341 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
895# 341 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
897# 341 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
899# 341 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
901# 341 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
903# 342 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
905 integer,
intent(in) :: j, k, l
906 real(wp),
intent(inout) :: pS
907 real(wp),
intent(in) :: rhoe
908 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_cons_vf
909 real(wp),
intent(inout) :: TS
910 logical,
intent(out) :: ptg_conv
911 real(wp),
dimension(2, 2) :: Jac, InvJac
912 real(wp),
dimension(2) :: R2D, R2D_try, DeltamP
913 real(wp) :: mCP, mCPD, mCVGP, mCVGP2, mQ
914 real(wp) :: ml, ml_try, mT, pS_try, pmin, lambda, resnorm, resnorm_try
915 real(wp) :: dFdT, dTdm, dTdp, detJ
919 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)
920 ml = q_cons_vf(
lp + eqn_idx%cont%beg - 1)%sf(j, k, l)
923 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, &
925 & l)) > ((rhoe - isentrope_n(
lp)*isentrope_b(
lp)/(isentrope_n(
lp) - 1))/qvs(
lp)))) .or. ((ps >= 0.0_wp) &
926 & .and. (ps < 1.0e-1_wp)))
then
931 pmin = -min(isentrope_b(
lp), isentrope_b(
vp)) + 1.0_wp
933 call s_compute_ptg_residual(ml, mt, ps, j, k, l, q_cons_vf, rhoe, r2d, ts, mcp, mq, mcvgp, mcvgp2, mcpd)
934 resnorm = sqrt(r2d(1)**2 + r2d(2)**2)
938 ptg_conv = (resnorm <= ptgalpha_eps) .or. (resnorm <= (ptgalpha_eps/1.e6_wp)*rhoe)
939 if (ptg_conv .or. (ns ==
max_iter))
exit
942 dfdt = -(cvs(
lp)*isentrope_n(
lp) - cvs(
vp)*isentrope_n(
vp))*log(ts) - (qvps(
lp) - qvps(
vp)) + cvs(
lp)*(isentrope_n(
lp) &
943 & - 1)*log(ps + isentrope_b(
lp)) - cvs(
vp)*(isentrope_n(
vp) - 1)*log(ps + isentrope_b(
vp))
944 dtdm = -(cvs(
lp)*(isentrope_n(
lp) - 1)/(ps + isentrope_b(
lp)) - cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp))) &
946 dtdp = (mt*cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp))**2 + ml*(cvs(
lp)*(isentrope_n(
lp) - 1)/(ps &
947 & + isentrope_b(
lp))**2 - cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp))**2) + mcvgp2)*ts**2
949 jac(1, 1) = dfdt*dtdm
951 & 2) = dfdt*dtdp + ts*(cvs(
lp)*(isentrope_n(
lp) - 1)/(ps + isentrope_b(
lp)) - cvs(
vp)*(isentrope_n(
vp) - 1)/(ps &
952 & + isentrope_b(
vp)))
954 & 1) = qvs(
vp) - qvs(
lp) + (cvs(
vp)*isentrope_n(
vp) - cvs(
lp)*isentrope_n(
lp))/(ml*(cvs(
lp)*(isentrope_n(
lp) - 1) &
955 & /(ps + isentrope_b(
lp)) - cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp))) + mt*cvs(
vp)*(isentrope_n(
vp) &
956 & - 1)/(ps + isentrope_b(
vp)) + mcvgp) - (ml*(cvs(
vp)*isentrope_n(
vp) - cvs(
lp)*isentrope_n(
lp)) - mt*cvs(
vp) &
957 & *isentrope_n(
vp) - mcpd)*(cvs(
lp)*(isentrope_n(
lp) - 1)/(ps + isentrope_b(
lp)) - cvs(
vp)*(isentrope_n(
vp) - 1) &
958 & /(ps + isentrope_b(
vp)))/((ml*(cvs(
lp)*(isentrope_n(
lp) - 1)/(ps + isentrope_b(
lp)) - cvs(
vp)*(isentrope_n(
vp) &
959 & - 1)/(ps + isentrope_b(
vp))) + mt*cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp)) + mcvgp)**2)
961 & 2) = 1 + (ml*(cvs(
vp)*isentrope_n(
vp) - cvs(
lp)*isentrope_n(
lp)) - mt*cvs(
vp)*isentrope_n(
vp) - mcpd) &
962 & *(ml*(cvs(
lp)*(isentrope_n(
lp) - 1)/(ps + isentrope_b(
lp))**2 - cvs(
vp)*(isentrope_n(
vp) - 1)/(ps &
963 & + isentrope_b(
vp))**2) + mt*cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp))**2 + mcvgp2)/(ml*(cvs(
lp) &
964 & *(isentrope_n(
lp) - 1)/(ps + isentrope_b(
lp)) - cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp))) &
965 & + mt*cvs(
vp)*(isentrope_n(
vp) - 1)/(ps + isentrope_b(
vp)) + mcvgp)**2
967 detj = jac(1, 1)*jac(2, 2) - jac(1, 2)*jac(2, 1)
969 if (detj == 0.0_wp)
exit
971 invjac(1, 1) = jac(2, 2)/detj
972 invjac(1, 2) = -jac(1, 2)/detj
973 invjac(2, 1) = -jac(2, 1)/detj
974 invjac(2, 2) = jac(1, 1)/detj
976 deltamp(1) = -(invjac(1, 1)*r2d(1) + invjac(1, 2)*r2d(2))
977 deltamp(2) = -(invjac(2, 1)*r2d(1) + invjac(2, 2)*r2d(2))
983 ml_try = min(max(ml + lambda*deltamp(1), 0.0_wp), mt)
984 ps_try = max(ps + lambda*deltamp(2), pmin)
985 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)
986 resnorm_try = sqrt(r2d_try(1)**2 + r2d_try(2)**2)
987 if ((resnorm_try < resnorm) .or. (ls ==
ptg_ls_max))
exit
988 lambda = 0.5_wp*lambda
992 ml = ml_try; ps = ps_try; r2d = r2d_try; resnorm = resnorm_try
996 q_cons_vf(
lp + eqn_idx%cont%beg - 1)%sf(j, k, l) = ml
997 q_cons_vf(
vp + eqn_idx%cont%beg - 1)%sf(j, k, l) = mt - ml
999 ts = (rhoe + ps - mq)/mcp