con2prim Subroutine

public pure subroutine con2prim(lfac, xi, myd, myssqr, mytau)

Arguments

Type IntentOptional Attributes Name
double precision, intent(inout) :: lfac
double precision, intent(inout) :: xi
double precision, intent(in) :: myd
double precision, intent(in) :: myssqr
double precision, intent(in) :: mytau

Calls

proc~~con2prim~~CallsGraph proc~con2prim con2prim proc~con2primhydro con2primHydro proc~con2prim->proc~con2primhydro proc~funcd funcd proc~con2prim->proc~funcd proc~funcpressure FuncPressure proc~funcd->proc~funcpressure

Called by

proc~~con2prim~~CalledByGraph proc~con2prim con2prim proc~to_primitive to_primitive proc~to_primitive->proc~con2prim proc~to_primitive~10 to_primitive proc~to_primitive~10->proc~con2prim proc~to_primitive~4 to_primitive proc~to_primitive~4->proc~con2prim proc~to_primitive~9 to_primitive proc~to_primitive~9->proc~con2prim proc~add_split_source~4 add_split_source proc~add_split_source~4->proc~to_primitive~10 proc~finite_volume_local_muscl_hll finite_volume_local_muscl_hll proc~finite_volume_local_muscl_hll->proc~to_primitive~9 proc~finite_volume_local_muscl_hllc finite_volume_local_muscl_hllc proc~finite_volume_local_muscl_hllc->proc~to_primitive~9 proc~finite_volume_local_muscl_llf finite_volume_local_muscl_llf proc~finite_volume_local_muscl_llf->proc~to_primitive~9 proc~phys_to_primitive phys_to_primitive proc~phys_to_primitive->proc~to_primitive~4 proc~setdt setdt proc~setdt->proc~to_primitive proc~finite_volume_local finite_volume_local proc~finite_volume_local->proc~finite_volume_local_muscl_hll proc~finite_volume_local->proc~finite_volume_local_muscl_hllc proc~finite_volume_local->proc~finite_volume_local_muscl_llf

Source Code

  pure subroutine con2prim(lfac,xi,myd,myssqr,mytau)
    
    double precision, intent(in)    :: myd, myssqr, mytau
    double precision, intent(inout) :: lfac, xi

    ! .. local ..
    double precision:: f,df,lfacl
    double precision       :: d,ssqr,tau
    !------------------------------------------------------------------

    d = myd; ssqr = myssqr; tau = mytau;

    ! Check if guess is close enough: gives f,df,lfacl
    call funcd(xi,f,df,lfacl,d,ssqr,tau)
    if (dabs(f/df)<absaccnr) then
       xi   = xi - f/df
       lfac = lfacl
       return
    end if

    call con2primHydro(lfac,xi,d,ssqr,tau)

  end subroutine con2prim