use super::*;
use f2rust_std::*;
struct SaveVars {
CRIT: f64,
NRPT: i32,
}
impl SaveInit for SaveVars {
fn new() -> Self {
let mut CRIT: f64 = 0.0;
let mut NRPT: i32 = 0;
NRPT = 0;
Self { CRIT, NRPT }
}
}
pub fn T_ZZGFSOLV(
ET: f64,
IN_CON: bool,
VAL: f64,
IVBEG: f64,
IVEND: f64,
NVAL: i32,
ctx: &mut Context,
) -> f2rust_std::Result<()> {
spicelib::CHKIN(b"T_ZZGFSOLV", ctx)?;
spicelib::SIGERR(b"SPICE(BOGUSENTRY)", ctx)?;
spicelib::CHKOUT(b"T_ZZGFSOLV", ctx)?;
Ok(())
}
pub fn T_UDQLT(ET: f64, IN_CON: &mut bool, ctx: &mut Context) -> f2rust_std::Result<()> {
let save = ctx.get_vars::<SaveVars>();
let save = &mut *save.borrow_mut();
*IN_CON = false;
if (ET > save.CRIT) {
*IN_CON = true;
}
if (ET > (2.0 * save.CRIT)) {
*IN_CON = false;
}
Ok(())
}
pub fn ZZCRITS(VAL: f64, ctx: &mut Context) {
let save = ctx.get_vars::<SaveVars>();
let save = &mut *save.borrow_mut();
save.CRIT = VAL;
}
pub fn ZZCRITG(VAL: &mut f64, ctx: &mut Context) {
let save = ctx.get_vars::<SaveVars>();
let save = &mut *save.borrow_mut();
*VAL = save.CRIT;
}
pub fn T_REPU(IVBEG: f64, IVEND: f64, ET: f64, ctx: &mut Context) -> f2rust_std::Result<()> {
let save = ctx.get_vars::<SaveVars>();
let save = &mut *save.borrow_mut();
save.NRPT = (save.NRPT + 1);
Ok(())
}
pub fn ZZNRPTG(NVAL: &mut i32, ctx: &mut Context) {
let save = ctx.get_vars::<SaveVars>();
let save = &mut *save.borrow_mut();
*NVAL = save.NRPT;
save.NRPT = 0;
}
pub fn ZZRPTI(ctx: &mut Context) {
let save = ctx.get_vars::<SaveVars>();
let save = &mut *save.borrow_mut();
save.NRPT = 0;
}